当我试图获得“已售出”和“特色”的价值时,我什么也得不到。我做错了什么?
function list_products($sold = false, $featured = false) {
global $link;
$result = mysqli_query($link, "SELECT * FROM products product JOIN images image ON product.id = image.product_id WHERE product.main_image = image.id AND product.sold = $sold AND product.featured = $featured") or die(mysqli_error($link));
}
list_products(false, true);
编辑:如果我尝试回显$ sold或$ featured,则它们是空白的。应显示1或0。
答案 0 :(得分:5)
使用PHP将booleans转换为字符串以获取mysql查询不是一个好主意 - true将变为“1”,false将变为“”。使用类似($boolVar ? 1 : 0)
的内容。
答案 1 :(得分:-4)
在你的情况下,你可以在调用函数时给出参数数值(你想在查询中使用它们作为数字)。
尝试:
function list_products($sold = 0, $featured = 0) {
global $link;
$result = mysqli_query($link, "SELECT * FROM products product JOIN images image ON product.id = image.product_id WHERE product.main_image = image.id AND product.sold = $sold AND product.featured = $featured") or die(mysqli_error($link));
}
list_products(0, 1);