2012-12-07 54 views
1
$search_exploded = explode (" ", $search); 
foreach($search_exploded as $search_each){ 
    $x++; 
    if($x==1) 
     $construct .="concat_ws(Name, Summary, Description, OpeningHours, Address, Postcode, Keywords) LIKE '%$search_each%' "; 
    else 
     $construct .="AND concat_ws(Name, Summary, Description, OpeningHours, Address, Postcode, Keywords) LIKE '%$search_each%' "; 
} 

$construct ="SELECT * FROM Rating, Attraction WHERE $construct" ; 
$run = mysql_query($construct); 
$foundnum = mysql_num_rows($run); 

if ($foundnum==0) 
    echo "Sorry, there are no matching result for '$search'" ; 
else 
{ 
    echo ""; 
    while($row = mysql_fetch_assoc($run)){ 
     echo '<a href="details.php?ID=' . $row['AttractionID'] . '"><img class="attractionimg" src="'. $row['ImageUrl'] . '" height="160" width="210" /></a>'; 
     echo '<div class="a-textcontain">'; 
     echo '<h2><a href="details.php?ID=' . $row['AttractionID'] . '">' . $row['Name'] . '</a></h2>'; 
     echo '<p class="a-text">' . $row['Summary'] . '</p>'; 
     echo '</div>'; 
     echo '<img class="rating" src="'. $row['RatingUrl'] . '" height="25" width="140" alt="Rating"/>'; 
     echo '<div class="aborderline"></div>'; 
     break; 
    } 
} 

我在我的數據庫12行數據時,重複結果。當我搜索它正常工作,但重複每個搜索結果12次。我曾嘗試過'休息';在像你可以看到上面但這然後限制搜索只有一個結果...PHP - 使用搜索欄

任何人有任何想法?


$ construct =「SELECT Attraction。*,Type.TypeName,Rating.RatingUrl」;

$ construct。=「FROM Attraction」;

$ construct。=「INNER JOIN Type ON Attraction.Type = Type.TypeID」;

$ construct。=「INNER JOIN Rating ON Attraction.AttractionID = Rating.AttractionID」;

$ construct。=「WHERE Attraction = $ construct」;

+0

你可以刪除所有這些無關的空白行,以便整個事情一次適合一個屏幕? – deceze

回答

1
SELECT * FROM Rating, Attraction 

你做其中的Rating每行接合到Attraction每一行,結果乘以一個多表查詢。你將需要一個帶有特定連接條件的LEFT JOIN查詢,或者其他可能的東西,具體取決於意圖是什麼。

請參閱http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html,http://dev.mysql.com/doc/refman/5.1/en/join.html

+0

我認爲這是做的,但我不能寫的WHERE $構造查詢,我有這樣的,它不工作 –

+1

...?這是否意味着您不知道如何應用此解決方案? – deceze

+0

對不起,我已經把編輯過的帖子放進了我不能用WHERE和$構造查詢構造的代碼中,非常感謝您的幫助! –