DB durchsuchen

noFreakman

Mitglied
hallo,
ich habe bestimmte daten wie PLZ Name strasse usw. in eine sql datenbank eingetragen. jetzt möchte ich diese gerne über ein suchfeld durchsuchen. und alle dazugehörigen Datnsätze ausgelesen haben .

Ich habe nur keinen plan wie das geht hat jemand nen codeschnippsel für mich. Damit könnte ich jenachdem was anfangen... :)


gruß

noFreakman
 
Hi
Du setzt in deine normale Abfrage einach ein where ein:
PHP:
 $sql = "SELECT
							 PLZ,
			  FROM
							 tabelle
			  WHERE PLZ = '".$GET['plz']."'
							 ";
mysql_query($sql);

Gruß Benny
 
[phpf]mysql_query[/phpf]
[phpf]mysql_fetch_assoc[/phpf]
Code:
SELECT * FROM Tabelle WHERE
name LIKE '%suchbegriffName%'
AND plz LIKE 'suchbegriffPlz%'
AND ...
EDIT: % entspricht dem * in der Windowsdateisuche
 
sry aber ich schnalle es net... :confused:

ich ahbe eine suche.php datei wie folgt:
PHP:
<form name="form1" method="post" action="plz_suche.php">
  <div align="center">
    <input name="plz" type="text" size="5" maxlength="5">
    <input type="submit" name="Submit" value="suchen">
  </div>
</form>

dann habe ich eine plz_suche.sql datei:

Code:
CREATE TABLE `plz_ssuche` (
`plz` VARCHAR( 5 ) NOT NULL ,
`vorname` VARCHAR( 222 ) NOT NULL ,
`nachname` VARCHAR( 222 ) NOT NULL ,
`firma` VARCHAR( 222 ) NOT NULL ,
`strasse` VARCHAR( 222 ) NOT NULL ,
`ort` VARCHAR( 222 ) NOT NULL
);

und jetzt habe ich eine leere plz_suche.php Datei. was muss dort hinein um das bei einer eingabe von 5 stellen Postleitzahl die entsprechende ausgabe erfolgt.
 
Also ich habe jetzt folgendes:

PHP:
<?
$verbindung = mysql_connect("localhost", "root" , "")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("exmulo") or die ("Datenbank konnte nicht ausgewählt werden");

$sql = "SELECT plz, FROM  plz_ssuche

              WHERE plz = '".$GET['plz']."' ";
			  
mysql_query($sql); 

?>

ich habe nun mal einen datensatz eingetragen damit iches auch testen kann nur er gibt mir nichts aus. Was muss noch dazu damit auf die entsprechenden daten ausgegeben werden?

Gruß
noFreakman
 
PHP:
$result = mysql_querry($sql);
while($row = mysql_fetch_assoc($result)){
echo $row['plz']."<br>";
}
 
Du hast nun das Query ausgeführt.
Das sieht soweit ganz gut aus.
Ein Paar Fehler sind allerdings dabei:
1. Ist das Komma hinter plz falsch. Es dient dem trennen von mehreren Feldern, wenn Du mehrere auf einmal ausliest, aber nicht dem Abschluss.
Also: SELECT plz,name FROM ... oder SELECT plz FROM ...
2. Heißt die Variable nicht $GET, sondern $_GET.

Nun geht es weiter:
[phpf]mysql_query[/phpf] liefert Dir eine sog. Ressourcen-ID. Diese benötigst Du, um die Ergebnisse des Querys zeilenweise auszulesen. Also mußt Du sie Dir merken:
$result = mysql_query(...);
Dann musst Du das Ergebnis zeilenweise auslesen.
Dazu bietet PHP die Funktion [phpf]mysql_fetch_array[/phpf], [phpf]mysql_fetch_row[/phpf], [phpf]mysql_fetch_assoc[/phpf] und [phpf]mysql_fetch_object[/phpf]. Ich verwende immer, wie auch im Folgenden, [phpf]mysql_fetch_assoc[/phpf].
Die Funktion gibt Dir ein assoziatives Array zurück. Schlüssel des Arrays sind die Feldnamen und im Arrayelement steht der jeweilige Wert. Bietet das Ergebnis keine weitere Zeile mehr, gibt die Funktion false zurück. Das PHP zugewiesene Werte als boolean auswerten kann macht man sich hier zunutze, indem man das Ergebnis im Schleifenkopf einer While-Schleife einer Variablen zuweist. In der Schleife steht in dieser Variablen dann das angesprochene Zeilenarray zur Verfügung.

Daraus ergibt sich dann dieser Code:
PHP:
<?
$verbindung = mysql_connect("localhost", "root" , "")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("exmulo") or die ("Datenbank konnte nicht ausgewählt werden");

$sql = "SELECT plz FROM  plz_ssuche
    WHERE plz = '".$_GET['plz']."' ";
              
$result=mysql_query($sql);

while ($row=mysql_fetch_assoc($result)) {
    echo $row['plz']."<br>";
}
?>

Gruß hpvw
 
Dann schreibe mal folgendes:
PHP:
<?
$verbindung = mysql_connect("localhost", "root" , "")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("exmulo") or die ("Datenbank konnte nicht ausgewählt werden");

$sql = "SELECT plz FROM  plz_ssuche
    WHERE plz = '".$_GET['plz']."' ";
              
$result=mysql_query($sql) or die(mysql_error());
echo mysql_num_rows($result);
while ($row=mysql_fetch_assoc($result)) {
    echo $row['plz']."<br>";
}
?>
Entweder erhältst Du dann eine Fehlermeldung, die Dir Hinweise gibt, ob etwas mit dem Query nicht stimmt oder Du erhältst als Ausgabe 0, was bedeuten würde, dass Dein Suchkriterium auf keinen Datensatz in der Tabelle zutrifft.

Gruß hpvw
 
Zurück