Php MySQL查询未返回预期结果
假设我在表格中有以下信息-1表示无限制Php MySQL查询未返回预期结果,php,mysql,Php,Mysql,假设我在表格中有以下信息-1表示无限制 Price Minutes SMS Data 7.50 200 -1 250 10 250 -1 1000 12 250 -1 -1 在我的表单上,我有许多字段和一个复选框,如果你想要无限的东西,那么我有一个SQL查询,它有一些变量,这取决于复选框是否勾选如下: //check to see if minutes is set as unl
Price Minutes SMS Data
7.50 200 -1 250
10 250 -1 1000
12 250 -1 -1
在我的表单上,我有许多字段和一个复选框,如果你想要无限的东西,那么我有一个SQL查询,它有一些变量,这取决于复选框是否勾选如下:
//check to see if minutes is set as unlimited. if they are, set sms as -1
if ($minunlim=="on"){
$minquery = "minutes = -1";
$minutes = "Unlimited";
} else {
$minutes = $_GET["minutes"];
$minquery = "minutes >= '$minutes' OR minutes = -1";
}
//check to see if sms is set as unlimited. if they are, set sms as -1
if ($smsunlim=="on"){
$smsquery = "sms = -1";
$sms = "Unlimited";
} else {
$sms = $_GET["sms"];
$smsquery = "sms >= '$sms' OR sms = -1";
}
//check to see if sms is set as unlimited. if they are, set sms as -1
if ($dataunlim=="on"){
$dataquery = "data = -1";
$data = "Unlimited";
} else {
$data = $_GET["data"];
$dataquery = "data >= '$data' OR data = -1";
}
//run query
$getprices = $this->db->query("SELECT * FROM gg_Crates WHERE
price <= '$price' AND $minquery
AND ($smsquery)
AND ($dataquery)");
//检查分钟数是否设置为无限制。如果是,则将sms设置为-1
如果($minunlim==“开”){
$minquery=“分钟=-1”;
$minutes=“无限”;
}否则{
$minutes=$_GET[“minutes”];
$minquery=“分钟数>=”$minutes“或分钟数=-1”;
}
//检查sms是否设置为无限制。如果是,则将sms设置为-1
如果($smsunlim==“on”){
$smsqury=“sms=-1”;
$sms=“无限”;
}否则{
$sms=$_GET[“sms”];
$smsquery=“sms>=”$sms”或sms=-1”;
}
//检查sms是否设置为无限制。如果是,则将sms设置为-1
如果($dataunlim==“on”){
$dataquery=“data=-1”;
$data=“无限”;
}否则{
$data=$_GET[“data”];
$dataquery=“data>=”$data”或data=-1”;
}
//运行查询
$getprices=$this->db->query(“从GGU板条箱中选择*,其中
价格你的逻辑可能有问题
这个
这是:
data >= '$data' OR data = -1
是有问题的表示形式,请将查询更改为:
$getprices = $this->db->query("SELECT * FROM gg_Crates WHERE
price <= '$price' AND ($minquery)
AND ($smsquery)
AND ($dataquery)");
$getprices=$this->db->query(“从GGU板条箱中选择*
似乎无法解决问题的价格:(更新问题以反映建议。然后你的逻辑有问题,想想你真正需要什么,以及你如何表达这个问题。我知道这似乎是在看最低的数字,然后从那里向上拉。例如,有一排有100分钟或更长时间(7.50)因此,它选择该行,而不是继续查询。这更像是一个SQL问题,就像我直接运行该查询一样,我会得到相同的结果。您得到的是价格为7.5的行,因为它满足价格='100',但其利用率,因此数据也必须大于或等于300,但不是。显示更多代码…您在哪里设置$price、$smsunlim等
data >= '$data' OR data = -1
$getprices = $this->db->query("SELECT * FROM gg_Crates WHERE
price <= '$price' AND ($minquery)
AND ($smsquery)
AND ($dataquery)");