php - 复选框不从数据库返回信息

标签 php html mysql mysqli

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

我的数据库有:

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/

相关文章:

php - 向类(class) Moodle 添加自定义字段

mysql - 嵌套多个 select 语句的性能影响

mysql - DATE_FORMAT 没有在 mysql 中选择我的格式

html - IMG 上的奇怪边框(对我来说!)

php - 更新数据库中表行的快捷方式?

php - zend framework 2 认证服务

php - PHP中如何按行数获取指定列

php - 如何从数据库导出值并回显所有由 <hr/> 分隔的值(第一个和最后一个结果除外)?

javascript - Jquery:具有相同父类和子类的子 div 的不同宽度,基于子 div 的数量

javascript - 如何在不刷新页面的情况下更新 session 存储数据?