这在某种程度上处于实用性的边缘,但我更多地将这个问题视为“正确行事”的练习。
我会对每个表做一个简单的选择并插入到一个数组中:
$query1 = "SELECT * FROM 城市";
$query2 = "SELECT * FROM 价格";
$results1 = mysql_query($query1);
$results2 = mysql_query($query2);
而( $rows = mysql_fetch_array( $results1 ) ) $cities[] = $row['name'];
而( $rows = mysql_fetch_array( $results2 ) ) $prices[] = array(
$row['city1_id'],
$row['city2_id'],
$行['名称']
);
然后我将使用它来动态创建两个 javascript 列表:
$java_array1 = "var Cities = 新数组;\n";
foreach( $cities as $key=>$city ) $java_array1 .= "Cities[$key] = \"$city\";\n";
$java_array2 = "var 价格 = 新数组;\n";
foreach( $cities as $key=>$price ) $java_array2 .= "价格[$key] = new Array(
\"{$price[0]}\",
\"{$price[1]}\",
\"{$price[2]}\",
);\n";
接下来,我会为每个单元格输出一个带有精心制作的 id 的表格。我会使用与第一个答案中的代码非常相似的代码,但我会给每个单元格一个唯一的"cell-<row>-<col>"
.
我要做的最后一件事是编写一些onload
javascript,这些 javascript 将使用适当的配对填充表格。我的 javascript 很生锈,但它看起来像这样(注意:伪代码如下):
n = 1;
for( var i 在城市中)
{
// 在对角线上设置城市名称
document.getElementById('cell-'&i&'-'&i).innerHTML = names[i];
n = n + 1;
}
for( var j in 价格 )
{
// 使用价格数组中的城市 ID(参见前面的代码初始化
// 价格数组)放置价格
document.getElementById('cell-'&prices[1]&'-'&prices[2]).innerHTML = prices[0];
}
我几乎肯定搞砸了一些 javascript;使用风险自负。
这比上面给出的简单答案要复杂得多,但这是我能想到的唯一方法,以便它“有意义”。基本上,使用这种方法,您可以将所有内容放在应有的位置,而不必担心奇怪的表格和奇怪的选择。