在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($all_objects['Team'] == $team)
从来都不是真的。为什么?我怎样才能解决我的问题?
发布于 2015-09-16 09:12:35
在每个循环之后重置结果集指针(现在忽略您使用的是不推荐的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());
}
?>
发布于 2015-09-16 09:08:08
警告不使用mysql_
使用mysqli_
或PDO
仔细阅读:已弃用
<?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>';
}
?>
https://stackoverflow.com/questions/32603938
复制相似问题