PHP不显示所有行

You*_*end 0 php mysql

这是代码我试图显示数据库中的所有数据...

$sql = mysql_query("SELECT * FROM data ORDER BY id DESC");
$row1 = mysql_fetch_array($sql);
print_R($row1);
Run Code Online (Sandbox Code Playgroud)

但它只显示一行..我在数据库中共有三行,如果我在数据库中运行相同的查询,它会显示所有行..我想显示所有三行如何解决这个问题?

Kev*_*vin 6

由于您需要多行,因此需要使用while循环:

$sql = mysql_query("SELECT * FROM data ORDER BY id DESC");
while($row1 = mysql_fetch_assoc($sql)) {
    echo $row1['column_name'];
}
Run Code Online (Sandbox Code Playgroud)

强制性说明:

请不要mysql_*在新代码中使用函数.它们不再维护,并且已被正式弃用.看到红色的盒子?了解准备好的语句,并使用 PDO MySQLi -本文将帮助您确定哪些.如果您选择PDO,这是一个很好的教程.

以下是来自PDO对应方的一个简单示例:

$con = new PDO('mysql:host=localhost;dbname=database_name', 'username', 'password'); // simple connection
$query = $con->query('SELECT * FROM data ORDER BY id DESC'); // put your query here
while($row = $query->fetch(PDO::FETCH_ASSOC)) { // same concept, you need to fetch them and put them inside the while loop since you're expecting multiple rows
    echo $row['column_name'];
}
Run Code Online (Sandbox Code Playgroud)

基本上第一个答案是可行的,但我建议你放弃那个弃用的API并开始使用PDO.不用担心,学习此API时不会缺少资源.

  • "_Please,不要在新代码中使用mysql_*函数****."而不是普遍使用的OP通常是无用的而且不是很有建设性的"_mysql_*已弃用_",这只是新的情况PHP版本,全球<4%的服务器. (2认同)