Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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_Mysqli - Fatal编程技术网

PHP+;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 ----+------------+-----

我需要一些关于显示多个日期值相同的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
----+------------+-----------
| 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'],还没有定义。嗨,杰夫,谢谢你抽出时间来帮我。它工作完美!我非常感谢你的帮助。我希望您在病房度过一个愉快的夜晚:)