1

我有一张包含事件和日期的表格,另一张包含这些夜晚的客人名单。我可以像这样打印夜晚:

$day = date("l");
$date = getFullDateString($day);

$result = mysql_query("SELECT * FROM nights WHERE day = '$day' AND promoter = 'blah'") or die(mysql_error);

while ($row = mysql_fetch_array($result)) {
    echo "<h2>";
    echo $row[name];
    echo " (";
    echo getFullDateString($row[day]);
    echo ")</h2>";
}

问题是,对于这些事件中的每一个,我都希望在其下方打印来宾列表。我试过在while里面放另一个循环,但即使是测试回声也不起作用。

$result2 = mysql_query("SELECT DISTINCT guest FROM guestlists WHERE night = '$row[name]' AND date = 'getFullDateString($row[day])'") or die(mysql_error ());

    while($row2 = mysql_fetch_array($result2)) {
        echo $row2[0];
        echo "test";
        echo "<br />";
}

基本上我想要以下内容:

活动一

名称 1

名称 2

名称 3

活动 2

名称 1

名称 2

名称 3

4

3 回答 3

1

您在查询字符串中有一个不会运行的方法。

尝试:

$sql = "SELECT DISTINCT guest FROM guestlists WHERE night = '".$row['name']."' AND `date` = '".getFullDateString($row['day'])."'"

此外,date是 MySQL 中的保留字,应封装在反引号内或更改为其他内容。

此外,这些mysql_函数已被弃用,建议用PDO 或 MySQLi替换它们。

于 2012-06-16T09:53:44.230 回答
1

查看用于字符串解析的复杂(卷曲)语法,了解将变量嵌入字符串的正确方法。

于 2012-06-16T09:54:44.477 回答
0

尝试这个...

$result = mysql_query("SELECT * FROM nights WHERE day = '".$day."' AND promoter = 'blah'") or die(mysql_error);

while ($row = mysql_fetch_array($result)) {
    echo "<h2>".$row[cname]."</h2>";

    $result2 = mysql_query("SELECT DISTINCT guest FROM guestlists WHERE night = '$row[name]' AND date = '".getFullDateString($row[day])."'") or die(mysql_error);

   while ($row2 = mysql_fetch_array($result2))  
    {
        echo $row2[cname];  
    }

}
于 2012-06-16T09:55:07.797 回答