这是我的一个文件中的一个小子函数。简单的查询和循环,意外的结果
假设我们有两个表具有以下字段
表1)产品,领域SKU & rangeid
表2)价格表,与场SKU & onpricelist
我的代码基本上需要一个rangeid,加载该范围内的所有产品,然后调用onList来检查这些产品中是否有任何产品在onpricelist中有1,如果指定的rangeid中的任何产品的标志为1,checkHasProducts应返回1. onList函数按预期工作,但由于某种原因,checkHasProducts函数返回1,而不管从onList返回的是什么。 onList可以从字面上返回一个随机字符串和checkHasProducts仍然会返回1.
下面是代码
function checkHasProducts($rid) {
$db = new mysqli(DB_HOST,DB_USERNAME, DB_PASSWORD, DB_NAME);
$sql = "SELECT * from products WHERE rangeid = '$rid'";
$result = $db->query($sql);
$exists = 0;
if($result === false) { return 0; } else {
while($row = $result->fetch_assoc()){
if(onList($row['sku']) == "on") {
$exists = 1;
}
}
return $exists;
}
}
function onList($sku) {
$db = new mysqli(DB_HOST,DB_USERNAME, DB_PASSWORD, DB_NAME);
$sql = "SELECT * from pricelist WHERE sku = '$sku'";
$result = $db->query($sql);
if($result === false) { return 0; } else {
while($row = $result->fetch_assoc()){
if($row['onpricelist'] == "1") {
return "on";
} else { return 0; }
}
}
}
我敢肯定这件事情简单,但我已经开始了好几个小时,现在,任何援助将不胜感激。从两者的功能
array (size=xx)
'prodid' => string '139' (length=3)
'rangeid' => string '14' (length=2)
'sku' => string 'ABC123456' (length=10)
array (size=x)
'priceid' => string '129' (length=3)
'sku' => string 'ABC123456' (length=10)
'onpricelist' => string '0' (length=1)
数据库中的onpricelist字段的类型是什么? – Okneloper
转储$ row($ row ['onpricelist']),所以至少我们可以看到一些数据。此外,必须有一个JOIN可以为您节省这个麻烦。 – Eric
@Okneloper它被设置为int – user1372212