abfrage aus DB, aber komisch

Zero2000

Erfahrenes Mitglied
Hi

Also ich weis gar nicht wie ich das so recht beschreiben soll.
Ich habe in einer MySQL DB eine Tabelle mit den Feldern offen, erledigt und gebiet.

Bei offen und erledigt gibt es nur 0 für nicht erledigt und eins für erledigt.
Bei gebiet gibt es 1 bis 4.

Wie kann ich es am einfachsten realisieren, das ich mir für jedes Gebiet alle offenen und alle erledigten anzeigen lassen kann?

Im Moment realisiere ich das über sage und schreibe 8 Abfragen.
Da das aber bestimmt eine zu hohe Belastung für die DB ist würde ich eben gern wissen welche Befehle mein Freund sind damit ich eventuell nur noch eine Abfrage habe.

MfG Maik
 
Eine parametrisierte Abfrage oder der manulle Zusammenbau einer Abfrage ist die Lösung, wie man das genau macht hängt von der Programmiersprache ab, die verwendet wird.

SELECT <feldname1>, .., <feldnameN>, offen, erledigt, gebiet
FROM <Tabellenname>
WHERE gebiet=<Wert>

Den Wert müsstest du dann halt dynamisch setzen, je nach welchen Gebiet abgefragt werden soll.
Für zwei würde das so aussehen:
WHERE gebiet=<Wert1> OR gebiet=<Wert2>

Warum hast du überhaupt zwei Felder für offen und erledigt. Entweder ist eine Sache erledigt oder sie ist es nicht, dann also offen.
Da würde ein Feld "erledigt" ausreichen, je nach dem ob dort eine 0 (false) oder eine 1(true) drin steht, ist die Sache offen oder erledigt.
 
GENAU!
Wieso habe ich eigentlich 2 Felder
Das fällt mir jetzt eigentlich erst auf. Verdammt! :-(

Also als Programmiersprache setze ich PHP ein.
Was meinst Du mit: SELECT <feldname1>, .., <feldnameN>, offen, erledigt, gebiet?
sind offen, erledigt und gebiet nicht meine Feldnamen

PS: das mit offen und erledigt ändere ich gleich. ich lasse nur offen und lösche erledigt.

MfG Maik
 
Ja sicher, aber du wirst ja sicher noch mehr Felder in der Tabelle haben.
Es muss ja irgendwo stehen was offen ist und was nicht.
Sonst gibt es ja am ende nur eine Tabelle in der Art:
Offen Gebiet
JA 1
NEIN 1
JA 1..

PHP:
$sqlQuery ='SELECT offen, gebiet WHERE gebiet = ' + $gebiet;
 
Ich komm echt nicht weiter.
Ich bekomme es nicht gebacken die Anzahl der offenen und die Anzahl der erledigten Datensätze für ein Gebiet anzuzeigen.

Das auslesen der DB ist ja eigentlich kein Problem
PHP:
$res = mysql_query("SELECT offen, gebiet FROM hgb_job")or die("FEHLER:<br><br>".mysql_error());
Und dann habe ich es so probiert...
PHP:
if($offen_sued =="1" && $gebiet =="1"){
  $num = mysql_num_rows($res);
  $offen_sued = "<font color='#FF0000'><b>$num</b></font>";
  }else{
  $offen_sued = "0";}
Ich weiß es sieht stümperhaft aus, aber ich bin eben noch Anfänger... :)

MfG Maik
 

Neue Beiträge

Zurück