我有一个mysql结果(有许多行),我将在以后使用。目前,我只需要访问(总和)前5行。问题是使用“AS”从查询中保存行,所以现在可以使用$row['name']
来访问它们。我怎样才能选择前5行而不使用每个人的“名称”?MySQL在查询后选择前5行
有没有办法这样做,像这样:
PHP:
for($i=0;$i<5;++$i)
echo $row[$i];
?
编辑
对不起,我的问题是错误的。 实际上:我怎样才能使用相同的$结果2次而不丢失取数组的值?只要你想
我有一个mysql结果(有许多行),我将在以后使用。目前,我只需要访问(总和)前5行。问题是使用“AS”从查询中保存行,所以现在可以使用$row['name']
来访问它们。我怎样才能选择前5行而不使用每个人的“名称”?MySQL在查询后选择前5行
有没有办法这样做,像这样:
PHP:
for($i=0;$i<5;++$i)
echo $row[$i];
?
编辑
对不起,我的问题是错误的。 实际上:我怎样才能使用相同的$结果2次而不丢失取数组的值?只要你想
你用什么与DB工作的取功能工作? PDO?库MySQLi? MySQL扩展?
如果你使用MySQL扩展(mysql_connect()
,mysql_query()
等),你可以使用mysql_data_seek()
移动的MySQL结果内部的行指针:
$res = mysql_query($sql);
if (mysql_num_rows($res)) {
// process first 5 lines
for ($n = 0; $n < 5; ++$n) {
$row = mysql_fetch_assoc($res);
if ($row === false) {
break;
}
// do something with $row
// ...
}
// reset pointer
mysql_data_seek($res, 0);
// process all rows
while ($row = mysql_fetch_assoc($res)) {
// do something with $row
// ...
}
}
mysql_free_result($res);
另一种选择是获取所有成果转化一个数组然后使用该数组。我想不出打开MySQL资源的好处。
$result = array();
while($row = mysql_fetch_array($queryResult)) {
$result[$row['primaryKey']] = $row; // index the $result according to any fieldValue(say primay key) so that you can access a single records without looping)
echo $row['name'];
}
使用$结果多次想你混淆东西。 $row['name']
访问名为名一个行的列锼,你应该在你的while($row = mysql_fetch_assoc($result)) {}
你可以使用MySQL查询作为
SELECT * FROM table_name_ravi限制0,5
只是用这个
我
'for($ i = 0; $ i <5; ++ $ i)'语句有什么问题? – ksindi 2011-05-13 11:24:30
您可以在mysql查询中使用LIMIT获取5行而不是获取所有行并仅使用5行。 – 2011-05-13 11:26:25
@hydra,对不起,请参阅我的编辑@harry因为后来我需要所有值 – Cristy 2011-05-13 11:27:51