Edilson Santiago Postado Junho 24, 2022 Denunciar Share Postado Junho 24, 2022 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Junho 24, 2022 Denunciar Share Postado Junho 24, 2022 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ê. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Edilson Santiago Postado Junho 28, 2022 Autor Denunciar Share Postado Junho 28, 2022 Fiz do jeito que sugeriu, mas também não funcionou. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Junho 28, 2022 Denunciar Share Postado Junho 28, 2022 (editado) 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 Junho 28, 2022 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Junho 28, 2022 Denunciar Share Postado Junho 28, 2022 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>"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Edilson Santiago Postado Junho 29, 2022 Autor Denunciar Share Postado Junho 29, 2022 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> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Edilson Santiago
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?
Esta parte:
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
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.