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 ответа:
Сброс указателя результирующего набора после каждого цикла (а пока игнорируем, что вы используете устаревшие функции 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>'; } ?>