У меня возникла проблема с попыткой распечатать некоторые данные таблицы. Я новичок в этой статье php mysql, но я думаю, что мой код прав. Вот:
<html> <body> <h1>Lista de usuários</h1> <?php $host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="sabs"; // Database name $tbl_name="doador"; // Table name // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql="SELECT * FROM $tbl_name"; $result=mysql_query($sql); while($rows = mysql_fetch_array($result)){ echo $row['id'] . " " .$row['nome'] . " " . $row['sobrenome'] . " " . $row['email'] . " " . $row['login'] . " " . $row['senha'] . " " . $row['idade'] . " ". $row['peso'] . " " . $row['fuma'] . " " . $row['sexo'] . " " . $row['doencas']; echo "<BR/>"; } mysql_close(); ?> </body> </html>
Все столбцы команды echo существуют в моей таблице в базе данных. Не поймите, почему это не печатает эти значения.
Вы назначили полученные данные как $rows
, но вы пытаетесь вывести переменную $row
, которая не существует.
Измените его так:
while($row = mysql_fetch_array($result))
Позвольте мне дать 2 совета
Чтобы обнаружить такую ошибку в будущем, всегда включайте уровень отчетности об ошибках max, добавляя error_reporting(E_ALL);
в ваших сценариях. В этом случае PHP скажет вам, что переменная $ row diesn't существует.
Рассмотрите возможность разделения ваших сценариев на 2 части: получение части данных и отображение части данных
как это:
<?php error_reporting(E_ALL); $host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="sabs"; // Database name $tbl_name="doador"; // Table name // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql="SELECT * FROM $tbl_name"; $result=mysql_query($sql) or trigger_error(mysql_error().$sql); while($row = mysql_fetch_array($result)){ $DATA = $row[]; } mysql_close(); ?> <html> <body> <h1>Lista de usuários</h1> <table> <? foreach($DATA as $row): ?> <tr> <td><?=$row['id']?></td> <td><?=$row['nome']?></td> <td><?=$row['sobrenome']?></td> <td><?=$row['email']?></td> <td><?=$row['login']?></td> <td><?=$row['senha']?></td> <td><?=$row['idade']?></td> <td><?=$row['peso']?></td> <td><?=$row['fuma']?></td> <td><?=$row['sexo']?></td> <td><?=$row['doencas']?></td> </tr> <? endforeach ?> </table> </body> </html>
Часть Html может быть помещена в отдельный файл для удобства работы.
Также обратите внимание на функцию trigger_error
которая поможет вам обнаружить ошибки SQL