php - 为什么这个简单的 PHP/MySQL 代码不能工作?

标签 php mysql

我对 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/

相关文章:

c# - 工厂模式数据库连接

php - 如何将背景颜色放在内容容器的底部?

php - 需要在JQuery中获取表行的链接属性

php - gmail登录后cookie被删除

mysql - MySQL 服务器正在使用 --super-read-only 选项运行,因此它无法执行此语句

mysql - 根据 MA​​X(value) 有选择地聚合字段

mysql - SQL 在表中划分子查询

MySQL:在不知道该列的值的情况下选择其中 1 列相同的行?

php - 如何正确从mysql底部轴上获取时间序列数据

php - 我的 mysql 查询行出了问题