Php 在mysql中获取相似的行数
我正在做一个项目,在这个项目中,导师可以节省上课时间。他可以根据天数来判断时间。我用了密码Php 在mysql中获取相似的行数,php,mysql,Php,Mysql,我正在做一个项目,在这个项目中,导师可以节省上课时间。他可以根据天数来判断时间。我用了密码 $qry = mysqli_query($con, 'select * from users left join time_slot on users.id=time_slot.u_id where users.id=' . $id); echo '<table class="table_class" border="2"> <tr>
$qry = mysqli_query($con, 'select * from users left join time_slot on users.id=time_slot.u_id where users.id=' . $id);
echo '<table class="table_class" border="2">
<tr>
<th class="details">id</th>
<th class="details">Date</th>
<th class="details">start time</th>
<th class="details">End Time</th>
</tr>';
while ($row = mysqli_fetch_array($qry)) {
echo '<tr>';
echo '<td class="details">' . $row['id'] . '</td>';
echo '<td class="details">' . $row['name'] . '</td>';
echo '<td class="details">' . $row['day'] . '</td>';
echo '<td class="details">' . $row['time_from'] . '</td>';
echo '<td class="details">' . $row['time_to'] . '</td>';
echo '</tr>';
}
echo '</table>';
$qry=mysqli\u query($con,'select*从用户左侧加入用户上的time\u slot.id=time\u slot.u\u id,其中users.id='。$id);
回声'
身份证件
日期
开始时间
结束时间
';
while($row=mysqli\u fetch\u数组($qry)){
回声';
回显'.$row['id'].';
回显'.$row['name'].';
回显“.$row['day']”;
回显'.$row['time_from'].';
回显'.$row['time_to'].';
回声';
}
回声';
但是如果一个导师在同一天有多节课,它会显示多个时间。
我想展示一下,如果他在同一天(星期一)有2节或更多的课,那么所有的时间槽都会在一行显示出来。一周中的所有日子都是如此。我该怎么做?您可以使用此函数。假设你的ddl是这样的
create table users(id bigint, name varchar(50));
create table time_slot(id bigint, u_id bigint, day datetime, time_from time, time_to time);
sql将如下所示:
select u.id,u.name, ts.day,
group_concat(ts.time_from, ' - ', ts.time_to ORDER BY ts.time_from, ts.time_to)
from users u left outer join time_slot ts on u.id = ts.u_id
group by u.id, u.name, ts.day
order by u.name, ts.day
请参阅。我已经处理了一些温度值。 如果您想以同样的方式实现,那么它对您是有用的 复制代码并在此处检查
$obj1['id']='1';
$obj1['name']='a1';
$obj1['day']='asdadh';
$obj1['time_from']='1';
$obj1['time_to']='1';
$obj2['id']='2';
$obj2['name']='a2';
$obj2['day']='asdad';
$obj2['time_from']='1';
$obj2['time_to']='1';
$obj3['id']='3';
$obj3['name']='a2';
$obj3['day']='asdad';
$obj3['time_from']='1';
$obj3['time_to']='1';
$arr=Array();
$arr[]=$obj1;
$arr[]=$obj2;
$arr[]=$obj3;
回声';
回声';
回音“id”;
呼应“名字”;
回声“天”;
回声“开始时间”;
回声“结束时间”;
回声';
foreach($arr作为$row)
{
回声';
回显'.$row['id'].';
回显'.$row['name'].';
回显“.$row['day']”;
回显'.$row['time_from'].';
回显'.$row['time_to'].';
回声';
}
回声';
回声“
”;
$dates=Array();
$count=0;
foreach($arr as$id=>$row){
$val=$row['day'];
$key=数组搜索($val,$dates);
如果(是数字($key)){
$arr[$key]['day']=$dates[$key].','.$val;
未结算($arr[$id]);
}否则{
$dates[$count]=$val;
}
$count++;
}
//新桌子
回声';
回声';
回音“id”;
呼应“名字”;
回声“天”;
回声“开始时间”;
回声“结束时间”;
回声';
foreach($arr作为$row)
{
回声';
回显'.$row['id'].';
回显'.$row['name'].';
回显“.$row['day']”;
回显'.$row['time_from'].';
回显'.$row['time_to'].';
回声';
}
回声';
我错拿了赏金。任何人都知道我怎么才能把赏金拿走Hi@ozgur酒吧,我不知道赏金的事。我错把赏金加在这个问题上了。如果你知道如何移除它。请帮忙me@Yogendra-这是不可能的:嗨@Yogendra,我从来没有问过stackoverflow的问题,所以我不知道它是怎么做到的。。
$obj1['id']='1';
$obj1['name']='a1';
$obj1['day']='asdadh';
$obj1['time_from']='1';
$obj1['time_to']='1';
$obj2['id']='2';
$obj2['name']='a2';
$obj2['day']='asdad';
$obj2['time_from']='1';
$obj2['time_to']='1';
$obj3['id']='3';
$obj3['name']='a2';
$obj3['day']='asdad';
$obj3['time_from']='1';
$obj3['time_to']='1';
$arr = Array();
$arr[]=$obj1;
$arr[]=$obj2;
$arr[]=$obj3;
echo '<table class="table_class" border="2">';
echo '<tr>';
echo '<th class="details">id</th>';
echo '<th class="details">name</th>';
echo '<th class="details">day</th>';
echo '<th class="details">start time</th>';
echo '<th class="details">End Time</th>';
echo '</tr>';
foreach($arr as $row)
{
echo '<tr>';
echo '<td class="details">' . $row['id'] . '</td>';
echo '<td class="details">' . $row['name'] . '</td>';
echo '<td class="details">' . $row['day'] . '</td>';
echo '<td class="details">' . $row['time_from'] . '</td>';
echo '<td class="details">' . $row['time_to'] . '</td>';
echo '</tr>';
}
echo '</table>';
echo "<br><br><br><br><br><br><br>";
$dates=Array();
$count=0;
foreach($arr as $id=>$row){
$val = $row['day'];
$key = array_search($val,$dates);
if(is_numeric($key)){
$arr[$key]['day']=$dates[$key].','.$val;
unset($arr[$id]);
}else{
$dates[$count]=$val;
}
$count++;
}
// new table
echo '<table class="table_class" border="2">';
echo '<tr>';
echo '<th class="details">id</th>';
echo '<th class="details">name</th>';
echo '<th class="details">day</th>';
echo '<th class="details">start time</th>';
echo '<th class="details">End Time</th>';
echo '</tr>';
foreach($arr as $row)
{
echo '<tr>';
echo '<td class="details">' . $row['id'] . '</td>';
echo '<td class="details">' . $row['name'] . '</td>';
echo '<td class="details">' . $row['day'] . '</td>';
echo '<td class="details">' . $row['time_from'] . '</td>';
echo '<td class="details">' . $row['time_to'] . '</td>';
echo '</tr>';
}
echo '</table>';