0

我尝试以几种方式编写此代码,但结果总是只对一线队有利,所有其他结果都不好。当我输入其他俱乐部的 id 而不是 $id 时,我得到了那支球队的好结果,但不是只有一行,我想显示所有 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 代码块。

对您的最终输出的更好解释可能会在这里有所帮助,但我猜这是团队列表加上他们的统计数据。

由于剖析您当前的代码让我感到痛苦,因此我将描述我将如何做到这一点。

在您的数据库中,您有 2 个表,“team”和“team_stats”

团队结构:

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 回答