我有这个
$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]
但显然这是不正确的语法,并且不起作用,但希望你得到我想要做的。
谢谢
答案 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)