У меня возникла проблема с попыткой распечатать некоторые данные таблицы. Я новичок в этой статье 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