我有以下代码,我尝试在第一列中从a到z打印字母。但是我只得到字母“ a”被打印在整个列中。
function print_table_tb ($conn, $id) {
$sql = "SELECT stata,statb,statc FROM dbA";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table class='tbr' id='tb$id'>";
while($row = $result->fetch_assoc()) {
$data = array_reduce($row, function($carry, $value) {
$carry[] = "<td dbval='{$value}'>{$value}</td>";
return $carry;
}, []);
$range = range('a', 'z');
$i = 0;
echo '<tr><td class="tbe">'.$range[$i++ % 26].'</td>'. implode('', $data) . "</tr>\n" ;
}
echo "</table>";
}
}
我在这里做错了什么?谢谢你的帮助!我的问题不同。我没有寻求按字母顺序列出的解决方案,我有解决方案,但是我无法解决错误。
我尝试了此操作,但它也不起作用。
function print_table_tb ($conn, $id) {
$sql = "SELECT stata,statb,statc FROM dbA";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$range = array("a", "b", "c", "d");
$i = 0;
echo "<table class='tbr' id='tb$id'>";
while($row = $result->fetch_assoc()) {
$data = array_reduce($row, function($carry, $value) {
$carry[] = "<td dbval='{$value}'>{$value}</td>";
return $carry;
}, []);
echo '<tr><td class="tbe">' . $range[$i] . '</td>'
. implode('', $data) . "</tr>\n" ;
$i++;
}
echo "</table>";
}
}
答案 0 :(得分:0)
尝试
$range = range('a', 'z');
$i = 0;
echo "<table class='tbr' id='tb$id'>";
while($row = $result->fetch_assoc()) {
$data = array_reduce($row, function($carry, $value) {
$carry[] = "<td dbval='{$value}'>{$value}</td>";
return $carry;
}, []);
$temp = ($i % 26);
$i++;
echo '<tr><td class="tbe">'.$range[$temp].'</td>'. implode('', $data) . "</tr>\n" ;
}