如何反转从MYSQL获取的PHP中的数组

时间:2011-09-17 02:43:29

标签: php mysql arrays

我试图从MySQL中提取一行数据并将其放入数组中,然后在显示结果之前将其反转,然后如果用户确认,它会将反转结果发回mysql

我正在使用此代码:

for($i=0;$i<6;$i++) {
// Make a MySQL Connection
$query = "SELECT * FROM databasedemo WHERE id='$i'"; 
$result = mysql_query($query)or die(mysql_error());
$row = mysql_fetch_array($result);
array_reverse($row,true);
echo $i."--"."A".$row['A']. " - ". "B".$row['B']. " - ". "C".$row['C']. " - ". "D".$row['D']. " - ". "E".$row['E'];
echo "<br>";
}

我收到此错误

Warning: array_reverse() [function.array-reverse]: The argument should be an array in /home/nlp4mark/public_html/Databasedemo/main.php on line 37

任何帮助都会非常感激。感谢。

3 个答案:

答案 0 :(得分:2)

您应该只执行一次此查询,然后遍历结果并显示它们:

$query = "SELECT * FROM databasedemo ORDER BY id DESC";

答案 1 :(得分:0)

$query = "SELECT * FROM databasedemo WHERE id='$i'"; 

该查询将在当时返回一条记录。您使用for循环发送了6次,这就是您获取所有记录的原因,但是您发送了6次稍微不同的查询。

尝试发送一个返回所有6条记录的查询,然后将其反转。它会是这样的

$sql = "SELECT * FROM databasedemo WHERE 1=1";
for($i=0;i<6;$i++){
    $sql .= " AND id=$i";
}

答案 2 :(得分:0)

喜欢这个

select * from  (SELECT * from messages INNER JOIN logindata ON messages.author = logindata.id ORDER BY messages.mid DESC LIMIT 0,10) as t ORDER BY t.mid asc