检查值是否在两列的值之间

时间:2015-06-10 00:01:45

标签: php mysql sql

我是php和sql的新手,所以我遇到了一些任务问题。

任务是:我有一个包含3列的数据库,具有城市名称,minValue和maxValue。这个数据库必须有大约200行,如下所示:

  

| COL 1 | COL 2 | COL 3 |

     

|圣保罗| 65000000 | 65050000 |

     

|巴西利亚| 69000000 | 65090000 |

我必须收到一个值,并检查它是否在COL 2和COL 3的值之间,并且必须检查表格中的每一行。

现在我从post获得了值,并执行以下操作:

 <body>
  <?php 
  $cep = $_POST["cep"];
  $connect = mysqli_connect("--db settings--");
  $query = mysqli_query($connect, "SELECT * FROM tabela_cep WHERE $cep BETWEEN `COL 2` AND `COL 3`");
  $dados= mysqli_fetch_array($query);

    $cep_lenght = strlen((string)$cep);
    if($cep_lenght == 7) {
        $cep = (string)$cep;
        $cep = "0" . $cep;
    }else{
        return;
    }
    if($dados) {
    echo "<p>The value <strong>$cep</strong> is valid !</p>";
  }else {
    echo "<p>The value <strong>$cep</strong> is invalid !</p>";
  }
     ?>

问题是:我提交的每个值都被视为有效。

我现在正在学习PHP,但我已经从基础知识中获益,而且我需要尽快解决这个问题,我需要你的帮助..我做错了什么?

1 个答案:

答案 0 :(得分:0)

SELECT * FROM tabela_cep WHERE $cep > `COL 2` AND $cep < `COL 3`

正如已经说过的那样,你没有消毒你的输入。确保这样做是为了避免SQL注入。