Datenbankabfrage nach Suchkriterien

Zuerst das ganze mal lesbar machen.
SQL:
SELECT 
	* 
FROM 
	monkey_users AS u
WHERE 
	u.Name LIKE '%{$_POST['textfield']}%' 
	AND u.geschlecht LIKE '%{$geschlecht}%' 
	AND u.Ort LIKE '%{$_POST['textfield4']}%' 
	AND NOW() < DATE_ADD(u.Alter, INTERVAL {$von} YEAR) 
	AND NOW() > DATE_ADD(u.Alter, INTERVAL {$bis} YEAR)

Fragen:
item: was ist in $von? (Bitte mit Beispielwert)
Item: was ist in $bis? (Bitte mit Beispielwert)
Item: Wird nix rausgegeben oder kommt eine Fehlermeldung?
 
Zuletzt bearbeitet von einem Moderator:
Es wird nichts ausgegeben.

$von und $bis werden durch Textfelder gefüllt. Also je nachdem was ausgefpllt ist und was nicht. Beispiel jemand gibt nichts ein bei "bis" dann soll er bis hundert suchen. Vielleicht ist das überflüssig, aber ich habs so gemaht: Es funktioniert auch ohne nicht. Also wenn ich manuelle Werte eintrage, dann funktioniert es auch nicht. Keine Ausgabe...
Falls das was ich nun tue üüberflüssig ist, bitte bescheid geben:

PHP:
	if($_POST['textfield2'] == "" and $_POST['textfield3'] =="")
	{
		$von=0;
		$bis=100;
	} else if($_POST['textfield2']=="" or $_POST['textfield3']=="") {
		if($_POST['textfield2']="")
		{
		$von=0;
		$bis=intval($_POST['textfield3']);
		} else {
		$von=intval($_POST['textfield2']);
		$bis=100;
		}
	}else{
		$von=intval($_POST['textfield2']);
		$bis=intval($_POST['textfield3']);
	}

textfield ist quasi von und textfield3 bis.

//EDIT hab den alten code gepostet so mit intval() t er , aber die Datenbank abfrage immer noch nich!
 
Zuletzt bearbeitet:
den letzten geposteten Text kannst du auf das hier verkürzen. $von und $bis werden auf die Standardwerte gesetzt und bei Bedarf, also wenn die POST Felder gefüllt sind, geändert.
PHP:
$von=0;
$bis=100;
if($_POST['textfield2']="")
	$von=intval($_POST['textfield2']);
if($_POST['textfield3']="")
	$bis=intval($_POST['textfield3']);
Ansonsten laß dir mal den komplett erzeugten SQL Befehl ausgeben und zeig ihn hier. Probier den Befehl auch mal im PhpMyAdmin direkt aus. Vielleicht sagt das noch mehr aus.
 
Oder das von Sprint gekürzt
PHP:
$von = ($_POST['textfield2']=="") ? 0 ; $_POST['textfield2'];
$bis = ($_POST['textfield3']=="") ? 100 ; $_POST['textfield3'];

Ansonsten gilt:
Ansonsten laß dir mal den komplett erzeugten SQL Befehl ausgeben und zeig ihn hier. Probier den Befehl auch mal im PhpMyAdmin direkt aus. Vielleicht sagt das noch mehr aus.
 
Zurück