Jump to content
Fórum Script Brasil
  • 0

Problema para visualizar consulta PHP PDO


Edilson Santiago

Question

Amigos, estou tentando exibir os dados de um bando de dados separados em uma tabela na minha pagina html. A conexão funciona, o php lê o banco de dados normalmente, mas não consigo gerar as linhas com os dados.

O que pode está errado?

 

<?php 
   session_start();
        if(!isset($_SESSION['id']))
        {
            header("location: index.php");
            exit;
        }
        
        include("conexao.php");

$sql = "SELECT * FROM usuarios";
$result = $PDO->query( $sql );

?>

<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <title>REGISTRO DE USUÁRIOS</title>
        <link rel="stylesheet" href="css/stilo.css">
            </head> 
        <body>
            <div class="logo2"></div>
            <div id="corpo-form">
            <h2>REGISTRO DE USUÁRIOS</h2>

    <table border="1"> 
        <tr> 
          <td>Código</td> 
          <td>Nome</td> 
          <td>E-mail</td> 
          <td>Data de Cadastro</td> 
          <td>Última Modificação</td> 
          <td>Ação</td> 
        </tr> 

        <?php $rows = $result->fetchAll(); { 
        ?> 

        <tr> 
          <td><?php print_r ( $rows['id'] ); ?></td>
          <td><?php print_r ( $rows['nome'] ); ?></td> 
          <td><?php print_r ( $rows['email'] ); ?></td> 
          <td><?php print_r ( date('d/m/Y', strtotime($rows['created'])) );
              ?></td>
          <td><?php print_r ( date('d/m/Y', strtotime($rows['modified'])) );
              ?></td> 
          <td> 
            <a href="usu_editar.php?codigo=<?php print_r ( $rows['codigo'] ); ?>">Editar</a> 
            <a href="usu_excluir.php?codigo=<?php print_r ( $rows['codigo'] );  ?> ">Excluir</a> 
          </td> 
        </tr> 
        <?php } ?> 
     </table> 
    </div>
    </body>
</html>

 

Esta parte:

print_r ( $rows['id'] )

 

tetei fazer também com "echo", mas também não funcionou.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Acredito que o problema está nesse trecho

<?php $rows = $result->fetchAll(); {             // php entende que você abriu uma chave e esqueceu de fechar
        ?> 

        <tr> 
          <td><?php print_r ( $rows['id'] ); ?></td>
          <td><?php print_r ( $rows['nome'] ); ?></td> 
          <td><?php print_r ( $rows['email'] ); ?></td> 
          <td><?php print_r ( date('d/m/Y', strtotime($rows['created'])) );
              ?></td>
          <td><?php print_r ( date('d/m/Y', strtotime($rows['modified'])) );
              ?></td> 
          <td> 
            <a href="usu_editar.php?codigo=<?php print_r ( $rows['codigo'] ); ?>">Editar</a> 
            <a href="usu_excluir.php?codigo=<?php print_r ( $rows['codigo'] );  ?> ">Excluir</a> 
          </td> 
        </tr> 
        <?php } ?>  // php entende você está fechando uma chave, mas esqueceu de abrir.

Desde o dia que eu entrei aqui no fórum, o pessoal reclamou comigo que eu misturo HTML com o PHP, e eu não tinha a menor ideia do que eles estavam falando, mas só ontem é que eu consegui separar o HTML e o PHP. Todos os meus códigos são iguaizinhos ao seu, mas para evitar todo esse zigue-zague HTML-PHP, eu fazia assim:

