我对 php/mysql 非常陌生,这让我感到毛骨悚然,我正在尝试构建一个多级站点导航。在我的脚本的这一部分中,我准备将来自表单的子类别和父类别插入到数据库中:
// get child categories
$catFields = $_POST['categories'];
if (is_array($catFields)) {
$categories = $categories;
for ($i=0; $i<count($catFields); $i++) {
$categories = $categories . $catFields[$i];
}
}
// get parent category
$select = mysql_query ("SELECT parent FROM categories WHERE id = $categories");
while ($return = mysql_fetch_assoc($select)) {
$parentId = $return['parent'];
}
我的脚本的第一部分工作正常,它通过选中表单中的复选框来获取用户选择分配帖子的所有类别,并准备将其插入数据库。
但是第二部分不起作用,我不明白为什么。我试图将一个类别与存储在其自己的表中的父级相匹配,但即使所有类别都有父级,它也不会返回任何内容。谁能告诉我这是为什么?
附: $categories
变量包含子类别 ID。
最佳答案
我可以看到一些错误:
$categories = $categories;
应该是
$categories = '';
由于 categories
的数量会更多,因此您必须使用 MySQL in
子句:
SELECT parent FROM categories WHERE id in ($categories)
要实现这一点,您必须通过将 for 循环更改为:
for ($i=0; $i<count($catFields); $i++)
$categories .= "$catFields[$i],"; // append 'id,' to existing list.
trim($categories,','); // remove any trailing commas.
关于php - 为什么这个简单的 PHP/MySQL 代码不能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531725/