微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP Mysql While循环覆盖变量并只显示一个结果

我有一个PHP脚本来填充下拉菜单,其中包含从数据库获得的结果我遇到的问题是只有最后一个结果显示在下拉菜单中.我重新调试是因为获取所有结果的while循环会覆盖每次运行时存储字符串的变量.

我试图找到一个解决方案来解决它,但最终在一个没有解决方案的黑暗角落

PHP代码

$sql2 = "SELECT id, course, location FROM courses WHERE course LIKE '%Forex%' OR  course LIKE '%forex%'";
        $query2 = MysqLi_query($link, $sql2);
            $opt = '<select id="Forex" name="Forex">';
            $opt1 = '<option value="">Select Forex Workshop</option>';



                while($result2 = MysqLi_fetch_assoc($query2)){
                //I belief the $opt2 variable is overwritten every time the loop runs
                    $opt2 = '<option value="">'.$result2['course'].'</option>';
                    print_r($opt2);
                }
                $opt3 =  '</select>';
                return $opt.$opt1.$opt2.$opt3;  


}       

我可能是错的,问题可能在代码中的地方但是当我print_r($result2)所有正确的结果都在那里

解决方法:

只需添加一个.

$opt2 .= '<option value="">'.$result2['course'].'</option>';
      ^

你的变量是重新初始化的,应该连接起来.

所以,最终的代码应该是:

$opt2 = '';
while($result2 = MysqLi_fetch_assoc($query2)){
                //I belief the $opt2 variable is overwritten every time the loop runs
                    $opt2 = '<option value="">'.$result2['course'].'</option>';
                    print_r($opt2);
                }
                $opt3 =  '</select>';
                return $opt.$opt1.$opt2.$opt3;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