Tom: Warum funktioniert dieses Statement nicht?

Beitrag lesen

Hello,

Hi,

ich habe eine Suche in PHP programmiert, die aber leider nicht so richtig funktioniert. Es werden trotzdem immer alle Datensätze angezeigt. Es soll eine Mitgliedersuche werden, bei der nur nach den Werten gesucht werden soll, die auch eingegeben/ausgewählt wurden. Hier das SQL-Statement:

$query = "SELECT * FROM tuser where ShortName like '%$txtUsername%' ";

if($cmbSex != 'nothing')
   {
    $query = $query."and Sex='$cmbSex' ";
   }

Wieso baust Du hier nicht ein Gate für die erlaubten Werte?
Woher kommt $cmbSex? Aus einem Formular? Wurde das schon escaped?

if($txtAgeFrom != "" && $txtAgeTo != "")
   {
    $query = $query."and (to_days(curdate())-to_days(Birthday))/365 between '$txtAgeFrom' and '$txtAgeTo'";
   }

Woher kommt "Birthday"? Woher kommen $txtAgeFrom und $txtAgeTo? Sind die schon auf numeric() geprüft?

if($txtZipcode != "")
   {
    $query = $query."and Zipcode like '%$txtZipcode%'";
   }

Könnte da auch ein Leerzeichen drinstehen?

...usw.

Außerdem kann man in PHP auch  query .= "zusätzlicher String"  schreiben.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen