复选框不会从数据库

时间:2016-03-15 23:40:29

标签: php html mysql mysqli

尝试搜索我的数据库,以便它可以为每个食谱返回我的成分。但是,当我按下提交按钮时,什么都没有出现。

我的数据库有:

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

无论如何,对此事的任何帮助都会很棒。

1 个答案:

答案 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}}。