Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysql中获取相似的行数_Php_Mysql - Fatal编程技术网

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>';