尝试搜索我的数据库,以便它可以为每个食谱返回我的成分。但是,当我按下提交按钮时,什么都没有出现。
我的数据库有:
recipeName: ....
ing1: ...
ing2:...
ing3:...
etc etc
现在,当用户点击certian复选框时,它应该返回该电影,但是我的似乎不起作用。我可能会犯一个愚蠢的错误,但任何帮助都会很棒。
PHP:
$fields = array('recipe_ing1','recipe_ing2','recipe_ing3');
$query = mysql_query(SELECT * FROM recipe WHERE recipeName LIKE '%".$str."%'");
BTW我知道100%我不应该使用这些功能等并且正在使用PDO,这是一个迷你项目我正在研究并且仅供我使用我需要使用这些功能。我将使用最新的命令重新做这个版本。 我想做的例子:Example
无论如何,对此事的任何帮助都会很棒。
答案 0 :(得分:1)
当您尝试执行查询时:
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_*
的{{3}}。