制作一个非常简单的php页面,它从一个非常简单的数据库中提取数据并将其显示为墙上监视器的图表。
我从数据库中获取了数据,没有问题,但我似乎在努力将数据拆分
现在我只是回应数据,以确保我拥有我需要的东西。
我的代码如下所示:
<?php
mysql_connect("host", "user", 'password' or die(mysql_error());
mysql_select_db("databax") or die(mysql_error());
$dbdata = mysql_query("SELECT * FROM dbcpman_resources")
or die(mysql_error());
$column = mysql_fetch_array( $dbdata );
echo $column[0]."<br>";
echo $column[1]."<br>";
echo $column[2]."<br>";
echo $column[3]."<br>";
echo $column[4]."<br>";
echo $column[5]."<br>";
?>
确实,它有效 - 它将回显数据库中的数据,但由于我没有在任何地方指定行,它只是给我第一行。
我需要能够分别处理每一行。 此表中只有6行。
那么有人可以帮我解决这个问题,如果我在2,3,4,5和6行复制它吗?
提前致谢!! :)
答案 0 :(得分:1)
您需要遍历结果集。最简单的方法是使用while
循环,因为这会自动终止于结果集的末尾,如下所示。
while ( $row = mysql_fetch_array( $dbdata );
echo $row [0]."<br>";
echo $row [1]."<br>";
echo $row [2]."<br>";
echo $row [3]."<br>";
echo $row [4]."<br>";
echo $row [5]."<br>";
}
此外,如果您要更改返回resuilts的函数以使用mysql_fetch_assoc(),您可以使用它在数据库上的名称引用每个字段,以便代码更易于阅读,如下所示:
我不知道你的字段名称,所以我做了一些。
while ( $row = mysql_fetch_array( $dbdata );
echo $row ['name']."<br>";
echo $row ['date']."<br>";
echo $row ['time']."<br>";
echo $row ['value1']."<br>";
echo $row ['value2']."<br>";
echo $row ['value3']."<br>";
}
答案 1 :(得分:1)
首先,我宁愿使用mysql_fetch_assoc()而不是mysql_fetch_array(),因为如果表格结构发生变化,它不会产生结果。
如果您使用mysqli或PDO代替mysql_*
函数会更好,因为它们已被标记为已弃用!
第二,请注意,任一函数一次只能从结果集中获取一条记录。要获取所有记录,请尝试以下操作:
$records = array();
while($row = mysql_fetch_assoc($dbdata)) {
$records[] = $row;
}
获取所有内容后,您可以print_r($records);
查看$records
内的内容。
答案 2 :(得分:0)
将此行$column = mysql_fetch_array( $dbdata );
放在while循环中,就像这样
while($column = mysql_fetch_array( $dbdata ))
{
echo $column[0]."<br>";
echo $column[1]."<br>";
echo $column[2]."<br>";
echo $column[3]."<br>";
echo $column[4]."<br>";
echo $column[5]."<br>";
}