Ir para conteúdo
Fórum Script Brasil
  • 0

Problema para visualizar consulta PHP PDO


Edilson Santiago

Pergunta

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 para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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.

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...