【发布时间】:2014-03-24 17:45:40
【问题描述】:
我正在研究一个元素周期表,其中我从我的数据库中检索所有元素。我想将元素放在元素周期表中各自的位置。
例如:氢气在第 1 行,单元格 1 - 氦气在第 1 行,第 18 单元格。因此,这两个单元格之间的单元格应该是空白的。
问题是,当我运行我的 for 循环并比较位置(存储在我的数据库中)和我给每个单元格的 ID(与数据库中的位置结果相同)时,它只解析第一个元素然后停止。
它返回第一个 1-1(氦气 - 第 1 行,第 1 单元格)并按应有的方式对其进行解析。然后是下一个,即 1-2(第 1 行,第 2 单元格),从这里开始就停止了。
这是我的查询
// SQL Query for retrieving elements
$query = "
SELECT
id, name, symbol, row, cell
FROM
elements
ORDER BY
id
";
$objResult = $objConnection->query($query);
while ($row = $objResult->fetch_assoc()) {
// Creating two-dimensional, associative array containing each element
$ele[] = array(
'id' => $row['id'],
'name' => $row['name'],
'symbol' => $row['symbol'],
'position' => $row['row'].'-'.$row['cell']
);
}
还有我的 for 循环
// Element counter
$cnt = 0;
// Creating tr's and td's
for($i = 1; $i <= 9; $i++) {
echo '<tr>';
for($h = 1; $h <= 18; $h++) {
$cell = $i.'-'.$h;
$pos = $ele[$cnt]['position'];
echo '<td id="'.$cell.'">';
if($pos == $cell) {
echo $ele[$cnt]['symbol'];
}
echo '</td>';
$cnt++;
}
echo '</tr>';
我希望你能帮助我,因为我很困惑。
【问题讨论】:
-
您要创建第 9 行第 18 列的表吗?为什么你的 start 变量等于 1 而不是 0 ?数组索引以 0 开头
-
因为它与数组索引无关,而是存储在我的数据库中的位置。
标签: php mysql arrays variables for-loop