PHP Mysql While循环覆盖变量并仅显示一个结果
我有一个PHP脚本,用从数据库获得的结果填充下拉菜单。我遇到的问题是,下拉菜单中只显示最后一个结果。我认为这是因为每次运行时,获取所有结果的while循环都会覆盖存储字符串的变量 我曾试图找到一个解决办法来解决它,但最终陷入了一个没有解决办法的黑暗角落 Php代码:PHP Mysql While循环覆盖变量并仅显示一个结果,php,mysql,Php,Mysql,我有一个PHP脚本,用从数据库获得的结果填充下拉菜单。我遇到的问题是,下拉菜单中只显示最后一个结果。我认为这是因为每次运行时,获取所有结果的while循环都会覆盖存储字符串的变量 我曾试图找到一个解决办法来解决它,但最终陷入了一个没有解决办法的黑暗角落 Php代码: $sql2 = "SELECT id, course, location FROM courses WHERE course LIKE '%Forex%' OR course LIKE '%forex%'"; $q
$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;
}
$sql2=“从课程中选择id、课程、位置,如课程“%Forex%”或课程“%Forex%”;
$query2=mysqli\u查询($link,$sql2);
$opt='';
$opt1=‘选择外汇研讨会’;
而($result2=mysqli\u fetch\u assoc($query2)){
//我相信$opt2变量在每次循环运行时都会被覆盖
$opt2='.$result2['course'].';
打印(opt2);
}
$opt3='';
返回$opt.$opt1.$opt2.$opt3;
}
我可能错了,问题可能在代码中的其他位置,但当我打印($result2)时,所有正确的结果都在那里是的,您需要附加每个值:
$opt2 .= '<option value="">'.$result2['course'].'</option>';
$opt2.=''.$result2['course'].';
在开始循环之前,还应该初始化$opt2
$opt1 = '<option value="">Select Forex Workshop</option>';
$opt2 = "";
$opt1='选择外汇研讨会';
$opt2=“”;
只需添加一个
$opt2 .= '<option value="">'.$result2['course'].'</option>';
^
$opt2.=''.$result2['course'].';
^
您的变量正在重新初始化,应该将其连接起来
因此,最终代码应该是:
$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;
$opt2='';
而($result2=mysqli\u fetch\u assoc($query2)){
//我相信$opt2变量在每次循环运行时都会被覆盖
$opt2='.$result2['course'].';
打印(opt2);
}
$opt3='';
返回$opt.$opt1.$opt2.$opt3;
您需要将每个值与循环中的现有变量连接起来
**$opt2 .= '<option value="">'.$result2['course'].'</option>';**
**$opt2.='.$result2['course'].'**
$opt2='lool simple That That That That That great我现在可以看到所有结果,但仍然收到一条通知警告“通知:未定义变量:C:\xampp\htdocs\opes\course.php第21行中的opt2”@Tomazi,如果这对您有效,请将我的答案标记为解决方案。现在错误消失了,我通过初始化$opt2变量$opt2='';试图接受你的答案,但我不能尽快我会,因为你是第一个。有时候很可怕,一个简单的解决办法是:)事实上他不是第一个,我在他之前24秒发了帖子好的,我真的很抱歉仍然给了你一票:)并鼓励其他人也这样做,因为这两个答案都是正确的。谢谢你的帮助。别担心,没关系。:)