selct abfrage mit mehr als 2 Bedingungen

südpol

Erfahrenes Mitglied
Hi,

ich suche verzweifelt eine Möglichkeit eine Selectabfrage in einer mysql Datenbank zu starten die mehr als 2 Bedingungen hat. Kann mir jemand sagen wie die Syntax auszusehen hat?

PHP:
$sqlab = "select anlagenummer, aktiv_datum, ansch_wert, kostenstelle, standort_filiale, art, titel, groesse_abmessungen, kuenstler, beschreibung, fotografie_1, fotografie_2, fotografie_3 from kunstobjekte";
	$sqlab .= " where kostenstelle >= $f_ug_kost";
	$sqlab .= " and kostenstelle <= $f_og_kost";
	$sqlab .= " and standort_filiale like '$f_ort%' ";
	$sqlab .= " and kuenstler like '$f_kl%' ";
	$sqlab .= " and art link '$f_art%' ";
	$sqlab .= " and beschreibung like '%$f_besch%' ";
	$sqlab .= " where anlagenummer >= $f_ug_an";
	$sqlab .= " and anlagenummer <= $f_og_an";
	$sqlab .= " and aktiv_datum like '$f_ad' ";
	
	$res = mysql_query($sqlab);

das hat anfangs so schön einfach ausgesehen *snief* Ach ja wenn die Variable nicht gesetzt ist soll er diese Bedingung einfach nicht beachten. (Das macht er aber von selber, oder muss ich da dann noch eine if Abfrage anghängen die ggf. einen Platzhalter setzt?)

Danke
 
Geht es so nicht?

Mir fällt nur das WHERE in Zeile 8 auf -> Durch AND ersetzten.
Und: Du kannst hier auch nach Belieben if-Anweisungen reinsetzen:
PHP:
$sqlab = "...";
$sqlab .= "bla";
$sqlab .= "bla";
$sqlab .= "bla";
$sqlab .= "bla";
if (isset($variable)) {
  $sqlab .= "bla";
  $sqlab .= "bla";
  $sqlab .= "bla";
  $sqlab .= "bla";
}


Und bitte schreibe in Zukunft MySQL-Anweisungen Gross!
 
das sieht für mich dannach aus als würdest du alles aus der db auslesen. dann mach doch einfach -> SELECT * FROM kunstobjekte
 
nicht ganz alles ein paar Datensätze fehlen noch (-; Das mit dem * ist mir auch eingefallen allerdings erst als ich schon fast alles hatte...

Danke auf jeden Fall mal für die schnellen Antworten.

Wie würdet Ihr das mit den if-anweisungen genau machen?

Setze ich es direkt in die SQL Syntax ein hätte ich evtl. ein Problem wenn jemand nicht nach der Kostenstelle sucht, oder?

kann ich die Variablen einfach vorher überprüfen und wenn sie leer sind einfach ein * setzen lassen (als Platzhalter)?

PHP:
if (!isset($variablexy)){
$variablexy = "*";
}
Gruß
 
Original geschrieben von SepteraCore
das sieht für mich dannach aus als würdest du alles aus der db auslesen. dann mach doch einfach -> SELECT * FROM kunstobjekte
Es ist zwar nicht zum Thema, aber grundsätzlich sollte man
SELECT * FROM vermeiden, da es nur einen rießen Traffic
seitens der DB erzeugt, den man oft nicht braucht. Und wenn
man die Tabelle jetzt erweitert, dann hat man u.U. fünf neue
Spalten die in zehn Abfragen nicht gebraucht werden und
trotzdem abgefragt werden.
 
wow, ich bin ein Naturtalent (-; Auf Anhieb eine "gute" select Anweisung geschrieben (-;

Mit dieser If Anweisung hänge ich jedoch noch immer... hat da jemand eine Idee...

Gruß
 
Zurück