1

它只是从表中获取第一个元素。表名是包含 2 列的类别:id、类别

我不明白为什么它只从表中获取第一行。

<?php 
    $sql = "SELECT category FROM categories";
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result); 
    //print_r($row);             
?>
4

6 回答 6

5

您需要遍历结果集以检索所有行。

while($row = mysql_fetch_assoc($result)) {
    print($row);
}

另外,停止使用mysql_函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。

于 2013-10-10T12:53:36.867 回答
1

在 while 循环中使用它:

while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
}
于 2013-10-10T12:54:21.857 回答
0

对于检索结果集根据您的需要使用循环

 foreach

在迭代长度未知(或可能未知)的数组时使用。作为

foreach($row as $val)
{
echo $val;
}

为了

在遍历设置了长度的数组时使用,或者在需要计数器时使用。

for(i=0;i<sizeof($row);i++)
{
echo $row[$i];
}

尽管

当您以查找或触发某个标志为明确目的而迭代数组时使用。

while($row=mysqli_fetch_array($query))
{
echo $row['flag'];
}
于 2013-10-10T13:05:58.030 回答
0

就像你写的那样mysql_fetch_assoc($result);只会得到一排。你必须使用循环来得到它。

于 2013-10-10T12:53:02.287 回答
0

如果你只调用一次 mysql_fetch_assoc,你只会得到第一行......

while(false !== $row = mysql_fetch_assoc($result)) {
    print_r($row)
}
于 2013-10-10T12:54:01.183 回答
0

您正在使用的功能只做一个记录。尝试。..while($row = mysqli_fetch_array($result)) { echo $row['id'] 。“”。$row['类别']; 回声“
”;}

于 2013-10-10T12:59:43.090 回答