Tabellenspalte durchsuchen (mysql)

Hab grad nochmal nen Problem.

Habe jetzt ne Personensuche gemacht (zusätzlich) und hab aber nen PRoblem.

ICh durchsuche
vorname
nachname
geschlecht
titel
straße
ort

undzwar so
PHP:
select
*
from
benutzer
where
`benutzer_vorname` LIKE "%'.$vorname.'%"
OR
`benutzer_nachname` LIKE "%'.$nachname.'%'

und so weiter.
aber wenn ich nur den vornamen eintrage um den zu suchen sagt er gefunden, auch wenn der vorname nicht existiert..das liegt doch daran, weil die anderen felder leer sind, richtigG?

//Edit
Und auch wenn der Name existiert, wird nichts angezeigt.
Allerdings ist Treffer immer 1
 
Ich würd dir empfehlen wenn du bestimmte Benutzer suchst, nie LIKE zu nehmen. Das sucht dann nämlich alle die so ähnlich heißen. Benutz doch einfach das "=".

PHP:
SELECT
*
FROM
benutzer
WHERE
`benutzer_vorname` = '".$vorname."'
OR
`benutzer_nachname` = '".$nachname."' "
 
Hm,

es klappt irgendwie nicht.
Hier mal meine Abfrage:
PHP:
			$query			=	'SELECT
									*
								FROM
									benutzer
								WHERE
									`benutzer_anrede` = "'.$anrede.'"
								OR
									`benutzer_titel` = "'.$titel.'"
								OR
									`benutzer_vorname` = "'.$vorname.'"
								OR
									`benutzer_nachname` = "'.$nachname.'"
								OR
									`benutzer_geschlecht` = "'.$geschlecht.'"
								OR
									`benutzer_strasse` LIKE "'.$strasse.'"
								OR
									`benutzer_hausnummer` LIKE "'.$hausnummer.'"
								OR
									`benutzer_plz` LIKE "'.$plz.'"
								OR
									`benutzer_wohnort` LIKE "'.$ort.'"
								OR
									`benutzer_bundesland` LIKE "'.$bundesland.'"
								OR
									`benutzer_telefon` = "'.$telefon.'"
								OR
									`benutzer_homepage` LIKE "'.$homepage.'"
								OR
									`benutzer_beruf` LIKE "'.$beruf.'"';

Ausgabe: Es wurden 2 Benutzer gefunden.
Halt immer die Anzahl der Benutzer, die in der Tabelle sind.
Egal ob Name Test ist oder David (welcher existiert).
 
PHP:
            $query            =   "SELECT
                                    *
                                FROM
                                    benutzer
                                WHERE
                                    benutzer_anrede = "'.$anrede.'"
                                OR
                                    benutzer_titel = "'.$titel.'"
                                OR
                                    benutzer_vorname = "'.$vorname.'"
                                OR
usw oder heißt eine der spalten `benutzer_anrede` nen anderen fehler kann ich mir mom net vorstellen

mfg
 
Das Problem bei deinem Query ist die fehlende Prüfung der Variablen.
Versuch mal folgendes für jedes Feld:
PHP:
if( isset( $homepage ) && $homepage != '' )
{
    $query .= ' `benutzer_homepage` LIKE "'%.$homepage.%'" ';
}
 
Ok, so würde es gehen, allerdings, wie soll ich das mit dem OR lösen? Ich muss ja gucken, dass nicht dort steht:
OR OR OR und so weiter...

// Edit
habs jetzt so gemacht:
PHP:
			if((isset($ort)) && (!empty($ort))) {
				$where .= '`benutzer_wohnort` LIKE "%'.$ort.'%" OR '.$n;
			}
Und so weiter.

Und damit das letzte Or immer gelöscht wird:
PHP:
$query			=	substr($query, 0, -4);
ABer das erscheint mir ungünstig.
Weiß jemand was besseres?
 
Zuletzt bearbeitet:
Zurück