我不是完全精通PHP,但我有一些问题从MySQL查询函数中返回收集的值。
我相信我知道问题在哪里,但我没有足够的能力来解决它,如果你能帮助我,我将不胜感激。
PHP函数 (Works perfect).
<?php
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT Name, Role, Salary FROM `users-table`';
mysql_select_db('user_records');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "--------------------------------<br>",
"Name: {$row['Name']} <br> ".
"Role: {$row['Role']} <br> ".
"Salary : {$row['Salary']} <br> ".
"--------------------------------<br>";
}
mysql_close($conn);
?>
这完美地显示了数据!但是,我现在正试图将其包含在一个格式良好的HTML表中。(这就是为什么我关闭上面的php标签)。
我试图使用这样一个表:
<table >
<tr>
<td>
<?php echo $row['Name'] ?>
</td>
....
它输出什么,-我认为这个问题是由于我关闭第一个函数,然后尝试引用$row
,它不知道该怎么做…?
我想我需要接通while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
我如何重构这一点,以便我可以从上面的函数回送内容到我的表?
您没有编写您尝试的代码,但这里有一些功能:
$link = mysqli_connect("myhost", "myuser", "mypassw", "mybd");
echo "<table>";
while ($row = mysqli_fetch_array($link, $retval, MYSQL_ASSOC)) {
echo "
<tr>
<td>{$row['Name']}</td>
<td>{$row['Role']}</td>
<td>{$row['Salary']}</td>
</tr>
";
}
echo "</table>";
PS:由于MySQL已弃用,我将您的代码替换为MySQLi
,我建议您也这样做:)
正如@zessx所说,你应该使用MySQLi或PDO。
无论如何,要回答你的问题,你必须改变PHP代码中的循环,从while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "--------------------------------<br>",
"Name: {$row['Name']} <br> ".
"Role: {$row['Role']} <br> ".
"Salary : {$row['Salary']} <br> ".
"--------------------------------<br>";
}
echo '<table>';
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo " <tr>" .
" <td>Name: {$row['Name']}</td>".
" <td>Role: {$row['Role']}</td>".
" <td>Salary : {$row['Salary']}</td>".
" </tr>";
}
echo '</table>';