Php 如何在MySQL表中获得四个字段作为一行?
如何在MySQL表中获得四个字段作为一行 表结构:Php 如何在MySQL表中获得四个字段作为一行?,php,mysql,row,Php,Mysql,Row,如何在MySQL表中获得四个字段作为一行 表结构: id name ------------ 1 John 2 Doe 3 M 4 King 5 Mark 6 Someone 7 Thing 8 Super html输出应为: John - Doe - M - King Mark - Someone - Thing - Super 等等 我没有代码示例,因为我不知道从哪里开始。我有超过300000行。< P>一个实现你想
id name
------------
1 John
2 Doe
3 M
4 King
5 Mark
6 Someone
7 Thing
8 Super
html输出应为:
John - Doe - M - King
Mark - Someone - Thing - Super
等等
我没有代码示例,因为我不知道从哪里开始。我有超过300000行。< P>一个实现你想要的方法是把每组4个连续的<代码> ID <代码>值作为一个组,然后在每组记录上做一个组连接:
SELECT GROUP_CONCAT(`name` SEPARATOR ' - ')
FROM yourTable
GROUP BY (id - 1) DIV 4
一种实现你想要的方法是将每组4个连续的<代码> ID <代码>值作为一个组,然后对每组记录进行组连接:
SELECT GROUP_CONCAT(`name` SEPARATOR ' - ')
FROM yourTable
GROUP BY (id - 1) DIV 4
您可以尝试使用除法的余数
%
来获取余数4。比如说
for($i=0;$i<count($row);$i++) {
echo $row['name'] ;
if($i%4==0) {
echo '<br/>';
} else {
echo ' - ';
}
}
对于($i=0;$i您可以尝试使用除法的余数%
来获取余数4。例如
for($i=0;$i<count($row);$i++) {
echo $row['name'] ;
if($i%4==0) {
echo '<br/>';
} else {
echo ' - ';
}
}
对于($i=0;$i我会这样做:
$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;
$mysqli=database::connect();//获取连接
if($result=$mysqli->query(“按id ASC从表名顺序中选择名称”)){
$i=0;
$data=“”;
而($row=$result->fetch_数组(MYSQLI_ASSOC)){
$data.=$row['name'];
$i++;
如果($i<4){
$data.=“-”;
}否则{
$data.=“
”;
$i=0;
}
}
$result->close();
}
回波数据;
这就是我要做的:
$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;
$mysqli=database::connect();//获取连接
if($result=$mysqli->query(“按id ASC从表名顺序中选择名称”)){
$i=0;
$data=“”;
而($row=$result->fetch_数组(MYSQLI_ASSOC)){
$data.=$row['name'];
$i++;
如果($i<4){
$data.=“-”;
}否则{
$data.=“
”;
$i=0;
}
}
$result->close();
}
回波数据;
您只需在查询中输入所需的字段。从您的表中选择name、lastname、initial、otherfield、anotherone、one或one,然后使用PHP将其格式化。数据是否真的像那样分散在4行中?如果是4个字段,您可以使用。Mike,我只有一个字段,您可以从表结构中看到Casy.Cys85,是它的一致性,每4行一个新的循环开始后。@ GunARVI我没有注意到你的数据是如何构造的。抱歉,误解。我也会强烈地考虑把它重组成更合乎逻辑的东西。你怎么会这么疯狂。你只要把你需要的字段放在你的查询中。<代码>选择名字,姓氏,初始化。al,otherfield,anotherone,yourtable中的一个,另一个
并使用PHP来格式化它。数据真的像那样分散在4行上吗?如果是4个字段,你可以使用。Mike,我只有一个字段,你可以从表结构中看到。Chris85,是的,它的一致性,在每4行新周期开始后。@Gunarves我没有你的数据是如何构造的。对不起,误解。我也会强烈考虑把它重组成更合乎逻辑的东西。你怎么会这么疯狂。我怀疑这是对文字的解释。以前从来没有人这样爱我。我迷失了。@草莓你在那里自言自语吗?@Mike我在上面加了一条评论,我说我喜欢吃草莓,但我不喜欢他们留下不好的评论。我把它删除了。@TimBiegeleisen哈哈。我认为这是一种类似的说法。我怀疑这是对这个要求的字面解释。从来没有人那么爱我一天前。我说不出话来。:-@草莓你在那里自言自语吗?@Mike我加了一句话,我说我喜欢吃草莓,但我不喜欢他们留下不好的评论。我把它删除了。@TimBiegeleisen哈哈。我还以为是这样的。