繁体   English   中英

PHP代码不返回基于过滤器的任何产品

[英]PHP code return no product based on filter

我正在尝试学习PHP代码,并且正在研究在androidhive上找到的教程(在链接)。

当我使用过滤器请求产品数据时,我陷入了困境。 这是androidhive在代码中的作用:

List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("pid", pid));

在PHP中:

if (isset($_GET["pid"])) {
    $pid = $_GET['pid'];

    // get a product from products table
    $result = mysql_query("SELECT *FROM products WHERE pid = $pid");

    if (!empty($result)) {
    // check for empty result
        if (mysql_num_rows($result) > 0) {

            $result = mysql_fetch_array($result);

            $product = array();
            $product["pid"] = $result["pid"];
            $product["username"] = $result["username"];
            ...
            // success
            $response["success"] = 1;

            // user node
            $response["product"] = array();

            array_push($response["product"], $product);

            // echoing JSON response
            echo json_encode($response);
        } else {
            // no product found
            $response["success"] = 0;
            $response["message"] = "No product found 1";

            // echo no users JSON
            echo json_encode($response);
        }
    } else {
    // no product found
    $response["success"] = 0;
    $response["message"] = "No product found 2";

    // echo no users JSON
    echo json_encode($response);
    }
} else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
}

虽然我基本上是这样做的:

List<NameValuePair> params = new ArrayList<>();                        
params.add(new BasicNameValuePair("username", "a"));

在PHP中:

if (isset($_GET["username"])) {
$username = $_GET['username'];

// get a product from products table
$result = mysql_query("SELECT *FROM products WHERE username = $username");

因此,我仅按不同的值过滤产品。

但是,这返回了我“找不到产品2”,所以我想我的结果是空的。 当我运行原始代码时,它可以完美运行。

有人可以帮助我吗? 提前致谢!

如果数据库中的用户名是字符串,则需要在$ username前后加上引号。

$result = mysql_query("SELECT *FROM products WHERE username = '$username'");

由于用户名类型为varchar,因此您必须按以下方式修改查询

if (isset($_GET["username"])) {
   $username = $_GET['username'];
   $result = mysql_query("SELECT *FROM products WHERE username = '$username'");

   /// other code
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM