通过php传递相同id的多个值

时间:2016-04-19 12:06:38

标签: php json

我想通过我的url传递多个值,如下所示。

  

http://example.com/shopping_cart_json_api.php?uid=5710,55

我已经创建了php编码文件,但是我无法得到正确的结果。

<?php
require('adminpanel/includes/application_top.php');
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $id = explode(",", $_GET["uid"]);
    $sth = mysql_query(" SELECT drug_medicines.fld_id,   
        drug_medicines.fld_image, drug_medicines.ld_product_name,
        drug_medicines.fld_best_price,drug_cart.ld_userid,
        drug_cart.fld_qunty, drug_cart.fld_totalprice
        FROM drug_medicines
        INNER JOIN drug_cart
        ON drug_medicines.fld_id=drug_cart.fld_productid 
        WHERE fld_userid='" . $id . "' ||'" . $id . "'");
    $rows = array();
    while ($r = mysql_fetch_assoc($sth)) {
        $rows[] = $r;
    }
    print json_encode($rows);
}
?>

4 个答案:

答案 0 :(得分:3)

格式应该是这样的。

WHERE fld_userid='".$id[0]."' OR fld_userid= '".$id[1]."'");

对于超过2的值,请使用

WHERE fld_userid IN (" . implode(',', $id) . ")"

答案 1 :(得分:2)

根据您的URL,您将来可能会有更多的值,因此您应该使用IN的{​​{1}}函数

mysql

答案 2 :(得分:1)

您应该使用connection.start({ transport: 'longPolling' }); 以获得更大的灵活性。

IN

将输出:

"... WHERE fld_userid IN (" . implode(',', $id) . ")"

答案 3 :(得分:1)

在mysql查询中使用IN

<?php
require('adminpanel/includes/application_top.php');
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $id = explode(",", $_GET["uid"]);
    $sth = mysql_query("
            SELECT 
                drug_medicines.fld_id,   
                drug_medicines.fld_image, drug_medicines.ld_product_name,
                drug_medicines.fld_best_price,drug_cart.ld_userid,
                drug_cart.fld_qunty, drug_cart.fld_totalprice
            FROM 
                drug_medicines
            INNER JOIN 
                drug_cart
            ON 
                drug_medicines.fld_id=drug_cart.fld_productid 
            WHERE 
                fld_userid IN (" . $_GET["uid"] . ")");
    $rows = array();
    while ($r = mysql_fetch_assoc($sth)) {
        $rows[] = $r;
    }
    print json_encode($rows);
}
?>