根据索引回显查询结果

时间:2011-10-02 17:05:10

标签: php mysql echo

这是非常基本的,但我似乎无法让它工作

我有这个查询

$people = "SELECT name FROM people";
$people = mysql_query($people) or die(mysql_error());
$row_people = mysql_fetch_assoc($people);
$totalRows_people = mysql_num_rows($people);

我可以使用

回显此查询的第一个结果
<?php echo $row_people['name']; ?>

我也可以创建一个循环并回显所有结果。

但我真的想根据其索引单独回应结果。

我试过这个,但它不起作用。

<?php echo $row_people['name'][2]; ?>

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

您可以按索引对它们进行排序,然后使用循环。

$people = "SELECT name FROM people ORDER by index";

答案 1 :(得分:0)

您可以使用WHERE子句通过索引获取它们。

$people = sprintf("SELECT name FROM people WHERE index='%d'", $index);

如果要查询所有行,可以在循环时将它们存储到数组中:

$people = "SELECT name FROM people";
$people = mysql_query($people) or die(mysql_error());
$totalRows_people = mysql_num_rows($people);
$rows_people = array();
while($row_people = mysql_fetch_assoc($people))
{
    $rows_people[] = $row_people;
}

您可能希望将主键添加到返回的字段中,并可能将其用作数组索引。

答案 2 :(得分:0)

您可以在结果对象上使用mysql_data_seek来搜索特定行。例如,从第2行获取名称值:

mysql_data_seek($people, 2);
$row_people = mysql_fetch_assoc($people);
echo $row_people['name'];

如果你这么做很多,那么在开始时将所有行集合在一个数组中会更容易:

$data = array();
while ($row = mysql_fetch_assoc($people)) $data[] = $row;

通过这种方式,您可以轻松地获取结果中的任何单元格:

echo $data[2]['name'];