所以我有以下代码:
$sql = mysql_query("SELECT result FROM table1");
$result = mysql_fetch_array($sql);
print_r($result);
我想在这里做的只是检查上面选择的数据是否会显示,但print_r
的结果只显示数据的第一行。
例如结果:Array ( [0] => 2 [result] => 2 )
当我检查数据库时,数据没有任何问题。在第一行之后,还有其他行
也许这是一个愚蠢的问题,但有人可以帮助我吗?谢谢。
答案 0 :(得分:1)
尝试一段时间来获取所有行而不仅仅是第一行:
$sql = mysql_query("SELECT result FROM table1");
while ($row = mysql_fetch_array($sql)) {
print_r($row);
}
对于mysql_fetch_array
的每次调用,它只获取一行,当没有更多行时,则会返回错误。
while循环并调用每个循环mysql_fetch_array
,直到它们被错误回复。
你也可以写两行,但是你有"静态"代码,也不超过2行:
$sql = mysql_query("SELECT result FROM table1");
$row1 = mysql_fetch_array($sql);
$row2 = mysql_fetch_array($sql);
如果表格中只有一行,则会得到以下结果:
$row1 = Array ( [0] => 2, [result] => 2 );
$row2 = false;
答案 1 :(得分:1)
我知道你没有要求它,但不要使用mysql_*
,因为它已被移除,你可以使用PDO或mysqli来代替此
<?php
$con=mysqli_connect("localhost","your_user_name","your_password","your_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT result FROM table1";
$result=mysqli_query($con,$sql);
// Fetch all rows as an associative array
$rows = mysqli_fetch_all($result,MYSQLI_ASSOC);
print '<pre>';
print_r($rows);
print '</pre>';
// Free result set
mysqli_free_result($result);
mysqli_close($con);
?>
答案 2 :(得分:0)
通过以下内容,您将一次性获得所有内容:
$result = mysqli_fetch_all($sql, MYSQLI_ASSOC);
从v5.3.0 +开始。来源:PHP.net和W3Schools
请注意,您需要将MySQLnd作为本机驱动程序!
仅适用于mysqlnd。
要以更有条理的方式打印,请按以下方式进行:
echo "<pre>";
print_r($result);
echo "</pre>";
答案 3 :(得分:-1)
$sql = mysql_query("SELECT result FROM table1");
$count = mysql_num_rows($sql);
if($count>0){
//anything here
}