Soms laat mysql fulltext search geen resultaten zien, wanneer dat wel zou moeten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Steven Hoogervorst

Steven Hoogervorst

07/10/2014 15:13:08
Quote Anchor link
Mijn MySQL database table bevat 2510 records. Wanneer ik een string in een kolom probeer te zoeken, gebruikmakende van fulltext search, krijg ik dan soms geen enkel resultaat. Alleen een lege html tabel.

Ik zoek bijvoorbeeld naar de auteur 'Peter Schmidt'. Als ik zoek op 'Peter', krijg ik de juiste auteur te zien, maar als ik zoek op 'Schmidt', laat de html tabel de andere auteurs zien met die naam, maar niet de juiste. De auteurs kolom bestaat uit 'achternaam, naam' (Schmidt, Peter).

Dit is een stukje van mijn code:

$author = mysql_real_escape_string($_GET['author']);
$sql = "SELECT * FROM books WHERE MATCH(author) AGAINST ('$author' IN BOOLEAN MODE)";
$query = mysql_query($sql);
if (!$query) {
echo 'We cannot find the author you are searching for. Please try again.';
echo '<a href="'.$_SERVER['PHP_SELF'].'" class="back" style="margin:0;" title="Go back">&raquo; Go back</a>';

} else {
echo '<p>These authors match your query:</p><table>'
while ($result = mysql_fetch_array($query)) {
echo '<tr><td>'.$result['author'].'</td></tr>';
}
echo '</table>'
}

Wat veroorzaakt dit probleem?
Alvast bedankt voor de hulp!
Gewijzigd op 07/10/2014 15:20:54 door Steven Hoogervorst
 
PHP hulp

PHP hulp

25/12/2024 20:37:14
 
- SanThe -

- SanThe -

07/10/2014 15:21:42
Quote Anchor link
Als je 'We cannot find the author you are searching for. Please try again.' te zien krijgt kan het ook zijn dat de query is misliukt. Bouw dus eerst eens nette foutafhandeling in.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/10/2014 15:27:41
Quote Anchor link
Kun je hier niet beter %LIKE% gebruiken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT veldnaam FROM tabel WHERE inhoud LIKE '%zoekterm%'
 
Steven Hoogervorst

Steven Hoogervorst

07/10/2014 15:28:47
Quote Anchor link
Wanneer ik de like operator gebruik, maakt dit helaas geen verschil.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/10/2014 15:52:14
Quote Anchor link
Waar zoek je dan op? Gebruik je meerdere woorden?
 
Steven Hoogervorst

Steven Hoogervorst

07/10/2014 15:57:10
Quote Anchor link
Ik zoek op iedere auteur die in de database staat. Het vreemde is dat de juiste auteur soms wel en soms niet wordt getoond.

Toevoeging op 07/10/2014 20:49:08:

Het is gelukt. De database had een verkeerde karakterset, waardoor sommige kolommen over het hoofd werden gezien.
Deze code heb ik bovenaan toegevoegd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
                mb_internal_encoding("UTF-8");
        mysql_query("SET character_set_client = utf8;");
        mysql_query("SET character_set_results = utf8;");
        mysql_query("SET collation_connection = utf8_general_ci;");
?>
Gewijzigd op 07/10/2014 20:49:52 door Steven Hoogervorst
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.