Tutorial: Suchmaschine?

hallo experten,
ich bin gerade dabei, eine simple adressdatenbank (für den privaten zweck) zu programmieren. dazu hätte ich gerne eine kleine suchmaschine, mit der ich nach namen, strasse, plz, ort, telefon und email suchen kann. im i-net habe ich leider nichts gescheites gefunden, habt ihr vielleicht irgendwann mal irgendwo ein tutorial gefunden/geschrieben?
grüße,
meteor
 
die frage ist meines erachtens nicht das suchen, sondern wie speicherst du das ganze ab. anhand von dieser antwort kannst du dir erst gedanken machen, wie kann ich diese informationen durchsuchen und filtern
 
Falls Du es mit einer Datei machst könnte das ganze so aussehen!

PHP:
$found=0;
$file=file($db_datei);  // hier wird die Datei in ein Array eingelesen
for($i=0;$i<count($file);$i++) // Die Schleife läuft so lange kein Eintrag mehr vorhanden
{
    $array=explode("|x|", $file[$i]); // hier wird der Eintrag zerlegt der vorher gespeichert 
wurde
    $index=searchKat($wahl); // in diesem fall wird nach einer Kategorie gesucht 
Könnte man auch durch eine zweite Schleife ersetzen
    if(eregi($sString,$array[$index])) // hier wird das gesuchte mit dem Eintrag verglichen
             $found++; 
      
 }

Mit einer Datenbank ist halt leichter!

select * from $table where Name = $Such_Name;
 
Mit MySQL ist es dann nicht mehr schwer!

PHP:
db_anbindung("DB_Name");  // eine Funktion die mich mit dem MySQL-Server verbindet

$table="Adressen"; // Tabellenname

$sql = "select * from $table where $Such_Name = Name;"; // der SQL befehl

$rs=mysql_query($sql) or die("Fehler: <b>".mysql_error()."</b>"); // Befehl ausführen oder Error ausgeben

while($treffer = mysql_fetch_row($rs)) // solange übereinstimmende Einträge vorhanden sind
{
// Hier erfolgt dann die Ausgabe
}
 
Vielen Dank, ich werde es dann mal ausprobieren ;-)

Edit: Ich habs eben mal ausprobiert, aber irgendwie fehlt mir da etwas. Kann es sein, dass ich noch ein Suchformular erstellen muss? ?( Tschuldigung, aber ich befasse mich leider erst seit kurzem mit php. :-)
 
Du musst die Datenbank haben und Du brauchst natürlich auch ein Formular in welches Du den Namen der Person einträgst.
Der Codeschnippsel ist nur als Beispiel gedacht, den bei dem Beispiel könnte man nur nach dem Namen suchen.

Beispiel für ein Formular:
Code:
<form method="post" action="./search.php">
<table>
<tr><td>Was Suchen Sie: </td><td><input type="text" name="Such_Name"></td></tr>
<tr><td colspan="2"><input type="submit" value="Suchen" name="search"></td></tr>
</table>
</form>
 
Vielen Dank, ich werde es heute abend mal versuchen =)

Edit:
Hab mal etwas am Schnipsel verändert, weil es nicht gefunzt hat. Geht aber jetzt leider auch nicht:

suche.html:
PHP:
<html>
<head>
<title>Suchmaschine</title>
</head>
<form method="post" action="search.php">
<table>
<tr><td>Was Suchen Sie: </td><td><input type="text" name="name"></td></tr>
<tr><td colspan="2"><input type="submit" value="Suchen" name="search"></td></tr>
</table>
</form>
</html>


search.php:
PHP:
<?php
include('daten.inc.php');
$table='kontakte'; // Tabellenname

$sql = 'select * from $table where $name = Name;'; // der SQL befehl

$rs=mysql_query($sql) or die('Fehler: <b>'.mysql_error().'</b>'); // Befehl ausführen oder Error ausgeben

while($treffer = mysql_fetch_row($rs)) // solange übereinstimmende Einträge vorhanden sind
{
// Hier erfolgt dann die Ausgabe
}
?>

Die Fehlermeldung: Fehler: Table 'phpmycontacts.$table' doesn't exist
?( ?( ?(
 
änder
PHP:
'select * from $table where $name = Name;'
in
PHP:
"select * from $table where $name = Name;"

"$lala" wird esetzt aber '$lala' wird nicht ersetzt!

kannst natürlich auch 'sadadsads'.$lala.'sdasdasd'; schreiben, dann klappt das auch ;)
 
Original von Vigour
...
PHP:
"select * from $table where $name = Name;"
...

und da gibts noch ein fehler. die hochkommas fuer den namen (wird ja sicherlich ein string sein) fehlen.

PHP:
"select * from $table where '$name' = Name;"


btw: $name wird ja sicher eine usereingabe sein --> also bitte ueberpruefen auf 'schaedliche' zeichen!!!!
 
Danke, ein Fehler ist beseitigt. Nun bekomme ich folgenden Error in search.php:
Parse error: parse error in C:\Programme\xampp\htdocs\phpmycontacts\search.php on line 7. Irgendwas scheint da aber schief zu gehen :(
 
Ich würde bei so einer suchabfrage nich $name = name verwenden sonndern name LIKE $name.
Zudem kann man bei größeren Datenmengen sein Soundex einfügen was sehr hilfreich ist.
 
Zurück
Oben