【问题标题】:mysql_fetch_row : how does it know which row?mysql_fetch_row :它如何知道哪一行?
【发布时间】:2014-02-06 21:39:06
【问题描述】:

我试图掌握 PHP 和 MYSQL 编程,但在看到一个示例后,我无法理解 mysql_fetch_row 如何知道要返回哪一行。例如:

<?php

$query = "SELECT * FROM classics";
$result = mysql_query($query);

$row = mysql_fetch_row($result); //gets the rows refering to the query

echo $row[0]; //returns the data in column 1

?>

在上面的代码中,echo $row[0]; 返回表中第一列的数据,但是它如何知道从哪一行获取这些数据(假设查询返回多行)?

此外,如果我将代码放入循环中:

<?php

$query = "SELECT * FROM classics";
$result = mysql_query($query);

for ($j = 0 ; $J < 4 ; ++$j)
{
$row = mysql_fetch_row($result);
echo $row[0];
}

?>

回显的值是 (row1,column1) (row2,column1,) (​​row3,column1) 中的值。如果增加的值$j 不直接影响mysql_fetch_row 函数,这将如何工作??

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    每次调用它时它都会前进到下一行,这就是为什么它通常用于while 循环

    【讨论】:

    • 啊,好吧!所以如果查询返回 10 行,并且函数不在循环中,它只会返回数据库中的第一行?
    • 您可以多次调用它而无需循环。第一次调用返回第一行,第二次调用返回第二行,以此类推。
    • 不,不是第一个,而是一个。哪一个是未定义的,除非您对查询中的行进行排序。然后按该顺序会有第 1 行和第 2 行,依此类推,现在 fetch 将返回第 1 行。
    • 它只会给你下一行,是的。再次调用它,你会得到第二行。当您执行 while( $row = mysql_fetch_row($result) ) 时,它会将 $row 设置为每次循环迭代的下一条记录
    • 我不明白 pid 是什么意思。您是说 fetch_row 会随机返回行吗?无论查询是否按顺序排列,结果集都有第一行和最后一行。因此,当您第一次调用 mysql_fetch_row 时,它将带入记录集中的第一行。
    【解决方案2】:

    您必须在选择中添加“位置”:

    例如:

    $value="莫扎特";

    $query = " SELECT * FROM classics where author='$value' ";

    句子是:从作者为莫扎特的经典中选择所有数据

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 2011-01-11
      • 2013-03-07
      • 2011-04-07
      相关资源
      最近更新 更多