尝试搜索我的数据库,以便它可以返回每个食谱的成分。但是,当我按下提交按钮时,什么也没有出现。
我的数据库有:
recipeName: ....
ing1: ...
ing2:...
ing3:...
etc etc
现在,当用户单击某些复选框时,它应该返回该电影,但是我的似乎不起作用。我可能又犯了一个愚蠢的错误,但任何帮助都会很棒。
PHP:
$fields = array('recipe_ing1','recipe_ing2','recipe_ing3');
$query = mysql_query(SELECT * FROM recipe WHERE recipeName LIKE '%".$str."%'");
顺便说一句,我知道 100% 我不应该使用这些函数等并使用 PDO,这是我正在开发的一个迷你项目,仅出于我的使用,我需要使用这些函数。我将使用最新的命令重新做另一个版本。 我想做的示例:Example
无论如何,对此事的任何帮助都会很棒。
最佳答案
当您尝试执行查询时:
SELECT * FROM recipe WHERE recipeName LIKE '%".$str."%'"
其中 $str
是(例如选择 Kale
时):
recipe_ing1 LIKE '%Kale%' OR recipe_ing2 LIKE '%Kale%' OR recipe_ing3 LIKE '%Kale%'
那么你的完整查询将如下所示
SELECT * FROM recipe WHERE recipeName LIKE recipe_ing1 LIKE '%Kale%' OR recipe_ing2 LIKE '%Kale%' OR recipe_ing3 LIKE '%Kale%'
这是错误的。
您应该将查询更改为:
$query = mysql_query("SELECT * FROM recipe WHERE ".$str) or die("Could not search.");
在为 $str
变量赋值时,您还应该正确连接:
$str[] = $ign." LIKE '%".mysql_real_escape_string($ingridient)."%'";
并且只是想提醒您 mysql_*
已经是 deprecated并且至少使用 mysqli_*
的 prepared statement .
关于php - 复选框不从数据库返回信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36024305/