FullText Search Only geeft 1 resultaat weer

Ik voer resultaten uit voor een zoekopdracht, maar om een ​​of andere reden wordt er niet meer dan één resultaat weergegeven. Het kan zijn, want ik ben moe, maar iemand ziet de fout die ik aan het maken ben?

Alles wat ik wil is dat het doet, is het zoeken in mijn database met het ingevoerde woord uit de zoekbalk en alle overeenkomsten vinden of overeenkomsten sluiten van de invoer.

Mis ik iets?

$search = $_POST['search'];

// We preform a bit of filtering 

$filtered = mysql_real_escape_string($search);

//Select what add to look for.
$ad_type = $_POST[''];

 //Now we search for our search term, in the field the user specified 
 $sql = "SELECT * FROM busadverts WHERE MATCH(advert_name, advert_description, advert_tags) AGAINST('". $filtered ."  IN BOOLEAN MODE')"; 

 $result = mysql_Query($sql) or die(mysql_error());
//And we display the results 

 while($row = mysql_fetch_array( $result )) 
 { 

 $adname = $row['advert_name'];
 $adimage = $row['advert_image'];
 $addesc = $row['advert_description'];
 $adurl = $row['advert_url'];

 $searchresult .= "<div style='width: 800px; height: 200px;'>
<div class='titleBar' style='text-align: center; background: #000; color: #fff;'>"
. $adname . "
</div>
<div class='advertimage' style='width: 150px; height: 150px; float: left; background: #111;text-align: center;'> 
 
</div>
<div class='advertdescription' style='width: 635px; height: 150px; float: left;  background: #222;color: #fff; padding-left: 15px;'>Description: 
" . $addesc ."

Website link: " . $adurl . " </div> </div>"; } //This counts the number or results - and if there wasn't any it gives them a little message explaining that $anymatches=mysql_num_rows($result); if ($anymatches == 0) { echo "Sorry, but we can not find an entry to match your query

"; } mysql_free_result($result); //And we remind them what they searched for echo "Results: " .$search. "" ; echo $searchresult;

Bij voorbaat dank.

1
Ik kan niets vinden dat niet klopt. Weet je zeker dat er meer dan één overeenkomende rij is? Waar start u $ zoekresultaat ? Misschien moet je dat buiten de while-lus doen?
toegevoegd de auteur The Jonas Persson, de bron
Hoeveel rijen bevinden zich in de tabel waarnaar u op zoek bent? Als het een laag getal is, kan het zijn dat "het woord in ten minste 50% van de berichten voorkomt, dus kunt u het weggooien als een gewoon woord" probleem met de volledige tekst?
toegevoegd de auteur Nick, de bron
Ook opgemerkt, het trekt niet alles uit, bijvoorbeeld "test" lijkt te trekken Testing of Test of test, maar als ik "Test" als zoekterm zou gebruiken, dan geeft het alleen items met hoofdletters weer, want dit zou het het beste zijn om gewoon alle zoekopdrachten strttolowen?
toegevoegd de auteur Kyle Holmes, de bron
Ik heb 2 rijen met Swindon, in de beschrijving of titel, een die "Swindon" zegt en de andere die "swindon" zegt, maar er zal er maar één worden getoond.
toegevoegd de auteur Kyle Holmes, de bron
De code staat ook in een functie en wordt uitgevoerd naar de pagina met de naam. <? PHP include "includes/common.php"; zoek advertenties(""); ?>
toegevoegd de auteur Kyle Holmes, de bron
Ahh het produceert meer dan één, maar ze moeten hetzelfde zijn, het zal niet meerdere typen selecteren, bijvoorbeeld de test moet een test zijn en de test moet een test zijn. Eventuele ideeën over hoe dit te maken, zodat ik kan werken met alle verschillende soorten typen van het geselecteerde woord?
toegevoegd de auteur Kyle Holmes, de bron

1 antwoord

Als u wilt zoeken tegen alles met het woord test , moet u * gebruiken als jokerteken

$sql = "SELECT * FROM busadverts WHERE MATCH(advert_name, advert_description, advert_tags) AGAINST('*". $filtered ."*'  IN BOOLEAN MODE)"; 

Het lijkt erop dat uw ' apostrof in de Tegen -sectie uit was.

0
toegevoegd