gpt4 book ai didi

php - 根据值将表行划分到不同的列

转载 作者:行者123 更新时间:2023-11-29 06:31:54 25 4
gpt4 key购买 nike

我有一个 mysql 表 id、gra、grb 整数和 NOT NULL,并且包含 1 到 10 之间的不同数字。我想根据其值将 gra 和 grb 中的数据划分到不同的列。

示例:mysql 表:

+------------+------------+------------+
| id | gra | grb |
+------------+------------+------------+
| 1 | 2 | 6 |
+------------+------------+------------+
| 2 | 10 | 8 |
+------------+------------+------------+
| 3 | 9 | 5 |
+------------+------------+------------+

etc

预期的表输出将如下所示:

+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| gr1 | gr2 | gr3 | gr4 | gr5 |gr6 | gr7 |gr8 |gr9 |gr10 |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| | 2 | | | | 6 | | | | |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| | | | | | | | 8 | | 10 |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| | | | | 5 | | | | 9 | |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+

有没有简单的方法可以做到这一点?我想我可以使用 mysql 和 CASE 函数来做到这一点,但它太长了。我认为应该有一个更简单的方法。我可以得到这方面的帮助吗?谢谢。

最佳答案

使用这种方法可以获得想要的结果

// Create connection
$conn = new mysqli('hostname', 'username', 'password', 'dbname');
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT gra ,grb FROM `tablename`";
$result = $conn->query($sql);
$rows = array();
$i = 0;
if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {
foreach(range(1,10) as $key => $value){
$_key = 'gr'.$value;
$rows[$i][$_key] = ($row['gra'] == $value) ? $row['gra'] : ( ($row['grb'] == $value) ? $row['grb'] : null);
}
$i++;
}
}
echo '<pre>';
print_r($rows);

您可以在这样的表格中打印

$sql    = "SELECT gra ,grb FROM `grade`";
$result = $conn->query($sql);
$rows = array();
$i = 0;
$html = '<table border="1"><tr>';
foreach(range(1,10) as $v){
$html.= '<td>gr'.$v.'</td>';
}
$html .= '</tr>';
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$html .= '<tr>';
foreach(range(1,10) as $key => $value){
$_key = 'gr'.$value;
$rows[$i][$_key] = ($row['gra'] == $value) ? $row['gra'] : ( ($row['grb'] == $value) ? $row['grb'] : null);
$html .= '<td>&nbsp;'.$rows[$i][$_key].'&nbsp;</td>';
}
$html .= '</tr>';
print_r($rows[$i]);echo '<hr>';
$i++;
}
}
$html .= '</table>';
echo $html;

关于php - 根据值将表行划分到不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55776326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com