$ i不会在while循环中递增

Tri*_*der 0 php mysql while-loop

以下是我的PHP代码,它只是i =0在循环中给出我正在递增$i但它总是返回i as 0和while循环只工作一次,虽然我的查询SELECT * FROM events WHERE DATE(event_date) < CURDATE()在exectuing时返回7条记录phpmyadmin.让我知道我在这里做错了什么?

代码 -

<?php
include_once $_SERVER['DOCUMENT_ROOT'].'/app/'."config.php";
error_reporting(E_ALL);

if( $_POST['number'] == 'all' ) {
    $eventArr = array();
    $myarray = array();
    $query = "SELECT * FROM events WHERE DATE(`event_date`) < CURDATE()";
    $result = mysql_query($query);
    $i =0;
    while($row = mysql_fetch_assoc($result)) {

        $eventArr[$i] = array('event_data'=> $row);

        // Get image For an event
        $event_id = $row['id'];

        $query = "SELECT * FROM event_images WHERE event_id = $event_id ORDER BY `uploaded_date` DESC LIMIT 0,1";
        $result = mysql_query($query);
        $eventImgArr = array();
        while($row = mysql_fetch_assoc($result)) {
            $eventImgArr[] = $row;
        }
        $eventArr[$i]['event_image'] = $eventImgArr;

        // Get venue details for the event
        $venue_id = $row['venue_id'];
        $eventVenArr = array();
        $query = "SELECT * FROM `venues` WHERE id = $venue_id";
        while($row = mysql_fetch_assoc($result)) {
            $eventVenArr[] = $row;
        }
        $eventArr[$i]['venue_detail'] = $eventVenArr;
        echo $i, " -- ";
        $i++;
    }
$myarray = array('response'=>'1','message'=>'Event data', 'data'=>$eventArr);
echo json_encode($myarray);
return;
}
Run Code Online (Sandbox Code Playgroud)

Boa*_*ann 5

您正在$result为其他查询重用该变量,这会破坏主循环所需的值.

PS此外,您实际上并没有执行场地详细信息的查询.

  • 在这种情况下,bolean返回为"false".这意味着你的查询出了问题.回声并检查它在phpmyadmin中的返回.请改为:`"SELECT*FROM event_images WHERE event_id ='".$ event_id."'ORDER BY'upload_date'DESC LIMIT 0,1";` (2认同)