SyntaxError {stack:(...),message:“Unexpected token<”} tracker.js:41 parsererror

时间:2014-03-20 04:45:31

标签: php

我想使用PHP

从db检索数据
$device_owner_resultset=mysqli_query($con, "SELECT * FROM  `device_owner_details` WHERE  `deviceId` =$device_details_data_id");
$device_owner_resultset_data = mysqli_fetch_array($device_owner_resultset);
    $owner_deviceid = $device_owner_resultset_data['deviceId'];
    $owner_name = $device_owner_resultset_data['name'];
    $name_fetch_rows = mysqli_fetch_row($device_owner_resultset);
$device_realtime_resultset=mysqli_query($con, "SELECT * FROM  `device_realtime_stats` WHERE  `deviceId` = $owner_deviceid LIMIT $start_from , $limit");


$rows_fetch = mysqli_fetch_row($device_realtime_resultset);
if(($total_pages<=$page) &&( $total_pages>0))
        {
        $device_details=array('devices'=> array());
        for($i=1;$i<=20;$i++)
        {

            $details =array('name' => $name_fetch_rows[$i]-> name, 'latitude' => $rows_fetch[$i] -> currentLatitude, 'longitude' => $rows_fetch[$i] -> currentLongitude);
            array_push($device_details['devices'],$details);
        }
        $response = json_encode($device_details);
        echo $response;
        }

这里我有一个解析错误,我编码的错误是什么,我认为错误发生在mysqli_fetch_rows及其调用数组

2 个答案:

答案 0 :(得分:0)

您没有正确使用mysqli_fetch_row($result)。函数mysqli_fetch_row($result)不返回所有行数据。它返回一行作为枚举数组的数组。请使用此代码尝试此代码:

 // Now only selects name column and added LIMIT 1 to MySQL query for efficiency
 $device_owner_resultset = mysqli_query($con, "SELECT name FROM `device_owner_details` WHERE `deviceId` = $device_details_data_id LIMIT 1");

 // Now using mysqli_fetch_assoc($result)
 // instead of mysqli_fetch_array($result) for clarity
 $device_owner_resultset_data = mysqli_fetch_assoc($device_owner_resultset);

 // Got rid of $owner_deviceid because it should be the same as $device_details_data_id

 $owner_name = $device_owner_resultset_data['name'];

 // Got rid of $name_fetch_rows because it is redundant with $device_owner_resultset_data

 // Query now specifies which columns it selects for clarity and efficiency
 $device_realtime_resultset = mysqli_query($con, "SELECT currentLatitude, currentLongitude FROM `device_realtime_stats` WHERE `deviceId` = $device_details_data_id LIMIT $start_from, $limit");

 if ($total_pages <= $page && $total_pages > 0) {
    $device_details=array('devices'=> array());

    // This loops through all the rows from the query
    while ($row = mysqli_fetch_assoc($device_realtime_resultset)) {

       // $row is an associative array where the column name is
       // mapped to the column value.
       // The owner name should remain the same because there is
       // only one owner.
       $details = array('name' => $owner_name,
                        'latitude' => $row["currentLatitude"],
                        'longitude' => $row["currentLongitude"]
       );
       array_push($device_details['devices'], $details);
    }
    $response = json_encode($device_details);
    echo $response;
 }

如果device_realtime_stats表的列未命名为currentLatitude,则currentLongitude确保重命名。

答案 1 :(得分:0)

$mysql_all_resultset = mysqli_query($con, " SELECT dot.name, drs.currentLatitude, drs.currentLongitude FROM device_details dt, device_owner_details dot,   device_realtime_stats drs WHERE dt.vendorId=$vendor_id AND dot.deviceId=dt.id AND drs.deviceId= dot.deviceId LIMIT $start_from, $limit ");

if(($total_pages<=$page) &&( $total_pages>0))
        {
        $device_details=array('devices'=> array());
         while ($rows_fetch = mysqli_fetch_assoc($mysql_all_resultset))
        {
            $details =array('name' => $rows_fetch['name'], 'latitude' => $rows_fetch['currentLatitude'], 'longitude' => $rows_fetch['currentLongitude']);
        array_push($device_details['devices'],$details);
        }
        $response = json_encode($device_details);
        echo $response;
        }