Suche in einer Datenbank

Dommas

Erfahrenes Mitglied
Hallo Leute

Ich habe das Tutorial "Suche in einer Datenbank" zwar gesehen, es hilft mir aber nicht weiter. Ich habe folgendes Problem:
Es existiert eine DB mit ca. 500 Einträgen, 5 Felder. Auf meiner Website muss es nun möglich sein, einzelne Einträge der DB zu suchen. Folgendermassen habe ich das gemacht (sorry, ziemlich primitiv):
PHP:
<?php
	
	//Datenbankvariablen

	$host = "localhost";
	$user = "xxx";
	$password = "xxx";
	$database = "xxx";
	$tabelle ="tscb2";
	
	//Variablen aus dem Formular übernehmen 

	$Nachname = $_GET['Nachname'];
	$Vorname = $_GET['Vorname'];
	$Adresse = $_GET['Adresse'];
	$PLZ = $_GET['PLZ'];
	$Ort = $_GET['Ort'];
	
	//Ausgabe aus DB

	$db = mysql_connect ($host, $user, $password);
    mysql_select_db($database);

    $sql = "SELECT * FROM $tabelle WHERE Nachname = '$Nachname' AND Vorname = '$Vorname' ORDER BY Nr";
	$result = mysql_query($sql,$db);
	while ($row = mysql_fetch_array($result)) { 

	$Nr = $row['Nr']; 
	$Nachname = $row['Nachname']; 
	$Vorname = $row['Vorname']; 
	$Adresse = $row['Adresse'];
	$PLZ = $row['PLZ'];
	$Ort = $row['Ort'];
	
	?>
Das Problem ist diese Zeile:
PHP:
$sql = "SELECT * FROM $tabelle WHERE Nachname = '$Nachname' AND Vorname = '$Vorname' ORDER BY Nr";
Ich weiss nicht, wie ich es anstellen soll, dass der User beliebig viele der 5 Suchfelder ausfüllen kann und dann einfach mit den Daten gesucht wird, die der User eingegeben hat! Hier im Beispiel habe ich Nachname = '$Nachname' AND Vorname = 'Vorname' geschrieben, ist noch nicht komplett, war nur ein Test so...

Was muss ich dort schreiben damit die ausgefüllten Suchfelder in die Suche einbezogen werden?
Danke für eure Hilfe!
 
Ich hab's rausgefunden, wie das geht.

Jetzt gibt's jedoch ein anderes Problem:
Wie mache ich das, dass die Meldung "Keine Einträge gefunden" kommt, wenn nichts gefunden wurde? Kann man irgendwie die Resultate der SQL-Abfrage zählen?
 
Kannst Du mir verraten, wie Du das Problem gelöst hast?
Bin gerade dabei was ähnliches zu basteln und will das Rad nicht neu erfinden
Danke
 
Hi

Na klar, ich hasse es selbst auch wenn man zwar gelöste Probleme in Foren antrifft aber dennoch keine Lösung dort steht :-)

Hier ist mein endgültiger Code, ich hoffe das hilft dir weiter:
Code:
//Ausgabe aus DB

	$db = mysql_connect ($host, $user, $password);
    mysql_select_db($database);
	
	$array = array();
	
	if($Nachname != "") {
	$array[0] = "Nachname = '$Nachname'";
	}
	if($Vorname != "") {
	$array[1] = "Vorname = '$Vorname'";
	}
	if($Adresse != "") {
	$array[2] = "Adresse = '$Adresse'";
	}
	if($PLZ != "") {
	$array[3] = "PLZ = '$PLZ'";
	}
	if($Ort != "") {
	$array[4] = "Ort = '$Ort'";
	}

	$where = implode(" AND ", $array);

        $sql = "SELECT * FROM $tabelle WHERE $where ORDER BY Nr";
	$result = mysql_query($sql,$db);
	
	while ($row = mysql_fetch_array($result)) { 
	
	$Nr = $row['Nr']; 
	$Nachname = $row['Nachname']; 
	$Vorname = $row['Vorname']; 
	$Adresse = $row['Adresse'];
	$PLZ = $row['PLZ'];
	$Ort = $row['Ort'];
	$TelP = $row['TelP'];
	$TelG = $row['TelG'];
	$MArt = $row['MArt'];
Das hier dürfte deine Frage beantworten...:
Code:
$where = implode(" AND ", $array);
MfG Dommas
 
Ich nehme jetzt mal an dein "sehr ausführliches" Posting bezieht sich auf meine Frage die ich im April gestellt hatte... Danke, das Problem ist jedoch bereits gelöst.
 
Zurück