如何从数据库获取所有序列并通过JSON发回

时间:2013-05-07 10:05:31

标签: php mysql sql select phpmyadmin

我想从注册表中获取所有serialNo,然后将其发送回设备。我试试这个:
    

date_default_timezone_set ('Asia/Phnom_Penh');
// Create a header with the current time
header('Last-Modified: ' . date("D, d M Y H:i:s", time()) . ' GMT+7');

$query1 = mysql_query("select serialNo from registration");
$row = mysql_fetch_array($query1);
$serialsArray = Array($row['serialNo']); 

$tag = '';
    if(!empty($_GET['passesUpadatedSince'])){
        $tag = strtotime($_GET['passesUpadatedSince']);
        error_log('Tag: ' .$tag,0);
    }

        $query1 = mysql_query("select MAX(updateTag) as updateTag from digiCardPass");
        $row1 = mysql_fetch_array($query1);
        $updateTag = $row1['updateTag'];
        error_log("get serial method");

    //if (!empty($serialsArray) && $updateTag != $tag) {
    if (!empty($serialsArray)) {

            echo json_encode(array('lastUpdated' => (string)time(), 
                       'serialNumbers' => $serialsArray)); 
    }else {
        response(204);
    }
}

?>


但是当我发送串口时,我只看到1个串口。结果如下:May 7 17:01:05 ML-iphone-5 passd[4234] <Warning>: Get serial numbers task completed with update tag 1367920864, serial numbers ( 1 )
如何获得所有序列号?

2 个答案:

答案 0 :(得分:3)

您应该使用mysqli,因为不推荐使用mysql_ *,但无论如何......

您只能看到一个结果:

$row1 = mysql_fetch_array($query1);
$updateTag = $row1['updateTag'];

你需要这样的东西:

while ($row = mysql_fetch_row($query1))
{
    // do something sensible with each one here
    echo $row['updateTag'];
}

答案 1 :(得分:1)

因为每个设备都有自己的设备ID,所以我只需更改:
$query1 = mysql_query("select serialNo from registration where deviceID = '$deviceID'");
现在一切都像我想要的那样!