Php 正在将sql设置为该行的itarate
我一直在努力使这条线路按我的要求工作Php 正在将sql设置为该行的itarate,php,mysql,loops,echo,Php,Mysql,Loops,Echo,我一直在努力使这条线路按我的要求工作 echo '<tr><td><div class="'.$row['type'].'">'.$tank_name. ' </div><div class="right">' . array_sum($arr).'</div></td>'; echo''.$tank\u name ' . 数组_和($arr)。“”; 除了尝试使用$row['type']之外,脚本
echo '<tr><td><div class="'.$row['type'].'">'.$tank_name. '
</div><div class="right">' . array_sum($arr).'</div></td>';
echo''.$tank\u name
' . 数组_和($arr)。“”;
除了尝试使用$row['type']之外,脚本的其余部分也可以工作,在下面的代码中,它只是echo的最后一行值,而不是每一行,我无法找出我的错误所在
谢谢你的帮助
<?php
$sql = "SELECT tank_list.name_i18n,
tank_list.tank_id,
tank_list.name,
tank_list.type,
tank_list.nation,
tank_list.short_name_i18n,
player_list.account_id,
player_list.nickname,
player_list.clan,
garage_list.tank_id IS NOT NULL AS combination_exists
FROM player_list
CROSS JOIN tank_list
LEFT JOIN garage_list
ON player_list.account_id = garage_list.account_id
AND tank_list.tank_id = garage_list.tank_id
WHERE tank_list.level = '$tier'
AND player_list.clan = '$clanname'
ORDER BY FIELD(tank_list.type, 'lighttank', 'mediumTank', 'heavyTank',
'AT-SPG', 'SPG'), name ASC,
tank_list.name ASC,
tank_list.nation ASC,
player_list.nickname ASC ";
$result = $conn->query($sql);
$rows = $result->fetch_all(MYSQLI_ASSOC);
$data = array();
foreach ($rows as $row)
{
$data[$row['short_name_i18n']][$row['nickname']] =
($row['combination_exists'] == 1);
}
if(empty($data)){
echo "Please select again, no players found matching your search";
} else {
$firstTank = reset($data);
$players = array_keys($firstTank);
$array = array_keys($firstTank);
$count = count($array);
echo '<tr><th width="170" ></th>';
for ($i = 0; $i < $count; $i++) {
echo '<th><img src="./img/name/vrt'
.$array[$i].'.png" title="'.$array[$i].'"></th>';
//echo "<td>".$array[$i] . "\n</td>";
}
echo '</tr></thead></div><tbody>';
foreach($data as $tank_name=>$arr){
echo '<tr><td><div class="'.$row['type'].'">'.$tank_name. '</div><div class="right">' . array_sum($arr).'</div></td>'; // tank name as row label
foreach($arr as $nickname=>$element){
// output the data for each cell
if ($element == 1){
echo '<td><img src="./img/' . $element . '.png" height="20" width="20" title="'.$nickname . '"></td>';
}else{
echo "<td></td>";
}
}
echo '</tr>';
// may use this later
//echo '<td><div class="right">'. array_sum($arr) .'</div></td></tr>';
}
}
?>
$row
是最后一行。简单的例子。啊,我明白了,谢谢,但是有可能得到另一个值(如果可以的话,真的是2)处于相同的水平吗?我想你应该改变你的逻辑。你们应该只有一次迭代,我认为若你们有一个查询结果,那个么就有匹配项。如果存在匹配项,则输出该迭代中的匹配项。如果没有,则抛出“无结果”消息。另外,查询中不应该有变量,应该使用准备好的语句。谢谢你的帮助,我用另一种方式用图片解决了这个问题