使用PHP显示从MySQL数据库检索的数据时出现问题

使用PHP显示从MySQL数据库检索的数据时出现问题,php,mysql,html,sql,Php,Mysql,Html,Sql,我对PHP非常陌生;我正在做一些示例项目来帮助我学习,这个项目是为了好玩。这里可能有一些白痴和非常难以理解的代码。考虑到我是个新手,可能有语法错误,但我已经搜索了好几个小时,没有任何运气。 基本上,我正在制作一个非常简单的comment/shoutbox系统,其中发布数据的用户保持匿名。我现在正在分头做事;然后我计划把它们合并成一个。我知道提交部分工作正常,因为我已经通过PHPMyAdmin检查了MySQL数据库,但是我似乎无法正确显示数据。我已经为我的简单语法错误搜索了2个多小时,并且已经放弃

我对PHP非常陌生;我正在做一些示例项目来帮助我学习,这个项目是为了好玩。这里可能有一些白痴和非常难以理解的代码。考虑到我是个新手,可能有语法错误,但我已经搜索了好几个小时,没有任何运气。

基本上,我正在制作一个非常简单的comment/shoutbox系统,其中发布数据的用户保持匿名。我现在正在分头做事;然后我计划把它们合并成一个。我知道提交部分工作正常,因为我已经通过PHPMyAdmin检查了MySQL数据库,但是我似乎无法正确显示数据。我已经为我的简单语法错误搜索了2个多小时,并且已经放弃了把它带到一个可靠友好的社区的决定

我已经删除了数据库中的所有连接信息,因为我知道所有这些都是正确的,我不想在公共“论坛”上公开这些信息

<html>
<body>
<?php
$username="";
$password="";
$database="";

mysql_connect("localhost",$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM data";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();
?>
<table border="2" cellspacing="2" cellpadding="2">
<tr>
<th><font face="Arial, Helvetica, sans-serif">Name(No specific order)</font></th>
</tr>

<?php
$i=0;
while ($i < $num) {

$    name=mysql_result($result,$i,"");
?>

<tr>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $name; ?></font></td>
</tr>

<?php
$i++;
}
?>
</body>
</html>

名称(无具体订单)
我有两张桌子,id和name。ID是一个自动递增的INT,name设置为一个文本。ID也是数据库的主要属性。提交系统工作得很好,但是显示却不是

当我查看页面时,应该有文本($name),而我得到的是一个空白区域,没有文本。这是我访问页面时收到的信息,只有一个数据库条目:

<html>

<body>

<table border="2" cellspacing="2" cellpadding="2">

<tr>

<th><font face="Arial, Helvetica, sans-serif">Name(No specific order)</font></th>

</tr>





<tr>

<td><font face="Arial, Helvetica, sans-serif"></font></td>

</tr>



</body>

</html>

名称(无具体订单)

任何帮助都将不胜感激,谢谢。

在尝试显示姓名的循环中,
出现问题

替换为以下内容:

 <?php
    if($num >0) {
       while ($row=mysql_fetch_assoc($result)) {
         ?>
        <tr>
           <td><font face="Arial, Helvetica, sans-serif"><?php echo $row['name']; ?></font></td>
        </tr>
        <?php

        }
      }
  ?>


尝试显示名称的
while循环中出现错误

替换为以下内容:

 <?php
    if($num >0) {
       while ($row=mysql_fetch_assoc($result)) {
         ?>
        <tr>
           <td><font face="Arial, Helvetica, sans-serif"><?php echo $row['name']; ?></font></td>
        </tr>
        <?php

        }
      }
  ?>


我建议不要使用旧的mysql函数。您可以这样做(通过PDO_mysql扩展):


我建议不要使用旧的mysql函数。您可以这样做(通过PDO_mysql扩展):


您有来自MySQL的查询结果,但没有正确循环。尝试:

$result=mysql_query($query);
if(mysql_num_rows($result) > 0)
{
    while ($row = mysql_fetch_assoc($result))
    {
        // print data
    }
}

您有来自MySQL的查询结果,但没有正确循环。尝试:

$result=mysql_query($query);
if(mysql_num_rows($result) > 0)
{
    while ($row = mysql_fetch_assoc($result))
    {
        // print data
    }
}

我发誓,我将不得不写一本不烂的PHP书,这样我就可以指着它说我知道有一本不再使用mysql扩展。我发誓,我将不得不写一本不烂的PHP书,这样我就可以指着它说我知道有一本不再使用mysql扩展。嗯,我不认为mysql\u close()销毁结果集。有一个单独的函数可以做到这一点:mysql\u free\u result($result)sikander,哦,你是对的,我查看了源代码,它不会在mysql\u close调用中释放结果。我会修正我的答案,谢谢。嗯,我不认为mysql_close()会破坏结果集。有一个单独的函数可以做到这一点:mysql\u free\u result($result)sikander,哦,你是对的,我查看了源代码,它不会在mysql\u close调用中释放结果。我会修正我的答案的,谢谢。蒂兹,谢谢你试图帮助我,尽管很遗憾,我不相信这是我所经历的问题的解决方案。仍然没有显示任何数据。以前,它会为每个名称创建一个“行”,但不会显示其中的文本。编辑:很快尝试你的解决方案。蒂兹,谢谢你尝试帮助我,但遗憾的是,我不相信这是我所经历问题的解决方案。仍然没有显示任何数据。以前,它会为每个名称创建一个“行”,但不会显示其中的文本。编辑:快速尝试修复。
    foreach ($results as $res) {
        echo $res['column_name'];
    }
$result=mysql_query($query);
if(mysql_num_rows($result) > 0)
{
    while ($row = mysql_fetch_assoc($result))
    {
        // print data
    }
}