0

我有下面的代码,它运行良好。但是,我仅限于搜索两行。我想再搜索两行(共 4 行)。我已经尝试了几种技术,但我无法让它发挥作用。有时我会得到重复的结果。

<?php

$term = $_POST['term'];

$connect = new mysqli("localhost", "root", "hala3ammi", "phprealty");

$sql = "
 SELECT phprealty_property.*, phprealty_prop_img.p_id, phprealty_prop_img.fn
 FROM phprealty_property
 INNER JOIN phprealty_prop_img
 ON phprealty_property.id = phprealty_prop_img.p_id 
 WHERE phprealty_prop_img.def='1' 
 AND (phprealty_property.title like '%$term%'
 OR phprealty_property.full_desc like '%$term%')";

$query = mysqli_query($connect, $sql) or die (mysqli_error());

$result = mysqli_query($connect, $sql);

$found = mysqli_num_rows($result);

echo '<br/> Search result(s): '.$found;

while ($row = mysqli_fetch_array($result)){
$img = $row["fn"];
$thumb = 'th_' . $img;
$duh = '<img src="../falcon/listImgs/' . $thumb . '" />';
echo '<br/> Title: '.$row['title'];
echo '<br/> Price: '.$row['price'];
echo '<br/> Type: '.$row['type'];
echo '<br/> Image: '.$duh;
echo '<br/> Full Desc: '.$row['full_desc'];
echo '<br/><br/>';
}
?>

数据库:

房地产

我要搜索的表:

phprealty_property

INNER 连接用于从下表中检索默认缩略图。

phprealty_prop_img

WHERE phprealty_prop_img.def='1'

先感谢您。

4

1 回答 1

1

我认为您可能获得看似重复的结果的原因是您的内部连接。如果您在 phprealty_prop_img 中有 n 行对应于 phprealty_property 中的单个属性列表(即 phprealty_prop_img 中的 n 行具有相同的值 p_id),那么您将获得查询返回的 n 行,每行都具有从 phprealty_property 中提取的相同信息,并且仅在 phprealty_prop_img.fn 中有所不同。任务查看 W3C 站点http://www.w3schools.com/sql/sql_join_inner.asp上给出的内部连接示例

至于通过 phprealty_property.city & phprealty_property.short_desc 搜索,我不明白这个问题。为什么你不能把这些添加到这个最后的 OR 子句中?

AND (phprealty_property.title like '%$term%' 
      OR phprealty_property.full_desc like '%$term%' 
      OR phprealty_property.city LIKE '%$city%'
      OR phprealty_property.short_desc LIKE '%$term%')
于 2012-11-17T11:00:24.527 回答