SQLテーブルに次のデータがあります。
id code day time year
1 PRC-001 0 t-1 2017
2 PRC-001 1 t-2 2017
3 PRC-002 0 t-3 2017
4 PRC-002 1 t-4 2017
5 PRC-003 0 t-5 2017
6 PRC-003 1 t-6 2017
出力は次のようになります。
day0 day1 code
t-1 t-2 PRC-001
t-3 t-4 PRC-002
t-5 t-6 PRC-003
これどうやってするの?私は次のコードのようなものを試していました。しかし、私は欲望の出力を得ることができませんでした。これが私のコードです:
$query1 = "SELECT * FROM routine AS tab1,";
$query1.= " GROUP BY code";
$rs = mysql_query($query1);
$numOfRows=mysql_num_rows($rs);
$printed = array();
$resultset = array();
while($row = mysql_fetch_assoc($rs)) {
$resultset[] = $row;
#print_r($row);
}
$q = "<table id='ash'>";
$q.= "<tr id='grey'>";
$q.= "<th rowspan='2'>day0</th>";
$q.= "<th rowspan='2'>day1(s)</th>";
$q.= "<th rowspan='2'>code</th></tr>";
$q.= "</tr>";
foreach ($resultset as $row){
$q.= "<tr>";
$q.= "<tr><td id='clist'>".$row["time"]."</td>";
$q.= "<td id='clist'>".$row["time"]."</td>";
$q.= "<td id='clist'>".$row["code"]."</td></tr>";
}
$q .= "</table>";
echo $q;
まず、コメントで述べたように、mysql_
関数以外のものを使用することを検討する必要があります。
次に、クエリを実行するときに、を削除する必要がありますGROUP BY
。
次に、次のようなことを行うことができます。
$rs = mysql_query("SELECT * FROM routine");
$results = [];
while ($row = mysql_fetch_assoc($rs)) {
$code = $row['code'];
if (!isset($results[$code])) {
$results[$code] = [
'day0' => '-',
'day1' => '-',
];
}
$results[$code]['day' . $row['day']] = $row['time'];
}
?>
<table>
<thead>
<tr id="grey">
<th rowspan="2">Day0</th>
<th rowspan="2">Day1(s)</th>
<th rowspan="2">code</th>
</tr>
</thead>
<tbody>
<?php foreach ($results as $code => $result) : ?>
<!--You shouldn't have multiple elements using the same ids-->
<tr>
<td id='clist'><?php echo $result['day0'] ?></td>
<td id='clist'><?php echo $result['day1'] ?></td>
<td id='clist'><?php echo $code ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
お役に立てれば!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加