1

我想要注册表中的所有序列号,然后将其发送回设备。我试试这个:

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 )
我怎样才能得到所有的串行?

4

2 回答 2

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'];
}
于 2013-05-07T11:51:49.160 回答
1

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

于 2013-05-08T02:25:40.807 回答