[英]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.