Php mysql查询格式不正确

Php mysql查询格式不正确,php,mysql,database,Php,Mysql,Database,我非常接近这一点,但仍然有一个问题的事件清单。我要找的是标题,日期和事件显示一次谁参加了该活动的名单。现在,我得到了一个事件,日期和标题打印的次数和名字一样多,只有一个名字显示在每个 我曾在几个领域尝试过分组,但似乎没有任何效果 SELECT x.xdate, x.xevent, x.xname, x.xaffirm, y.activity, y.title, y.text, y.date FROM x LEFT JOIN y ON x.xdate = y.date WHER

我非常接近这一点,但仍然有一个问题的事件清单。我要找的是标题,日期和事件显示一次谁参加了该活动的名单。现在,我得到了一个事件,日期和标题打印的次数和名字一样多,只有一个名字显示在每个

我曾在几个领域尝试过分组,但似乎没有任何效果

SELECT x.xdate, x.xevent, x.xname, x.xaffirm, y.activity, y.title,
y.text, y.date 
    FROM x LEFT JOIN y ON x.xdate = y.date 
    WHERE xevent='Hiking' AND xaffirm='Yes'
    ORDER BY y.date DESC") 

Print "<table width=500>"; 
while($info = mysql_fetch_array( $data )) 
{ 

Print "<tr>"; 
Print 
"<th style='width:225px;' bgcolor=#49A78D align=center >Title</th>
<th style='width:300px;' bgcolor=#49A78D align=center >Text</th>
<th style='width:175px;' bgcolor=#49A78D align=center >Date</th> 
<th style='width:175px;' bgcolor=#49A78D align=center >Name</th>"; 
Print "</tr>";

Print "<tr>"; 
 Print 
"<td bgcolor=#ffffff valign=top  align=center>".$info['title'] . "</td>
 <td bgcolor=#ffffff valign=top align=left>".$info['text'] . "</td>
 <td bgcolor=#ffffff valign=top align=left>".$info['date'] . "</td>
 <td bgcolor=#ffffff valign=top align=left>".$info['name'] . "</td>";
 Print "</tr>";
选择x.xdate、x.xevent、x.xname、x.xaffirm、y.activity、y.title、,
y、 文本,y.日期
从x向左在x.xdate=y.date连接y
其中xevent='hipping'和xaffirm='Yes'
按y.日期说明订购“
打印“”;
而($info=mysql\u fetch\u数组($data))
{ 
打印“”;
打印
“头衔
文本
日期
名称”;
打印“”;
打印“”;
打印
“.$info['title']”
“$info['text']”
“$info['date']”
“$info['name']”;
打印“”;

这就是我现在得到的:


这就是我想要得到的:

我可能要做的是使用一个变量来表示“此行中的数据是否对应于一个新事件,或者是同一事件的附加数据?”

如果日期不匹配,则是一个新事件;首先,添加一个新的标题行,然后添加一个包含所有四列数据的新行。如果日期匹配,则跳过标题并添加一行,其中前三列为空,第四列具有新名称。(如果我的PHP没有完全编译,则表示歉意,已经过了一段时间。)

$lastEventDate='';
打印“”;
而($info=mysql\u fetch\u数组($data))
{ 
如果($lastEventDate!=$info['date']))
{
打印“”;
打印
“头衔
文本
日期
名称”;
打印“”;
}
打印“”;
如果($lastEventDate==$info['date']))
{
打印“”
}
其他的
{
打印
“.$info['title']”
“$info['text']”
“$info['date']”
}
打印“$info['name']”;
打印“”;
$lastEventDate=$info['date'];
}

另外,我不确定您实际想要的是否是单独的表;如果是这样,那么在第一个
if
块中,您可以关闭第一个表,然后打开一个新表。

请显示您得到的行和您想要的行。这就是我得到的now@rsw-他在问你的输出现在是什么样子,你希望它看起来怎么样ke.嗨,Adam,谢谢你在上传照片时遇到了麻烦。很多人都不喜欢运行多个查询。一种非常简单(简单)的方法就是为每一行响应运行一个额外的查询(参与者)(hikes)。处理速度稍慢,但在大多数情况下,性能差异不太可能被用户注意到。这样做的好处是使代码更易于阅读。嗨,Adam,我替换了您的更改,但问题仍然存在。此外,我还应该指出,我想列出多个单独的事件,每个事件都有相应的日期和参与者参与者。@rsw-Ah,我想我明白了。所以每次
$info['xdate]出现时,您都希望有一个新的标题行
引用了一个新事件?尽管考虑得更多,在
td
s上执行
rowspans
可能会更好,而不是使用
colspan
创建新行。是的。每个新事件都有一个新的标题…..现在在第56行上出现一个解析错误:语法错误,意外的“}”
$lastEventDate = '';
Print "<table width=500>"; 

while($info = mysql_fetch_array( $data )) 
{ 
    if ($lastEventDate != $info['date'])
    {
        Print "<tr>"; 
        Print 
        "<th style='width:225px;' bgcolor=#49A78D align=center >Title</th>
        <th style='width:300px;' bgcolor=#49A78D align=center >Text</th>
        <th style='width:175px;' bgcolor=#49A78D align=center >Date</th> 
        <th style='width:175px;' bgcolor=#49A78D align=center >Name</th>"; 
        Print "</tr>";
    }

    Print "<tr>"; 
    if ($lastEventDate == $info['date'])
    {
        Print "<td colspan=3 />"
    }
    else
    {
        Print 
        "<td bgcolor=#ffffff valign=top  align=center>".$info['title'] . "</td>
        <td bgcolor=#ffffff valign=top align=left>".$info['text'] . "</td>
        <td bgcolor=#ffffff valign=top align=left>".$info['date'] . "</td>"
    }
    Print "<td bgcolor=#ffffff valign=top align=left>".$info['name'] . "</td>";
    Print "</tr>";
    $lastEventDate = $info['date'];
}