If-оператор в цикле while с mysql никогда не является истинным PHP


У меня возникли проблемы с оператором if в цикле while I PHP. У меня есть массив с командами под названием $all_teams. Предположим, что он содержит команду синий, команду Красный и команду желтый. У меня также есть база данных, где объекты назначаются командам.

DatabaseID | State |  Team | ... 
12           Ready    Blue
33           Finished Red
65           Ready    Blue

Теперь я пытаюсь запустить следующий код:

 <?php
$query = "SELECT DISTINCT * FROM `dmt_objects` WHERE PipelineAndWorkflow = 'RWP WF  Ready for 4Sprint' ORDER BY `Team` DESC  ;";
                        $select_projects = mysql_query($query);
    foreach($all_teams as $team){
        echo '<tr id = '.$team.'><td>'.$team.'</td><td>';
            while($all_objects = mysql_fetch_array($select_projects)){
                if($all_objects['Team'] == $team){
                    echo ''.$all_objects['DatabaseID'].'</br>';
                }
            }
        echo '</td></tr>';

    }
    ?>

Я пытаюсь создать таблицу, которая должна выглядеть следующим образом.

Blue   | 12
         65
Red    | 33
Yellow |

Утверждение if

if($all_objects['Team'] == $team)

Никогда не бывает истинным... Почему? Как я могу решить свою проблему?

2 2

2 ответа:

Сброс указателя результирующего набора после каждого цикла (а пока игнорируем, что вы используете устаревшие функции mysql_*): -

<?php
$query = "SELECT DISTINCT * 
            FROM `dmt_objects` 
            WHERE PipelineAndWorkflow = 'RWP WF  Ready for 4Sprint' 
            AND Team IN ('".implode("','", $all_teams)."')
            ORDER BY `Team` DESC  ;";
if ($select_projects = mysql_query($query))
{
    foreach($all_teams as $team)
    {
        echo "<tr id = '$team'><td>$team</td><td>";
        while($all_objects = mysql_fetch_assoc($select_projects))
        {
            if($all_objects['Team'] == $team)
            {
                echo ''.$all_objects['DatabaseID'].'</br>';
            }
        }
        echo '</td></tr>';
        mysql_data_seek($select_projects, 0);
    }
}
else
{
    die(mysql_error());
}
?>

Предупреждение Не используйте mysql_ используйте mysqli_ или PDO вместо
Прочитайте это внимательно: mysql_ deprecated

<?php
$query           = "SELECT DISTINCT * FROM `dmt_objects` WHERE PipelineAndWorkflow = 'RWP WF  Ready for 4Sprint' ORDER BY `Team` DESC  ;";
$select_projects = mysql_query($query);
$all_objects     = mysql_fetch_array($select_projects)

foreach($all_teams as $team){
    echo '<tr id = '.$team.'><td>'.$team.'</td><td>';
        foreach($all_objects as $obj)
            if($obj['Team'] == $team){
                echo ''.$obj['DatabaseID'].'</br>';
            }
        }
    echo '</td></tr>';

}
?>