捕获数据数组并输出单行


Catch an array of data and outputting a single row

我需要通过php "打印"出一行数据。

那么,以w3schools为例:

http://www.w3schools.com/PHP/php_mysql_select.asp

有一个循环遍历所有行(在本例中为2行)并将它们打印出来。最终结果是:

彼得格里芬
格伦泥潭

我想要的是能够选择行1或2(或更多),只是有那一行的数据被选中。然后我可以这样说(我知道这行不通,只是一个例子):

echo $row["Name",2];

,得到:

格伦泥潭

我相信我必须得到一个特殊的参数在mysql_fetch_array,但我找不到它的任何地方,我打赌它的东西真的很简单。请帮助我,完整的例子/教程/指南链接是首选。

你有两个选择。首先是像下面的例子一样编辑你的SQL查询,这将从数据库返回第二行。

$result = mysql_query("SELECT * FROM Persons" WHERE id = 2);

或者在foreach循环期间将所有结果取出到另一个数组中。

$result = mysql_query("SELECT * FROM Persons");
$rows = array();
while($row = mysql_fetch_array($result))
{
  $rows[] = $row['FirstName'] . " " . $row['LastName'];  
}

据我所知,mysql没有一个函数来返回整个查询作为一个数组。

所以你可以切换到使用PDO(推荐):

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll();
echo $result[1]['name'];

或者如果你必须使用mysql_functions,就创建一个带有循环的数组:

while($row = mysql_fetch_array($result)) {
    $result[] = $row;
}
echo $result[1]['name'];

将结果提取到数组中,并打印您想要的行