0

これが (私にとって) 複雑な理由は、テーブルの各列が別々の MySQL テーブルからロードされ、各 MySQL テーブルのレコード数が異なるためです。最初は、左上から右下の列ごと、セルごとに html テーブルの生成を開始できると思っていましたが、各 MySQL テーブルのレコードの長さが異なり、不正な形式の html テーブルが生成されるため、これは機能しません。何か提案はありますか?

これまでの私の考え:

  • 列の数を決定する、MySQL のすべてのテーブルのリストを取得します
  • ほとんどのレコードを持つテーブルからカウントを取得します
  • パラメータを使用してテーブルを作成します(列としてのテーブルの数、行としての最大数
  • 各セルを対応するレコードで更新しますが、方法がよくわかりません

要求に応じて、いくつかのコード:

$tables = mysql_query("show tables");

$output = "<table border=1><thead><tr>";

while($table = mysql_fetch_array($tables)) {

$output .= "<td>";
$output .= $table[0];
$output .= "</td>";
$tableNames[] = $table[0];

}

$output .= "</tr></thead>";
$output .= "<tbody>";

//Get a count of the table with the most records
for($i=0; $i<count($tableNames); $i++ ){

    $currentTable = $tableNames[$i];

    $tableContent = mysql_query("select * from $currentTable") or die("Error: ".mysql_error());

    //Generating all content for a column
    $output .= "<tr>";

    while($content = mysql_fetch_array($tableContent)){

        //generating a cell in the column
        $output .= "<td>";
        $output .= "<strong>".$content['subtheme'].": </strong>";
        $output .= $content['content'];
        $output .= "</td>";

    }

    $output .= "</tr>";

}

$output .= "</tbody>";
$output .= "</table>";

これは、不正な形式のテーブルを生成するだけでなく、列を行に転置したため、間違っています...

どんな助けでもいただければ幸いです

4

1 に答える 1