0

私はいくつかの方法でこのコードを書き込もうとしていますが、常に結果は最初のチームだけが良いものであり、他のすべての結果は悪いものです。$id の代わりに他のクラブの id を入れると、そのチームで良い結果が得られますが、1 行だけではなく、20 チームすべてを表示したいと考えています。

<table>
<thead><tr><th>Name</th><th>Played</th><th>0,5</th><th>1,5</th><th>2,5</th>
<th>3,5</th><th>4,5</th></tr></thead>
<tbody>
<?php 
$teams = mysql_query("select * from teams");
$num_teams = mysql_num_rows($teams);

while ($group = mysql_fetch_row($teams)) {
   $id_team[] = $group; 
 }

for ($a = 0; $a < $num_teams; $a++) {

if (isset($num_array)) {
mysql_data_seek($query_array, 0 );
$search_array_over = array();
}

$id = $id_team[$a][0];
$name_over = $id_team[$a][1];

 $query_array = mysql_query("select * from full_stat where kl1 = $id or kl2 = $id");
 $num_array = mysql_num_rows($query_array);

 while ($row = mysql_fetch_row($query_array)) {
$data_over[] = $row;    
 }


 $search_array_over = array('1' => '0', '2' => '0' ,'3' => '0', '4' => '0','5' => '0','6' => '0');
 for ($now = 0;$now < $num_array; $now++) {
    $over_pass = ($data_over[$now][3] + $data_over[$now][4]);

    for ($pass = 1; $pass < 7; $pass++) {
        if ($over_pass >= $pass)     {
            $final_pass = $pass;
        }
        else {
            $final_pass = '6';
        }

if (array_key_exists($final_pass, $search_array_over)) {
    $search_array_over[$final_pass] += 1;
        }
else {
    $search_array_over[$final_pass] = 1;

 }
 }
 }


 echo '<tr><td>'.$name_over.'</td><td>'.$num_array.'</td>     <td>'.$search_array_over[1].'</td><td>'.$search_array_over[2].'</td><td>'.$search_array_over[3].'</td><td>'.$search_array_over[4].'</td><td>'.$search_array_over[5].'</td></tr>';
 }
 ?>
 </tbody>
 </table>
4

1 に答える 1

0

これは、PHP コードの紛らわしいブロックの 1 つです。

最終的な出力のより良い説明がおそらくここで役立つでしょうが、それはチームリストとその統計であると推測します.

現在のコードを分析するのは苦痛だと思うので、代わりにこれを行う方法を説明します。

データベースには、「team」と「team_stats」の 2 つのテーブルがあります。

チーム構造:

id int
name varchar
....

統計構造:

team_id int
someStat int
otherStat int
....

$stmt = $mysqli -> prepare("SELECT * FROM team LEFT JOIN team_stats ON team_stats.team_id");
$stmt -> execute();
$result = $stmt -> fetch_all();
foreach($result as $team) {
     // output data to page
}

?>

于 2012-07-14T14:00:51.493 に答える