Foreach循环无法正常工作(PHP)

Foreach循环无法正常工作(PHP),php,mysql,loops,foreach,Php,Mysql,Loops,Foreach,这是我的密码 $query = mysql_query("SELECT * FROM accommodation_vacancies WHERE accommodation_id = '$accom'"); $results = mysql_fetch_array($query); if($query === FALSE) { die(mysql_error()); } else { print_r($results); foreach ($results as $re

这是我的密码

$query = mysql_query("SELECT * FROM accommodation_vacancies WHERE accommodation_id = '$accom'");
$results = mysql_fetch_array($query);
if($query === FALSE) {
    die(mysql_error()); 
} else {
    print_r($results);
    foreach ($results as $result) {
        echo $result['start_date']; echo "<br/>";
    }           
}
$query=mysql\u query(“选择*来自住宿\u空缺,其中住宿\u id=”$accom');
$results=mysql\u fetch\u数组($query);
如果($query==FALSE){
die(mysql_error());
}否则{
打印(结果);
foreach($results作为$result){
echo$result['start_date'];echo“
”; } }
这是我的输出

通过使用
print\r
commant,我可以看到变量
$results
工作正常,查询也工作正常,我想我在foreach循环中有错误。
谢谢。

您只获取一个结果。改用while循环

while ($result = mysql_fetch_array($query)) {

旁注:如评论中所述,
mysql.*
函数已被弃用。您不应该学习如何使用这些不推荐使用的方法来使用mysql。它们将在将来的某个版本中从PHP中删除,然后您的代码将停止工作。如果您学会了,请使用
mysqli.*
或PDO。

请不要再维护它们,它们将被删除。相反,学习,并使用or。是的,但在另一种情况下,结果可能会大于1。不管有多少结果。按你的方式,你只能得到一个。其余的都被丢弃了。获取所有结果的常用方法是while循环。如果此答案对您有所帮助,请将其标记为左侧的有效答案,直接在“投票否决”按钮下方:)