Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在将sql设置为该行的itarate_Php_Mysql_Loops_Echo - Fatal编程技术网

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)处于相同的水平吗?我想你应该改变你的逻辑。你们应该只有一次迭代,我认为若你们有一个查询结果,那个么就有匹配项。如果存在匹配项,则输出该迭代中的匹配项。如果没有,则抛出“无结果”消息。另外,查询中不应该有变量,应该使用准备好的语句。谢谢你的帮助,我用另一种方式用图片解决了这个问题