0

mysql から複数のテーブルを作成し、ID で並べ替えようとしています。これを行う方法がわからず、ここで多くを見つけることができません。

現時点では、mysql からテーブルを 1 つだけ作成していますが、mysql テーブルに新しい列を追加しました。これは、各テーブルの特定の ID になります。ただし、これをループする方法はわかりません。

予測テーブルには、「accid」という列があります。この列で、同じ 'accid' を持つ一連の結果をグループ化し、html テーブルに挿入したいと考えています。どうすればいいですか?

現時点で私が持っているものは次のとおりです。

    $result = mysql_query("SELECT results.home_team, results.away_team, results.home_id,    
       results.away_id, results.ht_score, results.ft_score, predictions.draw,    
       predictions.winningid 
          FROM results 
              LEFT JOIN predictions ON results.match_id = predictions.matchid 
          WHERE userid='".$_SESSION['id']."' ORDER BY home_team");

    $num_rows = mysql_num_rows($result);   

    if($num_rows) {
    $wonBet = true;  #ADDED
    $notlong = false;
    while ($row = mysql_fetch_assoc($result)) {
        echo "<tr>";
        if(!$row["ht_score"]) {
            $halftime = "-";
        } else {
            $halftime = $row["ht_score"];
        }
        if(!$row["ft_score"]) {
            $fulltime = "-";
        } else {
            $fulltime = $row["ft_score"];
        }

        echo "<td>" . $row["home_team"] . "</td>" . "<td>" . " vs " . "</td>" . "<td>" . $row["away_team"] . "</td>" . "<td>" . $halftime . "</td>" . "<td>" . $fulltime . "</td>";



        $value = $fulltime;
        $apart = explode('-',$value); 
        if($apart[0] > $apart[1] && $row["home_id"]==$row["winningid"]) {
            $hometeamwin = "Win";

        } else if($apart[0] < $apart[1] && $row["away_id"]==$row["winningid"]) {
            $hometeamwin = "Win"; 

        } else if($apart[0] == $apart[1] && !$row["winningid"]) {
            $hometeamwin = "Win"; 

        } else { 
            $hometeamwin = "lose";
               #ADDED 

        }



        if($fulltime!=$row["ft_score"]) {
             $hometeamwin = ""; 
             }

             if($hometeamwin == "lose"){   #ADDED
            $wonBet = false;         #ADDED
        } 

             if($hometeamwin == ""){   #ADDED
            $notlong = true;         #ADDED
        }       


        echo "<td>" . $hometeamwin . "</td>";
        echo "</tr>";
    }

    echo '</table>';
4

2 に答える 2

0

同じクエリ結果を複数回使用するには、それらを配列にフェッチします。その後、同じ結果を何度でもループできます。

ああ - そして PDO / MySQLi に切り替えます。..準備済みステートメントを使用します..

于 2012-12-31T16:23:06.037 に答える
0
$data = array();

$result = mysql_query("SELECT results.home_team, results.away_team, results.home_id,    
   results.away_id, results.ht_score, results.ft_score, predictions.draw,    
   predictions.winningid 
      FROM results 
          LEFT JOIN predictions ON results.match_id = predictions.matchid 
      WHERE userid='".$_SESSION['id']."' ORDER BY home_team");
while($dbrow = mysql_fetch_assoc($result)) {
   $data[] = $dbrow;
}

foreach($data as $row) {
   //Table

}

foreach($data as $row) {
   //Table 2

}

偶発的な分割に関するいくつかのアイデア

while($dbrow = mysql_fetch_assoc($result)) {
     $accid = $dbrow['accid'];
     $data[$accid][] = $dbrow;
}
foreach($data as $accid -> rows) {
  //Table Header
  foreach($rows as $row) {
   //Table Row        
  }
  //Table Footer
}
于 2012-12-31T16:23:35.630 に答える