query abändern!

Dolphon

Erfahrenes Mitglied
Hi.

Ich hab folgendes Problem:


PHP:
<?php
$query = "SELECT a.id, a.name, a.email, a.art, a.auftrag, a.land, a.userid, ". 
                   "b.id, b.firmenname, b.straße, b.hnr, b.plz, b.ort, c.id3, c.bundesland_name ". 
                   "FROM auftraege as a left join handwerker as b ". 
                   "on a.userid = b.id ". 
                   " left join bundesland as c on a.land = c.id3". 
                  " WHERE a.id='".$_GET['auftragsid']."'";
?>





Der obige Quelltext klappt einwandfrei.
Jetzt muss erallesdings noch erweitert werden, da er noch nicht alels ausliest aus de DB.
Nur dabei gibt es einen Hacken.
Was er noch auslesen soll, ist folgendes.
dei Spalten gewerk1, gerwrek2.........gewerk18 soll er auslesen. Damit er das macht müsste ich a.gewerk1, a.gewerk2... schreiben.
Soweit komm ich noch selber. Allerdings soll er dann nur die Spalten von den gewerken auslesen, inder keine 0 steht. Mit anderen Worten, die Spalten, in der eine 0 steht soll er nicht auslesen.
Dann soll er in eine andere Tabelle gehen, wo zu der passende Zahl die in a.gewerk1... steht auslesen, und den entsprechenden Namen dazu dann später auspucken.

Außerdem stellt sich mir dann die Frage, wenn er es erfolgreich ausgelesen hat, wie ich die ausgabe machen soll. wenn ich jede Spalte ausgebe, hab ich lücken zwischen den einzelnen Namen.

Hoffe einer weiß rat.

MFG Dolphon
 
Da ich gehört hab, das es mit nehm query nicht direckt geht, einen Schritt weiter.

Ich alsse mir nun den Inhalt von gewerk1.....gerwerk18 ausgeben. nun bekomm entweder eine 0 oder 1.
nun könnt ich ja mit eienr if Bedingung:

PHP:
if($gewerk1 == 1)
{
echo 'dachdecker';
}
if(gewerk2 ==1)
{ echo 'Maurer';
}
..
.....
ausgeben. Allerdigns ist diese dann ziemlich lang. kann man das etwas kürzen

oder 2. Möglichkeit:

Ich hab statt den 1 in den Felder zahlen stehn, welche in eienr anderen Tabelle die id von dem Namen ist. Dann müsste ich ja mit nem query die passenden Namen auslesen können oder?

Was würde den am einfachsten gehn? Hab nämlich keine Ahnung wie es gehn soll, und ich muss bis Donenrstag damit fertig sein, weil es ein SChulprojekt ist.
 
Einfach die Zahl der jeweiligen Spalte auslesen (Query-Ergebnis in ein Array legen und dann daraus lesen?) und in der anderen TAbelle den entsprechenden Eintrag raussuchen und ausgeben. Wenn du das ganze dann noch in eine Schleife legst, sollte sich dein Quellcode stark minimieren...

Also: Query-Ergebnis in Array, Schleife öffnen, aktuelle Zahl auslesen, Nullen mit einer if-Schleife abfangen (keine Ausgabe), bei anderen zahlen entsprechenden Eintrag aus anderer Tabelle auslesen und ausgeben.

Mir scheint aber, dass du eine etwas ungünstige Tabellen"konstruktion" hast. Ist gewerk1-18 ein eigener Tabelleneintrag (Zeile?) oder jeweils nur eine Spalte? Wenn du alles in Spalten hast, kanns leicht kompliziert werden...wenn du aber für jedes eine eigene Zeile hast, kannst du auch einfach alle raussuchen, die keine Null haben.
Begrifferklärung (hab ehrlich gesagt keine Ahnung, obs wirklich ne Zeile gibt):
gewerk1-18 jeweils als Zeile:
|gewerk1|var1|var2|var3|
|gewerk2|var1|var2|var3|
|gewerk3|var1|var2|var3|

gewerk1-18 jeweils als Spalte:
|gewerk1|gewerk2|gewerk3|gewerk4|gewerk5|....|
 
Aslo die gewerke 1-18 sind neben anderen Spalten
id|name|....|gewerk1|gewerk2|gewerk3|gewerk4|gewerk5|....|gewerk18|stamp...

wenn ich jetzt nach dm ersten query nur die gewerke in ein array lege,dann kann ichdoc mit "unset" die Varibalben die 0 sind herauslsöchen oder?
 
Zurück