3
Volltextsuche in MySQL über mehrere Spalten einer Tabelle 1. In MySQL muss (über den PHPMyAdmin) ein Fulltext-Index angelegt werden: Beispiel: Die Tabelle heißt Produkte, und es soll in den drei Spalten produktname, familie und beschreibung gesucht werden) ALTER TABLE `PRODUKTE` ADD FULLTEXT ( produktname, familie, beschreibung ) Dann sind in der Strukturansicht die folgenden Indizes zu sehen: Jetzt kann mit dem Befehl: SELECT * FROM produkte WHERE MATCH ( produktname, familie, beschreibung) AGAINST ( 'Azaleen') gesucht werden. Gefunden werden in allen drei Spalten die Datensätze, in denen Azaleen vorkommt. SELECT produktname, familie, beschreibung, match (produktname, familie, beschreibung against ('Azaleen') as score FROM produkte WHERE MATCH (produktname, familie, beschreibung) AGAINST ( 'Azaleen'); 1

Volltextsuche in MySQL über mehrere Spalten einer Tabelle · Volltextsuche in MySQL über mehrere Spalten einer Tabelle 1. ... Übertragung in PHP: Im Menü gibt es den Link zum

Embed Size (px)

Citation preview

V o l l t e x t s u c h e i n M y S Q L ü b e r m e h r e r e S p a l t e n e i n e r T a b e l l e

1. In MySQL muss (über den PHPMyAdmin) ein Fulltext-Index angelegt werden: Beispiel: Die Tabelle heißt Produkte, und es soll in den drei Spalten produktname, familie und beschreibung gesucht werden) ALTER TABLE `PRODUKTE` ADD FULLTEXT ( produktname, familie, beschreibung ) Dann sind in der Strukturansicht die folgenden Indizes zu sehen:

Jetzt kann mit dem Befehl: SELECT * FROM produkte WHERE MATCH ( produktname, familie, beschreibung) AGAINST ( 'Azaleen') gesucht werden. Gefunden werden in allen drei Spalten die Datensätze, in denen Azaleen vorkommt.

SELECT produktname, familie, beschreibung, match (produktname, familie, beschreibung against ('Azaleen') as score FROM produkte WHERE MATCH (produktname, familie, beschreibung) AGAINST ( 'Azaleen');

1

V o l l t e x t s u c h e i n M y S Q L ü b e r m e h r e r e S p a l t e n e i n e r T a b e l l e

Übertragung in PHP: Im Menü gibt es den Link zum Formular: <tr height="30">

<td><a href="such_form.php">Suche</a> </td>

</tr>

Die Datei such_form.php enthält als Code: <!--such_form.php--> <html><head> <link rel="stylesheet" href="standard.css" type="text/css"> <title>Neue Artikel</title> </head> <body> <h2 align="center">Suche</h2> <form action="vollsuch.php" method="post" > <table align="center" width=400> <tr> <td width="200"> Suchbegriff:</td> <td heigth="200"> <input type="Text" name="such" size="30" </td></tr> <tr><td> <input type="Submit" name="Suchen" value="such"></td></tr> </table></form></body></html>

In der Form action-Zeile wird vollsuch.php aufgerufen:

</head> <?php $verbindung = mysql_connect("localhost","root","taw"); mysql_select_db("new") or die ("Die Datenbank existiert nicht"); echo "Das Suchergebnis ist:<br><br>"; $erg = mysql_query("select * from produkte where match( produktname, familie, beschreibung) against( '$such')"); while ($row=mysql_fetch_array($erg)){ echo $row["produktname"]." "; echo $row["familie"]." "; echo $row["beschreibung"] ."<br>"; }

2

V o l l t e x t s u c h e i n M y S Q L ü b e r m e h r e r e S p a l t e n e i n e r T a b e l l e

?> <a href="back_0.php">Zurück zum Menü</a> </body> </html>

3