我有这种奇怪的情况,我第一次遇到这种情况,并且我在PHP中的新状态更令人困惑。在下面的查询中,“ask by”一词重复的次数超过了它应该的次数。它重复的次数与我猜不会显示多少条目有关。
代码:
$sql = "SELECT DISTINCT
allowed_permissions.post_id,
client_visit.client_reason,
accounts.full_name,
client_visit.type
from allowed_permissions
LEFT JOIN
client_visit
on allowed_permissions.post_id = client_visit.visit_id
LEFT JOIN
accounts
ON client_visit.system_id = accounts.system_id
where
allowed_permissions.allowed_to_view = '$uid'";
$result = mysql_query($sql);
$query = mysql_query($sql) or die ("Error: ".mysql_error());
if ($result == "") {
echo "";
}
echo "";
$rows = mysql_num_rows($result);
if($rows == 0) {
} elseif($rows > 0) {
while($row = mysql_fetch_assoc($query)) {
$reason = $row['client_reason'];
$person = $row['full_name'];
//Here the asked word gets repeated...
echo"$reason asked by $person";
}
}
答案 0 :(得分:1)
令人惊讶的是,只有"问"正在重复......""似乎更有可能。你得到了一堆不包含$ reason或$ person的行,所以PHP打印出文字文本并省略变量。如果是这样的话,你可以通过做这样的事情来解决这个问题:
if ( ! empty( $reason ) && ! empty( $person ) ) {
echo $reason . ' asked by ' . $person;
}
如果修复它,您仍应该处理查询中的更大问题。它显然不太对劲。没有更多的背景,很难说你应该如何解决它。我猜你需要抛弃DISTINCT并实现GROUP BY子句。