Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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
显示活动日期、姓名,然后列出已注册的姓名?!MySQL-PHP_Php_Mysql - Fatal编程技术网

显示活动日期、姓名,然后列出已注册的姓名?!MySQL-PHP

显示活动日期、姓名,然后列出已注册的姓名?!MySQL-PHP,php,mysql,Php,Mysql,真的需要帮助!我知道这很容易做到,但我的大脑无法启动。我有一个名为“Bookings”的db表,其中是表列“StartDate”“EventTitle”“Fornames”“names” 我要做的是查询数据库,并按事件的开始日期和标题回显事件列表,然后在每个事件旁边显示已预订到每个事件的名称 当我运行下面的代码时,它会显示StartDate、EventTitle和Forename,但会对每个条目重复这一点——我希望这是有意义的 $sql = "SELECT * FROM Bookings";

真的需要帮助!我知道这很容易做到,但我的大脑无法启动。我有一个名为“Bookings”的db表,其中是表列“StartDate”“EventTitle”“Fornames”“names”

我要做的是查询数据库,并按事件的开始日期和标题回显事件列表,然后在每个事件旁边显示已预订到每个事件的名称

当我运行下面的代码时,它会显示StartDate、EventTitle和Forename,但会对每个条目重复这一点——我希望这是有意义的

$sql = "SELECT *
FROM Bookings";

$result = mysql_query($sql) or die (mysql_error());

$row = mysql_fetch_array($result) or die (mysql_error());

while($row = mysql_fetch_array($result)){ 

echo '<table>';
echo '<tr>';
echo '<td>' . $row['StartDate'] . '</td>' . '<td>' . $row['EventTitle'] . '</td>'
.'<td>' . $row['Forenames'] . '</td>';
echo '</tr>';
echo '</table>';
}
$sql=“选择*
来自预订”;
$result=mysql\u query($sql)或die(mysql\u error());
$row=mysql\u fetch\u数组($result)或die(mysql\u error());
而($row=mysql\u fetch\u数组($result)){
回声';
回声';
回显'.$row['StartDate'].'.$row['EventTitle'.'
“.$row['Forenames']”;
回声';
回声';
}
试试:

$sql=“选择StartDate、EventTitle、GROUP_CONCAT(ForName)作为与会者
预订
按开始日期、事件标题分组”;
$result=mysql\u query($sql)或die(mysql\u error());
回声';
而($row=mysql\u fetch\u assoc($result)){
回声';
回显'.$row['StartDate'].'.$row['EventTitle'.'.'.'.'.$row['Attendes'.].'';
回声';
}
回声';
几点注意:

  • mysql\u fetch\u array()
    不会给出
    $row
    中的字段名,但是
    mysql\u fetch\u assoc()
    会给出
  • 您发布的代码将跳过第一行结果
  • 不需要为每一行输入

感谢您的回复,遗憾的是仍然没有任何乐趣。仍显示多个条目。我想要实现的是,2015年9月11日的家庭派对吉姆、鲍勃、戴夫、皮特2015年10月13日的泳池派对弗兰克、迈克、约翰等……:/更新了查询-试试看。非常近!一切都很完美,只有名称不显示,而只是显示为“Forenames”x表中输入的名称数量?!哦,哎呀。我有点累了。将
'
组目录('Fornames')
中取出,因此它是
组目录(Fornames)
-我已经更新了查询组目录的长度限制。如果您的来宾的总长度超过1024个字符(默认值),您将默默地截断名称。
$sql = "SELECT StartDate, EventTitle, GROUP_CONCAT(Fornames) as Attendees
FROM Bookings
GROUP BY StartDate, EventTitle";
$result = mysql_query($sql) or die (mysql_error());

echo '<table>';
while($row = mysql_fetch_assoc($result)){ 
    echo '<tr>';
    echo '<td>' . $row['StartDate'] . '</td>' . '<td>' . $row['EventTitle'] . '</td>'.'<td>' . $row['Attendees'] . '</td>';
    echo '</tr>';
}
echo '</table>';