php - 使用数组的数组填充表单选项列表

标签 php mysql arrays

我已经研究了几个小时了,但似乎无法得到我想要的东西。这是我正在做的事情的一个例子:

$query1=mysql_query("Select * From table1 Where name='blah'");
while($queryvalue1=mysql_fetch_array($query1)) {
    $array1 = $queryvalue1['Column1']
    $Options="";
    $query2=mysql_query("Select * From table2 Where id In ($array1)");
    while($queryvalue2=mysql_fetch_array($query2)) {
        $var1 = $queryvalue2['Column2'];
        $var2 = $queryvalue2['Column3'];
        $Options.="<OPTION VALUE=\"$var1\">".$var2;
    }
}

如果我在循环中 echo $var1 和 $var2 ,我会得到所有适当的值,但是当我将它们包装在 html 标记和 echo 选项中时,它只会给我第一个值。如果 $Options 代码发生在第一个数组循环中,我可以很好地使用它,只是当我在数组的数组的循环中使用它时。

我已经束手无策了。有谁知道为什么会出现这个问题?有谁知道解决方法吗?任何帮助将不胜感激!

最佳答案

除了第 3 行缺少分号之外,问题还在于您正在清除外循环内的 $Options 字符串。

尝试这样的事情

$options = array();
$query1=mysql_query("Select * From table1 Where name='blah'");
while($queryvalue1=mysql_fetch_array($query1)) {
    $array1 = $queryvalue1['Column1'];
    $query2=mysql_query("Select * From table2 Where id In ($array1)");
    while($queryvalue2=mysql_fetch_array($query2)) {
        $var1 = $queryvalue2['Column2'];
        $var2 = $queryvalue2['Column3'];
        $options[] = sprintf('<option value="%s">%s</option>',
                             htmlspecialchars($var1),
                             htmlspecialchars($var2));
    }
}
$options = implode(PHP_EOL, $options);

关于php - 使用数组的数组填充表单选项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5334264/

相关文章:

python - 从 numpy 数组中选择相邻元素

php - 获取存储在隐藏输入元素中的 JSON 数据?

php - PDO PHP bindParam() 重复使用相同的参数

php - Wordpress - 检索 'post_type' 的所有帖子,然后按分类法过滤

mysql - 我如何在 mysql docker 服务上创建数据库

mysql - 过滤重复项后选择具有唯一值的行

mysql - 从每个 user_id 获取最旧的时间戳

java - 二维数组中的联合查找 (Java)

php - 为什么每个人都使用 latin1?

c++ - 将字符串转换为 char 指针可以指向的 char 数组/值的最有效方法是什么