2012-06-16 293 views
1

我有一个包含事件和日期的表格,另一个表格包含这些晚上的每个晚上的访客列表。我可以打印的夜晚,像这样:while while while while while循环

$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>"; 
} 

的问题是,为这些事件我要打印它下面的guestlist。我试过在内部放置另一个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

名称1

名称2

名称3

事件2

名称1

名称2

名称3

+0

你有在guestlist表事件ID? –

+0

表中是否有条目? – avk

回答

1

你有这将不会运行的查询字符串中的方法。

尝试:

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

此外,date是MySQL中的保留字,反引号内封装或改为别的东西。

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

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]; 
    } 

}