Problem mit Abfrage: leer & nicht leer

wo0zy

Erfahrenes Mitglied
Hallo,
ich habe im Moment ein Problem mit einer Abfrage. Das Problem liegt darin das $result nicht gesetzt wird.
PHP:
if((empty($f_day1)) && (!empty($f_day2))) {
	$result=db_query("SELECT * FROM termine WHERE datum BETWEEN $datum AND $f_day2 AND an=$user_ID_see ORDER BY anfang") or db_die();
}elseif((!empty($f_day1)) && (empty($f_day2))) {
	$result=db_query("SELECT * FROM termine WHERE datum BETWEEN $f_day1 AND $datum AND an=$user_ID_see ORDER BY anfang") or db_die();
}elseif((!empty($f_day1)) && (!empty($f_day2))) {
	$result=db_query("SELECT * FROM termine WHERE datum BETWEEN $f_day1 AND $f_day2 AND an=$user_ID_see ORDER BY anfang") or db_die();
}elseif((empty($f_day1)) && (empty($f_day2))) {
	$result = db_query("SELECT * FROM termine WHERE datum=$datum AND an = '2' ORDER BY anfang") or db_die();
}
 
Liegt es vielleicht an den fehlenden ' und `?
Versuch's mal damit:
PHP:
if((empty($f_day1)) && (!empty($f_day2)))
  $result = db_query("SELECT * FROM `termine` WHERE `datum` BETWEEN '$datum' AND '$f_day2' AND an='$user_ID_see' ORDER BY `anfang`") or db_die();
elseif((!empty($f_day1)) && (empty($f_day2)))
  $result = db_query("SELECT * FROM `termine` WHERE `datum` BETWEEN '$f_day1' AND '$datum' AND an='$user_ID_see' ORDER BY `anfang`") or db_die();
elseif((!empty($f_day1)) && (!empty($f_day2)))
  $result = db_query("SELECT * FROM `termine` WHERE `datum` BETWEEN '$f_day1' AND '$f_day2' AND an='$user_ID_see' ORDER BY `anfang`") or db_die();
elseif((empty($f_day1)) && (empty($f_day2)))
  $result = db_query("SELECT * FROM `termine` WHERE `datum`='$datum' AND an='2' ORDER BY `anfang`") or db_die();

redlama
 
Könnte schon daran liegen. Die brauchts aber nur wenn es einen Leerschlag hat. Sonst werden diese Zeichen nicht benötigt.

Schau dir sonst mal an in welche if es reinspringt, und gib den betreffenden SQL String mal in der SQL Konsole oder PHPMYADMIN oder was du auch immer verwenden magst ein. Dann siehst du ob der SQL String korrekt ist..

MFG
redX
 
Hallo,
es scheint teilweise an den '' gelegen zu haben. Teilweise, da jetzt 2 von 4 Abfragen funktionieren.
Folgende funktionieren aber leider noch nicht
PHP:
elseif((!empty($f_day1)) && (empty($f_day2)))
...
elseif((empty($f_day1)) && (empty($f_day2)))
 
Kommt er denn in die Abfragen garnicht rein oder führt er nur das Query nicht korrekt aus?
Mit ein paar echos kannst Du das ja mal testen.

redlama
 
Probier mal Folgendes:
PHP:
<?php

	[…]

	$query = "SELECT […] FROM `termine` WHERE `datum` ";
	if( !empty($f_day1) || !empty($f_day2) ) {
		$query .= "BETWEEN '".(!empty($f_day1) ? $f_day1 : $datum)."' AND '".(!empty($f_day2) ? $f_day2 : $datum)."' ";
	} else {
		$query .= "='".$datum."' ";
	}
	$query .= " AND `an` = '".$user_ID_see."' ORDER BY `anfang`";
	$result = db_query($query) or db_die();

	[…]

?>
 

Neue Beiträge

Zurück