使用大于和小于的PHP在MySQL中选择值

时间:2013-07-16 22:01:23

标签: php mysql

我一直绞尽脑汁试图找到一些看起来很简单的东西。我有一个表“重量”。重量有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);
    }
}

3 个答案:

答案 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