Volltextsuche auf Webseite für MySQL Tabelle

OldTrainee

Grünschnabel
Hallo liebe Community,

auf der suche nach einer einfachen Anleitung für eine Volltextsuche bin ich über Google auf eure Seite gekommen.
Ich will das Rad nicht neu erfinden, aber derzeit habe ich noch keine Erkläruung gefunden wie soetwas arbeitet bzw. wie der Code aussehen soll damit dies auch die Ergebnisse ausgibt.

Ich habe ein Lexikon dass mir die Artikel in der Datenbank speichert.
Auf der Startseite möchte ich eine Suchfunktion hinzufügen die wie bei Wiki bei Eingabe Artikelnamen ausgibt und wenn man darauf klickt dich zu dem jeweiligen Artikel weiterleitet.
Ich bin in Sachen php und mySQL voll der Anfänger und bitte euch nicht mich gleich zu köpfen.
Trotzdem hoffe ich bei euch Hilfe zu bekommen und mein vorhaben mit Hilfe von euch umzusetzten.

Was für Info werden von mir benötigt?

Wie soll das Sucheingabefeld aussehen?

lg
OldTrainee
 
Dafür gibt es in MySQL die LIKE Syntax.
Mit der kannst du Volltextsuchen durchführen.


Danke für den Hinweis, das habe ich auch schon des öfterne gelesen.
Ich habe auch schon geschrieben dass ich der absolute Newbie bin in diesem Gebiet und davon noch keine Ahnung habe.

Ich habe auch schon gegoogelt um darüber Informationen zu erhalten aber nichts brauchbares gefunden.

Aber ich denke mit diesen Thread auch andere helfen zu können.

Was ist mein erster Schritt:

Ich habe schon einmal einen Eingabefunktion erstellt für die Suche, jedoch wie aktiviere ich die Suche damit er mir auf die Datenbank X Spalte Y zugreift?
...oder gibt es da schon was fertiges?
 
Ich habe auch schon gegoogelt um darüber Informationen zu erhalten aber nichts brauchbares gefunden.
Kann nicht sein.
Bei der suche nach "mysql like syntax" bringt bereits das 3. Ergebnis sehr brauchbare Informationen.
Auch hier im Forum ist das öfter besprochen worden.
Und es gibt mit Sicherheit ein paar Tutorials in der Tutorials-Sektion.
Ich habe schon einmal einen Eingabefunktion erstellt für die Suche, jedoch wie aktiviere ich die Suche damit er mir auf die Datenbank X Spalte Y zugreift?
...oder gibt es da schon was fertiges?
Wie gesagt eine Abfrage mit LIKE Syntax....
Schonmal das MySQL Manual in die Finger bekommen?
http://dev.mysql.com/doc/refman/5.1/de/index.html
 
Was ist mein erster Schritt:
Wenigstens mal versuchen zu verstehen was man so ergoogelt.


1. Das Such Formular
HTML:
<form method="post" action="meineSuche.php">
<input type="text" name="suchwort">
<input type="submit" name="submit" value="Suchen">
</form>

2. meineSuche.php empfängt die Formulardaten ( per POST request )
PHP:
<?php
if (isset($_POST['submit'])){
$suchwort = $_POST['suchwort'];

3. MySql verbindung herstellen ... Datenbank wählen ... Query festlegen
PHP:
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

$db_selected = mysql_select_db('mysql_database', $link);
if (!$db_selected) {
    die ('Can\'t use mysql_database : ' . mysql_error());
}

$queryString = "Select column1,column2 from table where columnX like '%" . mysql_real_escape_string($suchwort) . "%'";

$result = mysql_query($query);

4. Ergebnis verarbeiten
PHP:
if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found.";
    exit;
}

while ($row = mysql_fetch_assoc($result)) {
    echo $row["column1"];
    echo $row["column2"];
}

5. Die schliessende Klammer von ( if (isset($_POST['submit'])){ ) nicht vergessen :p
PHP:
}

Hoffe mal es hat sich kein Fehlerteufel eingeschlichen.
 
mh jetzt nimmst du ihm den selbstlerneffekt

Im Prinzip hast du Recht. Aber wenn jemand bei einem solchen Allerwelts Problem über Google nichts findet dann ist mMn schon etwas mehr Hilfe erforderlich als nur ein Link.

Es bleibt die Hoffnung das er sich darüber Gedanken macht und nicht einfach alles Hirnlos abschreibt.
 
Naja aber dafür gäbe es ja die Tutorials auf dieser seite ich hab nur das Gefühl immer mehr Leute fragen lieber erst bevor sie sich selbst die Mühe machen....
Ich mein ich helf ja auch gern aber wenn man jedem erst die Grundlagen beibringen muss die wir uns selbst erarbeiteten dann ist das doch etwas frustrierend...
 
mh jetzt nimmst du ihm den selbstlerneffekt
Naja, so will ich das nicht sagen.
Ich will ja versuchen das ganze zu verstehen und habe auch schon sehr viel gelesen davon.....aber wenn man mit den ganzen Begriffen am Anfrang nichts anfangt dann braucht man eben mehr Unterstützung.

....und ich finde es hier sehr gut, da lebt wirklich noch der Geist User helfen User wie auf der Startseite steht!


Wenigstens mal versuchen zu verstehen was man so ergoogelt.


1. Das Such Formular
HTML:
<form method="post" action="meineSuche.php">
<input type="text" name="suchwort">
<input type="submit" name="submit" value="Suchen">
</form>

2. meineSuche.php empfängt die Formulardaten ( per POST request )
PHP:
<?php
if (isset($_POST['submit'])){
$suchwort = $_POST['suchwort'];
Hallo zunächst einmal danke für deine Hilfestellung, man kann viel lesen und es trotzdem nicht verstehen. (davon bin ich einer)
Wenn ich dann so eine Hilfe bekommt und es selbst durch mache verstehe ich es viel besser.

So weiss ich nun jetzt, dass post und action das Formular zu gewählten seite leitet um die Abfrage zu starten.
Es wird auch definiert das "suchwort" für die Datenbank abfrage verwendet wird.

3. MySql verbindung herstellen ... Datenbank wählen ... Query festlegen
PHP:
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

$db_selected = mysql_select_db('mysql_database', $link);
if (!$db_selected) {
    die ('Can\'t use mysql_database : ' . mysql_error());
}

$queryString = "Select column1,column2 from table where columnX like '%" . mysql_real_escape_string($suchwort) . "%'";

$result = mysql_query($query);

Jetzt gehts zur Datenbankverbindung und da ich hier keine Fehler machen möchte, werde ich hier mal besser Nachfragen.
'mysql_host' = Die Webseite wo die Datenbank liegt - soll man hier mysql_host stehen lassen oder localhost eintragen?
'mysql_user' = User um sich in die Datenbank einzuloggen
'mysql_password' = Dazugehörige Passwort zum User
'mysql_database' = Die Datenbank in der gesucht werden soll

ist dies so richtig?
 
Zurück