PHP+;MySQL:显示具有相同值的所有记录
我需要一些关于显示多个日期值相同的MySQL记录的帮助 例如:PHP+;MySQL:显示具有相同值的所有记录,php,mysql,mysqli,Php,Mysql,Mysqli,我需要一些关于显示多个日期值相同的MySQL记录的帮助 例如: ========================== 31 July Record 1 2 August Record 2 Record 3 5 August Record 4 Record 5 6 August Record 6 ========================== MySQL记录示例数据: nid | neventName | nstartDate ----+------------+-----
==========================
31 July
Record 1
2 August
Record 2
Record 3
5 August
Record 4
Record 5
6 August
Record 6
==========================
MySQL记录示例数据:
nid | neventName | nstartDate
----+------------+-----------
| 1 | Record 1 | 2018-07-31
| 2 | Record 2 | 2018-08-02
| 3 | Record 3 | 2018-08-02
| 4 | Record 4 | 2018-08-05
| 5 | Record 5 | 2018-08-05
| 6 | Record 6 | 2018-08-08
我的本节代码如下所示:
<?php
//DATE VALUES
date_default_timezone_set('Asia/Dubai');
$currentDate = date("Y-m-d");
$startDate = $rs_EventsVenuesListing_rows['nstartDate'];
$date = date_create($startDate);
//CREATE SQL STATEMENT
$sql_EventsVenuesListing = "SELECT * FROM tblvenueListingsEvents WHERE $currentDate <= nstartDate ORDER BY nstartDate ASC";
//$sql_EventsVenuesListing = "SELECT DISTINCT nstartDate FROM tblvenueListingsEvents WHERE $currentDate <= nstartDate ORDER BY nstartDate ASC";
//CONNECT TO MYSQL SERVER
require('inc-conn.php');
//EXECUTE SQL STATEMENT
$rs_EventsVenuesListing = mysqli_query($vconn, $sql_EventsVenuesListing);
//CREATE AN ASSOCIATIVE ARRAY
//$rs_EventsVenuesListing_rows = mysqli_fetch_assoc($rs_EventsVenuesListing);
?>
<?php
echo "<table border = 1px>";
while ($rs_EventsVenuesListing_rows = mysqli_fetch_assoc($rs_EventsVenuesListing)) {
// printing table row
// ##### DISPLAY ALL DATES USING START DATE FROM EVENTS #####
echo'<tr>';
echo '<td>'.$rs_EventsVenuesListing_rows['nstartDate'].'</td>';
echo'</tr>'; // closing table row
// ##### DISPLAY ALL EVENTS THAT HAS THE SAME START DATE #####
if ($startDate = $startDate) {
echo'<tr>';
echo '<td>'.$rs_EventsVenuesListing_rows['neventName'].'</td>';
echo'</tr>'; // closing table row
}
echo'<tr>';
echo '<td><br></td>';
echo'</tr>'; // closing table row
}
echo '</table>';
?>
<!-- ######################## DISPLAY DATES ######################## -->
非常感谢您的帮助。
问候,
丹麦这里有一个简单的片段,说明这种结构是如何形成的
Header1
data1
data2
Header2
data3
...
作品:
$startdate = null; // initialize
while($row = mysqli_fetch_assoc($rs_EventsVenuesListing)) {
if($startdate != $row['nstartDate']) {
// echo HEADER ROW (the date) HERE!
// set startdate to the new one:
$startdate = $row['nstartDate'];
}
// allways echo DATA ROW (Record 1) HERE
}
此代码不用于复制和粘贴。它只能显示背后的逻辑。那么问题是什么?现在发生了什么出乎意料的情况?警告:当使用
mysqli
时,您应该使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。注意:mysqli
的面向对象界面明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql\u查询
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:$db=new mysqli(…)
和$db->prepare(“…”)
过程接口是PHP 4时代的产物,当时引入了mysqli
API,不应在新代码中使用。if($startDate=$startDate)
-hm。其中有两件事:=
!=<代码>=第二:将变量与自身进行比较?在第三行中,您尝试访问$rs\u EventsVenuesListing\u行['nstartDate']代码>,还没有定义。嗨,杰夫,谢谢你抽出时间来帮我。它工作完美!我非常感谢你的帮助。我希望您在病房度过一个愉快的夜晚:)