在php/mysql中,如何从同一个表中只获取一次重复值,另一次获取多个重复值
我有两张桌子,一张是会计,另一张是订票 我想从预订表中获取数据,因为重复数据应该只显示一次,但所有数据都来自所选UId的“开始”字段。按以下格式 日期:2014-12-20 开始:7:00,7:30,8:00,8:30,9:00,9:30 玩家:0 评论:测试预订在php/mysql中,如何从同一个表中只获取一次重复值,另一次获取多个重复值,php,mysql,database,Php,Mysql,Database,我有两张桌子,一张是会计,另一张是订票 我想从预订表中获取数据,因为重复数据应该只显示一次,但所有数据都来自所选UId的“开始”字段。按以下格式 日期:2014-12-20 开始:7:00,7:30,8:00,8:30,9:00,9:30 玩家:0 评论:测试预订 $comp_query1=mysql_query("select * from bookings where UId = '$contact_id'"); while($booking=mysql_fetch_array(
$comp_query1=mysql_query("select * from bookings where UId = '$contact_id'");
while($booking=mysql_fetch_array($comp_query1))
{
?>
<tr>
<td><strong>comments : </strong></td>
<td><?php echo $booking['comments']; ?></td>
</tr>
<tr>
<td><strong>Date : </strong></td>
<td><?php echo $booking['date']; ?></td>
</tr>
<tr>
<td><strong>Players : </strong></td>
<td><?php echo $booking['Players']; ?></td>
</tr>
<tr>
<td><strong>Start : </strong></td>
<td> <?php echo $booking['start']; ?>
</td>
</tr>
$comp\u query1=mysql\u查询(“从预订中选择*,其中UId='$contact\u id'”);
而($booking=mysql\u fetch\u数组($comp\u query1))
{
?>
评论:
日期:
玩家:
开始:
这是我的问题,帮帮我。
提前感谢您。只需使用
键创建一个数组,如果您已经有了它,只需将数据
附加到您已经存储的值
类似于(翻译成PHP):
然后可以使用正确的值在新数组上循环
select `date` ,
GROUP_CONCAT(
`start` order by `start` asc
) as `start`,
GROUP_CONCAT(
comments order by `start` asc
) as comments,
SUM(`Players`) as `Players`
from bookings
where UId = '$contact_id'
group by `date`;
这将导致
日期:2014-12-20
开始时间:7:00,7:30,8:00,8:30,9:00,9:30
球员:0
备注:考试预订,考试预订
然后,您可以简单地在每个日期的不同行中循环并显示结果通过使用内爆函数,我得到了最简单的方法
<?php
$comp_query1=mysql_query("select * from bookings where UId = '$contact_id'");
$book = array();
while($booking=mysql_fetch_array($comp_query1))
{
$comments = $booking['comments'];
$date = $booking['date'];
$players = $booking['Players'];
$book[] = $booking['start'];
$comma_separated = implode(' | ', $book);
}
?>
<tr>
<td><strong>comments : </strong></td>
<td><?php echo $comments; ?></td>
</tr>
<tr>
<td><strong>Date : </strong></td>
<td><?php echo $date; ?></td>
</tr>
<tr>
<td><strong>Players : </strong></td>
<td><?php echo $players; ?></td>
</tr>
<tr>
<td><strong>Start : </strong></td>
<td> <?php echo $comma_separated; ?>
</td>
</tr>
您可以使用GROUP_CONCAT,但我只返回一个有序数组,并使用一个简单的PHP loopWell进行操作。我没有时间为您编写代码,但它确实有效。只需将算法写在纸上就行了。
<?php
$comp_query1=mysql_query("select * from bookings where UId = '$contact_id'");
$book = array();
while($booking=mysql_fetch_array($comp_query1))
{
$comments = $booking['comments'];
$date = $booking['date'];
$players = $booking['Players'];
$book[] = $booking['start'];
$comma_separated = implode(' | ', $book);
}
?>
<tr>
<td><strong>comments : </strong></td>
<td><?php echo $comments; ?></td>
</tr>
<tr>
<td><strong>Date : </strong></td>
<td><?php echo $date; ?></td>
</tr>
<tr>
<td><strong>Players : </strong></td>
<td><?php echo $players; ?></td>
</tr>
<tr>
<td><strong>Start : </strong></td>
<td> <?php echo $comma_separated; ?>
</td>
</tr>