php - 将值从 MySql 传递到 PHP。如何避免 NULL 值
问题描述
我想通过使用 MySql 值在 PHP 中动态填充网站菜单。
MySql 表由两个字段组成:
第一个称为“类别”,另一个称为“父”。
但我还需要指定一些“子类别”,例如:
类别:男士、女士、男孩、女孩
子类别:衬衫、裤子、鞋子、配饰
所以我想通过在表中实现一个“父”字段来解决这个问题,这样:
如果 parent=0 则表示它是一个主要类别(MEN、WOMEN、BOYS、GIRLS)
如果 parent=1,则表示它是一个子类别,因此它是 MEN'S SHIRT
如果 parent=1,则表示它是一个子类别,因此它是 MEN'S PANTS
如果 parent=1,则表示它是一个子类别,因此它是 MEN'S SHOES
如果 parent =1,表示它是一个子类别,因此它是 MEN'S SHIRT
如果 parent=2,则表示它是一个子类别,因此它是 WOMEN'S SHIRT
如果 parent=2,则表示它是一个子类别,因此它是 WOMEN'S PANTS
如果 parent=2,则表示它是一个子类别,因此它是 WOMEN'S SHOES
如果父级=2,表示它是一个子类别,因此它是 WOMEN'S SHIRT
...ETC...
(也许有更有效的方法,但这就是我的想法)
现在,如果我这样设置我的 PHP 代码:
$parent_arr_id = $parent_arr['id'];
$sql = "SELECT * FROM categories WHERE parent ='parent_arr_id'";
$query_child = $db->query($sql);
while($child = mysqli_fetch_assoc($query_child)) :
echo $child['category'];
endwhile;
在我的 MySql DB 中有 parent=1,我应该得到什么?
正确的输出应该是:
Shirts, Pants, Shoes, Accessories。
我反而得到:
男人,女人,男孩,女孩
我三次检查了表中的默认值,一切都正确,我可以保证 100%。
我直接在 MySql 中手动进行查询,它可以工作。
所以我仔细检查了第一行,像这样回显它的变量:
$parent_arr_id = $parent_arr['id'];
var_dump($parent_arr_id);
但我得到一个NULL值!
我想这就是为什么我会购买
男士、女士、男孩、女孩的
衬衫、裤子、鞋子、配饰。
也许它们是默认值(?)。
网上查了一下好像是这样的,因为它是一个关联对象数组,应该转换成字符串数组。我试过了:
var_dump ($child['category']);
但没有什么变化:NULL
谁能帮帮我吗?
我不知道如何解决这样的困境!:)
非常感谢您提前!
解决方案
问题解决了。只是因为我没有将 $ 符号放在变量名 ($parent_arr_id) 之前。它应该是:
$sql = "SELECT * FROM categories WHERE parent =$parent_arr_id";
推荐阅读
- ruby-on-rails - Rails:FactoryBot 不知道模型
- java - Spring Boot:非实体 bean 验证不起作用
- html - 如何实现铬 openSearch?
- android - 你能解释一下这个 dart json 解析代码吗?
- linux - 在 PeppermintOS 10 上构建氧化还原操作系统时出错
- python-3.x - Tkinter 按钮创建条目
- batch-file - 如果使用不存在命令,批处理脚本中的语法错误
- mysql - 检查用户名列中是否存在 UserA 和 UserB
- python - MySQL Aurora 数据库返回 True 值以响应具有空值的字段
- firebase - 如何将存储在一个变量中的数据添加到 Nuxt 中数据返回内的另一个数据字段?