Datensätze bei Ausgabe filtern

Naddl150

Mitglied
Hallo!

Und zwar habe ich folgendes Problem. Ich habe ein Programm erstellt, wo man Daten eingeben, und diese natürlich wieder ausgeben kann. In einem Drop-Down Feld kann man auswählen, welche Datensätze angezeigt werden können. Jedoch möchte ich, dass es bei diesen Drop-Down-Feldern eine leere Auswahl gibt, und so diese bei der Auswahl nicht berücksichtigt wird. Wenn ich zB einen Mitarbeiter auswähle, aber bei dem Wetter das leere Feld, sollte mir das Programm alle Datensätze ausgeben, wo dieser Mitarbeiter tätig war, jedoch ohne das er das Wetter berücksichtigt, bzw. jede Wetterlage ausgibt. Meine SQL Abfrage sieht jetzt so aus:

PHP:
$sql = "SELECT
	  		SUM(super) AS super, SUM(super_anzahl) AS super_anzahl, SUM(benzin) AS benzin,  SUM(benzin_anzahl) AS benzin_anzahl,  
			SUM(diesel) AS diesel, SUM(diesel_anzahl) AS diesel_anzahl,  SUM(biodiesel) AS biodiesel,  
			SUM(biodiesel_anzahl) AS biodiesel_anzahl,  SUM(autowaschen) AS autowaschen,  
			SUM(autowaschen_anzahl) AS autowaschen_anzahl, SUM(oele) AS oele,  SUM(getraenke) AS getraenke,  SUM(zeitung) AS zeitung,  
			SUM(zigaretten) AS zigaretten,  SUM(lebensmittel) AS lebensmittel,  SUM(alkohol) AS alkohol, 
			SUM(handywertkarten) AS handywertkarten,  SUM(torte) AS torte,  SUM(torte_anzahl) AS torte_anzahl,  
			SUM(broetchen) AS broetchen,  SUM(broetchen_anzahl) AS broetchen_anzahl, SUM(leberkaese) AS leberkaese,  
			SUM(leberkaese_anzahl) AS leberkaese_anzahl,  SUM(gutscheine_vk) AS gutscheine_vk,  
			SUM(gutscheine_vk_anzahl) AS gutscheine_vk_anzahl, SUM(kaffee) AS kaffee,  SUM(kaffee_anzahl) AS kaffee_anzahl,  
			SUM(gebaeck) AS gebaeck,  SUM(gebaeck_anzahl) AS gebaeck_anzahl,  SUM(summe_bto) AS summe_bto, 
			SUM(barverkaeufe) AS barverkaeufe,  SUM(barverkaeufe_anzahl) AS barverkaeufe_anzahl, SUM(stationskredit) AS stationskredit,
			SUM(stationskredit_anzahl) AS stationskredit_anzahl, SUM(summe_karten) AS summe_karten,  
			SUM(summe_karten_anzahl) AS summe_karten_anzahl,  SUM(gutscheine_eing) AS gutscheine_eing,  
			SUM(gutscheine_eing_anzahl) AS gutscheine_eing_anzahl, SUM(altgebaeck) AS altgebaeck,  
			SUM(altgebaeck_anzahl) AS altgebaeck_anzahl,  SUM(alt_torten) AS alt_torten,  SUM(ablauf_10) AS ablauf_10, 
			SUM(ablauf_10_anzahl) AS ablauf_10_anzahl, SUM(ablauf_20) AS ablauf_20, SUM(ablauf_20_anzahl) AS ablauf_20_anzahl,
			SUM(alt_torten_anzahl) AS alt_torten_anzahl, 
			SUM(intern) AS intern,  SUM(intern_anzahl) AS intern_anzahl,  SUM(bistro_alt) AS bistro_alt,  
			SUM(bistro_alt_anzahl) AS bistro_alt_anzahl, SUM(ez_sauger) AS ez_sauger, SUM(ez_wap) AS ez_wap, 
			SUM(az_zigaretten) AS az_zigaretten, SUM(az_getraenke) AS az_getraenke, SUM(az_sonstiges) AS az_sonstiges, 
			SUM(kassen_soll) AS kassen_soll  
  		FROM
    		MIS
		WHERE
    		datum BETWEEN '" . mysql_real_escape_string($_POST['datum_eing1'], $mysql) . "' 
    		AND '" . mysql_real_escape_string($_POST['datum_eing2'], $mysql) . "'
    		AND mitarbeiter = '" .mysql_real_escape_string($_POST['mitarbeiter'], $mysql) . "' 
			AND wochentag = '" . mysql_real_escape_string($_POST['wochentag'], $mysql) . "'
			AND feiertag = '" .mysql_real_escape_string($_POST['feiertag'], $mysql) . "' 
			AND aktion = '" .mysql_real_escape_string($_POST['aktion'], $mysql) . "' 
    		AND wetter = '" . mysql_real_escape_string($_POST['wetter'], $mysql) . "'
			";  			
	  $result = mysql_query($sql);
	  	echo mysql_error();
        while($res = mysql_fetch_array($result))
		
        {

//ergebnis

};


Habt ihr da zufällig einen Tipp für mich?
 
Hi,

frag halt die Felder aus dem Formular ab, ob sie leer sind, und hänge nur dann die entsprechende WHERE-Klausel an Deinen SQL-String an.

LG
 
ich hab eine einfachere Lösung gefunden. Ist ja immer so, sobald man fragt, kommt man selbst darauf. Nadja, vll hilfts ja anderen in meiner Situation.

Im der Auswahl des Drop-Down-Felds, wo alle Datensätze eingefügt werden sollen, gibt man
HTML:
<option value="%">alle</option>
an.

Und bei dem SQL Statement, schreibt man:

PHP:
		WHERE
    		datum BETWEEN '" . mysql_real_escape_string($_POST['datum_eing1'], $mysql) . "' 
    		AND '" . mysql_real_escape_string($_POST['datum_eing2'], $mysql) . "'
    		AND mitarbeiter LIKE '" .mysql_real_escape_string($_POST['mitarbeiter'], $mysql) . "' 
			AND wochentag LIKE '" . mysql_real_escape_string($_POST['wochentag'], $mysql) . "'
			AND feiertag LIKE '" .mysql_real_escape_string($_POST['feiertag'], $mysql) . "' 
			AND aktion LIKE '" .mysql_real_escape_string($_POST['aktion'], $mysql) . "' 
    		AND wetter LIKE '" . mysql_real_escape_string($_POST['wetter'], $mysql) . "'
			";

jetzt muss ich noch nach einer Lösung für die Check-Boxen suchen :)
 

Neue Beiträge

Zurück