0

我正在写一个约会簿类型的东西,我有一个可能时间的表,所以我的第一个查询是列出所有时间,然后我的第二个表是预定的约会,如果它的时间和约会在表内列出date 匹配从第一个查询中提取的时间和日期。

我无法弄清楚的是,第二个查询中的 2 个条目是否符合同时显示两个结果的条件。

这是我的设置:

$query = mysql_query("SELECT * FROM times", $db);
while ($row = mysql_fetch_array($query)){
    $time = $row[time];
    $query2 = mysql_query("SELECT * FROM appts WHERE time = '$time' AND date = '$date' ", $db);
    $apt = mysql_fetch_array($query2);
    $aptid = $apt[id];
    echo "<tr><td>";
    echo date('h:i A', strtotime($row[time]));
    echo "</td><td>$apt[name]</td></td><td>$apt[phone]</td><td>$apt[phone2]</td><td>$apt[src]</td><td>$apt[coach]</td><td>$apt[comments]</td><td>";
    if($aptid != ''){
        echo "<a href='index.php?date=$date&apptid=$aptid&action=delete'>Delete</a> &nbsp; <a href='index.php?date=$date&apptid=$aptid&action=x'>X</a> &nbsp; <a href='index.php?date=$date&apptid=$aptid&action=ns'>NS</a>";
    }
    echo "</td></tr>";
}

EG:上午 9 点设置了 2 个约会,它只显示第一个。看截图

在此处输入图像描述

4

2 回答 2

5

修改为

$query = mysql_query("SELECT * FROM times", $db);
while ($row = mysql_fetch_array($query)){
    $time = $row[time];
    $query2 = mysql_query("SELECT * FROM appts WHERE time = '$time' AND date = '$date' ", $db);

    while($apt = mysql_fetch_array($query2))
   {
    $aptid = $apt[id];
    echo "<tr><td>";
    echo date('h:i A', strtotime($row[time]));
    echo "</td><td>$apt[name]</td></td><td>$apt[phone]</td><td>$apt[phone2]</td><td>$apt[src]</td><td>$apt[coach]</td><td>$apt[comments]</td><td>";
    if($aptid != ''){
        echo "<a href='index.php?date=$date&apptid=$aptid&action=delete'>Delete</a> &nbsp; <a href='index.php?date=$date&apptid=$aptid&action=x'>X</a> &nbsp; <a href='index.php?date=$date&apptid=$aptid&action=ns'>NS</a>";
    }
    echo "</td></tr>";
 }
}

你必须在里面运行另一个嵌套循环。

于 2013-06-24T15:07:11.257 回答
0

mysql_fetch_array 只会获取一行数据。从 php 手册:

mysql_fetch_array — 以关联数组、数值数组或两者的形式获取结果行

这意味着您需要循环获取多个约会,就像第一个循环一样:

while($apt = mysql_fetch_array($query2)) {
    $aptid = $apt[id];
    echo "<tr><td>";
    echo date('h:i A', strtotime($row[time]));
    echo "</td><td>$apt[name]</td></td><td>$apt[phone]</td><td>$apt[phone2]</td><td>$apt[src]</td><td>$apt[coach]</td><td>$apt[comments]</td><td>";
    if($aptid != ''){
        echo "<a href='index.php?date=$date&apptid=$aptid&action=delete'>Delete</a> &nbsp; <a href='index.php?date=$date&apptid=$aptid&action=x'>X</a> &nbsp; <a href='index.php?date=$date&apptid=$aptid&action=ns'>NS</a>";
    }
    echo "</td></tr>";
}
于 2013-06-24T15:05:10.837 回答