我一直绞尽脑汁试图找到一些看起来很简单的东西。我有一个表“重量”。重量有3列“shipping_to”,“shipping_from”和“shipping_cost”。
Shipping_to和Shipping_from是重量值,如果值大于或等于X且小于或等于X,运费将保留运费。
我已经写了这百万种不同的方式,对我来说它不会起作用。
更新: 脚本工作“有点”,但它永远不会返回1的成功响应,它永远不会模仿X的值,即使我已经手动将这些值放入我的MySQL数据库中。
PHP SCRIPT:
if($The_Function=="SHIPPING_COST"){
$response = array();
require_once __DIR__ . '/db_connect.php';
$con = new DB_CONNECT();
$ship_weight = 1;
$result = mysql_query("SELECT * FROM weight WHERE from_weight >= '$ship_weight' AND to_weight <= '$ship_weight'");
if(!empty($result)){
if (mysql_num_rows($result) > 0) {
$response["userID"] = array();
while ($row = mysql_fetch_array($result)) {
$custID = array();
$custID["shipping_cost"] = $row["shipping_cost"];
array_push($response["userID"], $custID);
}
$response["success"] = 1;
echo json_encode($response);
}else {
$response["success"] = 0;
$response["message"] = "No shipping found";
echo json_encode($response);
}
}else {
$response["success"] = 0;
$response["message"] = "No shipping found";
echo json_encode($response);
}
}
答案 0 :(得分:2)
错误发生在Query本身。我所要做的只是给最后一列比较一些东西,所以我再次添加了$ ship_weight。这是代码。
$result = mysql_query("SELECT * FROM weight WHERE '$ship_weight' >= from_weight AND '$ship_weight' <= to_weight");
答案 1 :(得分:0)
我认为问题是$result
永远不会是empty()
如果查询有效,如果是resource handle
,如果失败,则为false
。
所以试试这个:
$result = mysql_query("SELECT * FROM weight WHERE from_weight >= '$ship_weight' AND to_weight <= '$ship_weight'");
if($result !== FALSE){
if (mysql_num_rows($result) > 0) {
$response["userID"] = array();
while ($row = mysql_fetch_array($result)) {
$custID = array();
$custID["shipping_cost"] = $row["shipping_cost"];
array_push($response["userID"], $custID);
}
$response["success"] = 1;
echo json_encode($response);
}else {
$response["success"] = 0;
$response["message"] = "No shipping found";
echo json_encode($response);
}
}else {
$response["success"] = 0;
$response["message"] = "No shipping found";
echo json_encode($response);
}
答案 2 :(得分:0)
这是您的代码的复制和粘贴吗?如果是这样,请看这一行:
$result = mysql_query("SELECT * FROM weight WHERE from_weight >= '$ship_weight' AND to_weight <= '$ship_weight'");
PHP正在考虑将您的$ship_weight
变量作为字符串的一部分。将其更改为:
$result = mysql_query("SELECT * FROM weight WHERE from_weight >= '".$ship_weight."' AND to_weight <= '".$ship_weight."'");
此外,不推荐使用mysql_ *。看看mysqli_* extension。