2016-08-23 4 views
-4

私はphpには新しく、mysqlデータをhtmlテーブルに取り込む最良の方法については不思議です。現在、私は、私が電話でだからうまくフォーマットされたコードを提供しますが、のは、ケースはこのようなものだったとしましょうことができません:私はこのような構造でMySQLのテーブルを持っていた マルチプライマリMysqlテーブルをhtmlテーブル(PHP)に取り込む最良の方法

Row -> PK 

Column -> PK 

Value 

私の周りに10列だったとWebページに表示する必要があるdinamic行。

私の考えは、小さなクエリをループしてエコーしたり、大きな配列に格納して高速にスキャンすることです。

最初のアイデア:

For ($y = 0; $y < $rowCount; $y++){ 
Echo "<tr>"; 
    For ($x = 0; $x < 10; x++){ 
     $row = Mysqli_query($db,"SELECT Value FROM table WHERE Row='".$y."' AND Column='".$x."'"); 
     $row = mysqli_fetch_assoc($row); 
     Echo "<td>".$row['Value']."<td>"; 
    } 
    Echo "</tr>"; 
} 

第二のアイデア:

$data = Mysqli_query($db,"SELECT * from Table"); 
For ($y = 0; $y < $rowCount; $y++){ 
    Echo "<tr>"; 
    For ($x = 0; $x < 10; $x++){ 
     While($key = mysqli_fetch_assoc($data)){ 
      If($key['Row']==$x && $key['Column']==$y) 
      Echo "<td>".$row['Value']."<td>"; 
     } 
    } 
Echo "</tr>"; 
} 

申し訳ありませんが、私は私の構文チートシートなしでそれを入力してるので、私は間違った構文を持っていたし、私のポイントは、技術を教えていない場合デバッグを要求します。

最初のアイデアは、mysqliクエリ 'WHERE'を使用してプライマリ(行と列)の両方を検索します。次に、クエリをループでスパムします。

第2のアイデアは、すべてのテーブル結果を変数($ data)に格納してから、変数をWhileループでスキャンし続けることです。

行の数はダイナミックであり、最大500個のデータを追加できることに注意してください。これは、すべてをストアする代わりにクエリをスパムすることを変数($ data)に含める理由もあります。しかし、プログラムが接続を維持しなければならないので、スパムのクエリが最良のアイデアではないかも疑問です。

誰かが第3のアイデアを考え出すことを願っています。

実際のケースでは、私のテーブルはこれより複雑で、約5つの主キーで構成されています。しかし、そのコンセプトは上記の例とほぼ同じです。

+0

"約5つの主キーで構成されています" - 説明してください。 –

+0

5キー:ユーザー名、期間、列、行、サブロー。このケースでは、Clumn、Row、およびSubRowに焦点を当てるだけです。 – user6748005

+0

ケースにsubRowを追加することは、td rowspanの周りにあるため、説明するのが非常に苦労します。私はフロントエンドではなく、データを取得することに焦点を当てたかったので、私はそれを2つのプリムマリーキーだけにしました。 – user6748005

答えて

0

ループ外では、ORDER BYSELECTを実行します。ループで行をフェッチします。既に指定された順序でそれらをフェッチするので、そのような乱雑さは必要ありません。if

+0

ありがとうございます。私が必要とするのは、列が順序付けられ、次に列が列の次に順序付けされる必要があります。それは、列1の行1、列1の行2、列1の行3、列2の行1のようなものでした。または両方のプライマリを注文する良いクエリはありますか? – user6748005

+0

私は "列"と "行"が混乱していると思います。 'SELECT col1、col2、col3 FROM tbl ORDER BY col1、col2 col3;' –

+0

わかりました。私はこれらの複数の順序を構文で試してみます。ありがとう、本当に大きな助けになりました。 – user6748005

関連する問題