Bu biraz pratiklik kenarında, ama daha fazla bir egzersiz olarak bu sorunu yaklaşan ediyorum "doğru yapıyor."
Ben her tablonun basit bir seçme yapmak ve bir dizi eklemek istiyorum:
$query1 = "SELECT * FROM cities";
$query2 = "SELECT * FROM prices";
$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'],
$row['name']
);
Daha sonra dinamik iki javascript listeleri oluşturmak için bu kullanabilirsiniz:
$java_array1 = "var Cities = new Array;\n";
foreach( $cities as $key=>$city ) $java_array1 .= "Cities[$key] = \"$city\";\n";
$java_array2 = "var Prices = new Array;\n";
foreach( $cities as $key=>$price ) $java_array2 .= "Prices[$key] = new Array(
\"{$price[0]}\",
\"{$price[1]}\",
\"{$price[2]}\",
);\n";
Ben bir sonraki çıktı her bir hücre için özenle hazırlanmış kimlikleri ile bir tablo olur. Ben ilk cevap çok benzer bir kod kullanmak istiyorsunuz, ama ben her hücreye "cell-<row>-<col>"
benzersiz bir kimliği verecek.
Ben yapardın son şey uygun eşleşmeleri kullanarak tablo doldurmak istiyorsunuz bazı onload
javascript kamçılamak olacaktır. Benim javascript oldukça paslı, ama böyle bir şey (NOT: yalancı aşağıda) görünecektir:
n = 1;
for( var i in cities )
{
// set city names on the diagonal
document.getElementById( 'cell-'&i&'-'&i ).innerHTML = names[i];
n = n + 1;
}
for( var j in prices )
{
// use the city IDs in the prices array (see earlier code initializing
// prices array) to place the prices
document.getElementById( 'cell-'&prices[1]&'-'&prices[2] ).innerHTML = prices[0];
}
Neredeyse kesinlikle javascript bazı berbat; Kendi risk kullanın.
Bu, yukarıda verilen basit cevabı çok daha karmaşık, ama bu o yapar öyle yaptığını düşünebilirsiniz tek yoludur "duygusu." Temel olarak, bu yöntem ile, bunu should olacak her şeyi koyun ve garip tablolar ve garip seçtiği konusunda endişelenmenize gerek yok.