<?php 
  //só peguei o trecho onde acredito que está o problema
  $row = $result->fetchAll();
  $codigo=$row['codigo'];
  echo "<tr><td>".$row['id']."<td>".$row['nome']."<td>".$row['email']."<td>"
  . date('d/m/Y,strtotime($rows['created'])) ."<td>".date('d/m/Y', strtotime($row['modified']).
  . "<td><a href='usu_editar.php?codigo=$codigo'>Editar</a>" 
  . "<td><a href='usu_excluir.php?codigo=$codigo'>Excluir</a>"
  . "</table>";

// o pessoal aqui do fórum detestou a minha maneira de codificar, mas veja que eu gastei menos linhas que você.
        

 

Link to comment
Share on other sites

  • 0

Eu peço desculpa. Esquece tudo o que eu falei. Eu peguei o seu código original, fiz umas adaptações, e acho que encontrei o problema:

<?php 
//session_start();
//if(!isset($_SESSION['id']))
//{
//header("location: index.php");
//exit;
//}        
//include("conexao.php");
//
//$sql = "SELECT * FROM usuarios";
$sql="select * from tbpessoa"; // frank
$dsn="mysql:host=localhost;dbname=diario;charset=UTF8";$user="root";$password=""; // frank
$PDO = new PDO($dsn, $user, $password); // frank
$result = $PDO->query( $sql );
?>

<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <title>REGISTRO DE USUÁRIOS</title>
        <link rel="stylesheet" href="css/stilo.css">
            </head> 
        <body>
            <div class="logo2"></div>
            <div id="corpo-form">
            <h2>REGISTRO DE USUÁRIOS</h2>

    <table border="1"> 
        <tr> 
          <td>Código</td> 
          <td>Nome</td> 
          <td>E-mail</td> 
          <td>Data de Cadastro</td> 
          <td>Última Modificação</td> 
          <td>Ação</td> 
        </tr> 

        <?php $rows = $result->fetchAll(); 
		foreach($rows as $rows) {               //<--------------------------  o problema está aqui, faltou o comando foreach    
        ?> 

        <tr> 
          <td><?php print_r ( $rows['codp'] ); ?></td>      
          <td><?php print_r ( $rows['pessoa'] ); ?></td> 
          <td><?php print_r ( $rows['end'] ); ?></td> 
          <td><?php print_r ( date('d/m/Y') );
              ?></td>
          <td><?php print_r ( date('d/m/Y') );
              ?></td> 
          <td> 
            <a href="usu_editar.php?codigo=<?php print_r ( $rows['codp'] ); ?>">Editar</a> 
            <a href="usu_excluir.php?codigo=<?php print_r ( $rows['codp'] );  ?> ">Excluir</a> 
          </td> 
        </tr> 
        <?php } ?> 
     </table> 
    </div>
    </body>
</html>

Eu não sou bom com o PDO e nem HTML, note que eu fiz várias alterações para que o meu banco de dados fosse utilizado, mas pelo que notei tudo parece correto, menos a ausência do comando foreach.

Edited by Frank K Hosaka
Link to comment
Share on other sites

  • 0

Gostaria de aproveitar essa ocasião para apresentar o mysqli bem como a minha forma sutil de programar, olha só:

 

<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <title>REGISTRO DE USUÁRIOS</title>
        <link rel="stylesheet" href="css/stilo.css">
    </head> 
    <body>
        <div class="logo2"></div>
        <div id="corpo-form">
        <h2>REGISTRO DE USUÁRIOS</h2>
<?php
$mysqli=new mysqli("localhost","root","","diario");
$query=$mysqli->query("select * from tbpessoa");
echo "<table border='1'><tr><th>Código<th>Nome<th>E-mail<th>Data de Cadastro<th>Útima Modificação<th>Ação";
while ($row=$query->fetch_assoc()){
	echo "<tr><td>".$row['codp']."<td>".$row['pessoa']."<td>".$row['end']."<td>".date('d/m/Y')."<td>".date('d/m/Y');
	echo "<td><a href='su_editar.php?codigo='".$row['codp'].">Editar</a>";
	echo "<a href='usu_excluir.php?codigo='".$row['codp'].">Excluir</a>";}
echo "</table></div></body></html>";

 

Link to comment
Share on other sites

  • 0

Obrigado. Testei dessa forma e deu certo tb. Mas já tinha conseguido. Ficou meio gambiarrado, mas reolvi postar tb, para contribuir:

 

    <table bgcolor="blue"> 
        <thead>
            <tr> 
            <td align=center><b>ID</b></td> 
            <td align=center><b>Nome</b></td> 
            <td align=center><b>E-mail</b></td> 
            <td align=center><b>Data de Cadastro</b></td> 
            <td align=center><b>Última Modificação</b></td> 
            <td align=center><b>Ação</b></td> 
            </tr> 
        </thead>
        <tbody>
            <?php
                $dsn = ("mysql:host=localhost;dbname=***;charset=utf8");
                $user = "***";
                $pass = "***";
                $pdo = new PDO($dsn,$user,$pass);
                $stm = $pdo->query("SELECT * FROM usuarios ORDER BY nome");
                $rows = $stm->fetchAll(PDO::FETCH_ASSOC);
                foreach($rows as $row){
                    echo "<tr>";
                    echo ("<td align=center>{$row['id']}</td>");
                    echo ("<td>{$row['nome']}</td>");
                    echo ("<td>{$row['email']}</td>");
                ?>
                    <td align=center><?php echo ( date('d/m/Y', strtotime($row['created'])) ); ?></td> 
                    <td align=center><?php echo ( date('d/m/Y', strtotime($row['modified'])) ); ?></td>
                    <td align=center><a href="usu_editar.php?<?php echo $row['id']?>">Editar</a>
                    <a href="usu_excluir.php?<?php echo $row['id']?>">Excluir</a>
                    </td> 
                <?php } ?>
        </tbody>
     </table>

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...