Php 从SQL数据库将标题和数据导入HTML表

Php 从SQL数据库将标题和数据导入HTML表,php,html,sql,Php,Html,Sql,简而言之,在过去一周左右的时间里,我一直试图实现的是从SQL表中检索数据,并将其插入HTML表的特定列中。我知道,我已经浏览了很多论坛、手册和视频,但没有找到任何能解决我问题的方法 我要做的是创建一个如下表: 一个简单的解释是:用户在想要预约的时候输入一个日期。SQL表检索用户选择的日期以及选择日期前3天和选择日期后3天(在本例中,用户选择的是12月6日至17日星期三)。标题表示当天,下面的时间段表示当天可预订的可用时间段(这一直持续到17:00)。如果某个时间段不可用,则不应在此处显示,而应

简而言之,在过去一周左右的时间里,我一直试图实现的是从SQL表中检索数据,并将其插入HTML表的特定列中。我知道,我已经浏览了很多论坛、手册和视频,但没有找到任何能解决我问题的方法

我要做的是创建一个如下表:

一个简单的解释是:用户在想要预约的时候输入一个日期。SQL表检索用户选择的日期以及选择日期前3天和选择日期后3天(在本例中,用户选择的是12月6日至17日星期三)。标题表示当天,下面的时间段表示当天可预订的可用时间段(这一直持续到17:00)。如果某个时间段不可用,则不应在此处显示,而应替换为下一个可用的时间段

这是(不起作用的)php代码:


问题很简单,在
循环中,除了列之外,还循环行;每次运行循环时,都会创建一个新行

您目前有:

while ($row = mysqli_fetch_array($query1)) {
    echo '<tr>
            <th>'.date('D, M d-y',strtotime($row['DATE_b']) ).'</th>
          </tr>';
}
这将导致:

<tr>
  <th>One</th>
  <th>Two</th>
</tr>

一个
两个

希望这有帮助!:)

虽然您的原始代码不是一个直接的答案,但以下内容应该让您清楚地知道如何实现所述目标

在这段代码中,通过查询数据库并遍历相应的记录集,可以获取数组
$rsdates
$rstimes
。事实上,时间根本不需要从数据库中提取。您可以使用
范围
,如图所示

$html=array();
$rsdates=array('Mon','Tues','Wed','Thurs','Fri');
$rstimes=range( 09.00, 17.00, 0.5 );


$html[]="<table border=1 width='100%' cellpadding='1rem' cellspacing='1rem'>";
$html[]="<tr>";
foreach( $rsdates as $date ){
    $html[]="<th>$date</th>";
}
$html[]="</tr>";

foreach( $rstimes as $i => $time ){
    $html[]="<tr>";
    foreach( $rsdates as $index => $header ){
        if( is_float( $time ) ){
            list( $hour, $min )=explode( '.', strval( $time ) );
            if( $min==5 ) $min=30;
        }
        $html[]="<td id='day_{$index}_time_{$i}'>".date('H.i',mktime( $hour, $min, 0, 1, 1, date('Y') ) )."</td>";
    }
    $html[]="</tr>";
}

$html[]="</table>";


echo implode( PHP_EOL, $html );
$html=array();
$rsdates=array('Mon','Tues','Wed','Thurs','Fri');
$rstimes=范围(09.00,17.00,0.5);
$html[]=“”;
$html[]=“”;
foreach($rsdates作为$date){
$html[]=“$date”;
}
$html[]=“”;
foreach($i=>$time的rstimes){
$html[]=“”;
foreach($rsdates作为$index=>$header){
如果(是浮动($time)){
列表($hour,$min)=分解('.',strval($time));
如果($min==5)$min=30;
}
$html[]=“”.date('H.i',mktime($hour,$min,0,1,1,date('Y'))”;
}
$html[]=“”;
}
$html[]=“”;
echo内爆(PHP_EOL,$html);
通过给表格单元格分配一个ID,您还应该能够识别单击的日期/时间(假设有一些javascript交互)

这将生成以下HTML表

您可以删除并将其放置在while循环之外,或者检查表中的最后一个id,并在php中创建for循环,以使代码更加干净hanks@RamRaider。这是一个非常好的解决方案,帮助我更好地理解PHP!很好-很高兴这有帮助。我意识到您可能想将数据库中的数据添加到此表中?感谢@Obsidian Age一步一步地描述我做错了什么。那真的很有帮助!我现在已经可以修改我的代码了。再次感谢!
<tr>
  <th>One</th>
  <th>Two</th>
</tr>
$html=array();
$rsdates=array('Mon','Tues','Wed','Thurs','Fri');
$rstimes=range( 09.00, 17.00, 0.5 );


$html[]="<table border=1 width='100%' cellpadding='1rem' cellspacing='1rem'>";
$html[]="<tr>";
foreach( $rsdates as $date ){
    $html[]="<th>$date</th>";
}
$html[]="</tr>";

foreach( $rstimes as $i => $time ){
    $html[]="<tr>";
    foreach( $rsdates as $index => $header ){
        if( is_float( $time ) ){
            list( $hour, $min )=explode( '.', strval( $time ) );
            if( $min==5 ) $min=30;
        }
        $html[]="<td id='day_{$index}_time_{$i}'>".date('H.i',mktime( $hour, $min, 0, 1, 1, date('Y') ) )."</td>";
    }
    $html[]="</tr>";
}

$html[]="</table>";


echo implode( PHP_EOL, $html );