从MySQL表中回显选定的id

时间:2011-01-28 11:45:48

标签: php sql mysql

我有这个

    $sql = "SELECT id FROM table";

    $result = mysql_query($sql) or die(mysql_error());

    while($row = mysql_fetch_array($result)){

    echo $row['id'];

    }

这个echo是表中的所有id。

如何选择仅回显选定的ID。

说出桌子上找到的第二个ID?

修改

我想我也困惑了人和自己。

让我再试一次。

使用上面的查询,我可以用echo $ row ['id']回显表中的所有结果;

但是我不希望回显所有结果,只选择选定的结果。

你们建议我使用limit或Where子句。

如果我这样做,我将仅限于一条记录。这不是我想要的。

我想回应一系列记录。

有点喜欢这个

echo $ row ['id'] [5],$ row ['id'] [6],$ row ['id'] [6]

但显然这是不正确的语法,并且不起作用,但希望你得到我想要做的。

谢谢

3 个答案:

答案 0 :(得分:1)

如果您只想要第二行,那么您可以将查询更改为使用偏移和限制,例如

SELECT id FROM table LIMIT 1, 1

您也可以使用for循环而不是while循环,然后放入条件。

<强>更新

刚刚注意到上面的评论 - 您还需要通过将mysql_fetch_array更改为mysql_fetch_assoc来对PHP错误进行排序。

更新2

根据您上面的更新,您希望将所有行都放入一个数组中,然后您可以迭代。

你可以使用mysql_fetch_array然后使用$ array [0]。例如:

$sql = "SELECT id FROM table";

$result = mysql_query($sql) or die(mysql_error());
$ids = array();
while($row = mysql_fetch_array($result)) {
    $ids[] = $row[0];
}

答案 1 :(得分:0)

如果您希望仅使用第N个值,我可以从您的问题中收集您不应该选择表中的所有记录,请使用:

SELECT id FROM table LIMIT N, 1

这将选择返回的第N个值。注意:第一个结果为0,因此如果您希望获得第二个值,则第N个值应为1.

答案 2 :(得分:-1)

mysql_data_seek()让你跳转到一个特定的数据集(例如2.nd)

示例:

$sql = "SELECT id FROM table";
$result = mysql_query($sql) or die(mysql_error());

//get the 2nd id(counting starts at 0)
if(mysql_data_seek($result,1))
{
  $row=mysql_fetch_assoc($result);
  echo $row['id'];
}

使用 mysqli_result::fetch_all

它返回一个数组而不是结果集,因此您可以像数组一样处理它并直接选择单个项目(需要PHP5.3)