Print_r仅显示第一行

时间:2016-04-07 16:46:28

标签: php mysql database

所以我有以下代码:

$sql = mysql_query("SELECT result FROM table1");
$result = mysql_fetch_array($sql);
print_r($result);

我想在这里做的只是检查上面选择的数据是否会显示,但print_r的结果只显示数据的第一行。

例如结果:Array ( [0] => 2 [result] => 2 )

当我检查数据库时,数据没有任何问题。在第一行之后,还有其他行 也许这是一个愚蠢的问题,但有人可以帮助我吗?谢谢。

4 个答案:

答案 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_*,因为它已被移除,你可以使用PDOmysqli来代替此

<?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.netW3Schools

请注意,您需要将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
}