これはやや実用性の限界に達していますが、私はこの問題を「正しく行う」ための演習として取り組んでいます。
各テーブルの単純な選択を行い、配列に挿入します。
$query1 = "SELECT * FROM 都市";
$query2 = "SELECT * FROM 価格";
$results1 = mysql_query( $query1 );
$results2 = mysql_query( $query2 );
while( $rows = mysql_fetch_array( $results1 ) ) $cities[] = $row['name'];
while( $rows = mysql_fetch_array( $results2 ) ) $prices[] = array(
$row['city1_id'],
$row['city2_id'],
$行['名前']
);
次に、これを使用して 2 つの JavaScript リストを動的に作成します。
$java_array1 = "var Cities = 新しい配列;\n";
foreach( $cities as $key=>$city ) $java_array1 .= "Cities[$key] = \"$city\";\n";
$java_array2 = "var Price = 新しい配列;\n";
foreach( $cities as $key=>$price ) $java_array2 .= "Prices[$key] = new Array(
\"{$price[0]}\",
\"{$price[1]}\",
\"{$price[2]}\",
);\n";
次に、慎重に作成された各セルの ID を含むテーブルを出力します。最初の回答と非常によく似たコードを使用しますが、各セルに一意の id を付け"cell-<row>-<col>"
ます。
私が最後に行うことはonload
、適切なペアリングを使用してテーブルにデータを入力する JavaScript を作成することです。私の JavaScript はかなりさびていますが、次のようになります (注: 疑似コードが続きます)。
n = 1;
for( 都市の変数 i )
{
// 対角線上に都市名を設定
document.getElementById( 'cell-'&i&'-'&i ).innerHTML = names[i];
n = n + 1;
}
for( 変数 j in 価格 )
{
// 価格配列で都市 ID を使用します (初期化する前のコードを参照してください)
// 価格配列) 価格を配置する
document.getElementById( 'cell-'&prices[1]&'-'&prices[2] ).innerHTML = 価格[0];
}
私はほぼ間違いなく、その JavaScript の一部を台無しにしました。自己責任。
これは、上記の単純な答えよりもはるかに複雑ですが、これが「意味のある」ようにする唯一の方法だと思います。基本的に、この方法では、あるべき場所にすべてを配置し、奇妙なテーブルや奇妙な選択について心配する必要はありません。