[英]How do I get four fields as a row in a MySQL table?
How do I get four fields as a row in a MySQL table? 如何在MySQL表中连续获取四个字段?
Table structure: 表结构:
id name
------------
1 John
2 Doe
3 M
4 King
5 Mark
6 Someone
7 Thing
8 Super
The html output should be: html输出应为:
John - Doe - M - King
Mark - Someone - Thing - Super
etc.. 等等..
I have no code samples as I have no clue where to begin. 我没有代码示例,因为我不知道从哪里开始。 I have over 300,000 rows. 我有超过30万行。
One approach to achieve what you want would be to consider each group of 4 consecutive id
values as a group, and then do a group concatenation over each set of records: 实现所需目标的一种方法是将每组四个连续的id
值视为一个组,然后对每组记录进行组连接:
SELECT GROUP_CONCAT(`name` SEPARATOR ' - ')
FROM yourTable
GROUP BY (id - 1) DIV 4
you can try use remainder of the division %
for get remainder number 4. for example 您可以尝试使用除法%
的余数来获取余数4。例如
for($i=0;$i<count($row);$i++) {
echo $row['name'] ;
if($i%4==0) {
echo '<br/>';
} else {
echo ' - ';
}
}
This is what I would do: 这就是我要做的:
$mysqli = database::connect(); // Get a connection
if ($result = $mysqli->query("SELECT name FROM tablename ORDER BY id ASC")) {
$i = 0;
$data = "";
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$data .= $row['name'];
$i++;
if ($i < 4) {
$data .= " - ";
} else {
$data .= "<br />";
$i = 0;
}
}
$result->close();
}
echo $data;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.