mysql查询不从表中获取所有元素

时间:2013-10-10 12:51:23

标签: php mysql

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

我无法理解为什么只从表中获取第一行。

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

6 个答案:

答案 0 :(得分:5)

您需要迭代通过结果集才能检索所有行。

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

此外,请停止使用mysql_个功能。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。

答案 1 :(得分:1)

在while循环中使用它:

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

答案 2 :(得分:0)

就像你写的mysql_fetch_assoc($result);只会得到一行一样。你必须使用循环才能完成所有工作。

答案 3 :(得分:0)

如果你只调用一次mysql_fetch_assoc,你将只获得第一行......

while(false !== $row = mysql_fetch_assoc($result)) {
    print_r($row)
}

答案 4 :(得分:0)

您正在使用的功能仅执行一条记录。 尝试。 ..while($ row = mysqli_fetch_array($ result))   {   echo $ row ['id']。 “”。 $行[ '分类'];   echo“
”;   }

答案 5 :(得分: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'];
}