Schreibarbeit vereinfachen

stephandziurla

Erfahrenes Mitglied
Hi!
Ich habe eine DB, in der eine Tabelle 34 Spalten aufweist, bei denen die Spaltennamen alle mit "Prod" anfangen. Nun soll über eine SQL-Abfrage ("SELECT Prod1, Prod2, ...Prodn FROM Tabelle) geschaut werden, ob in den Spalten ein Wert > 0 enthalten ist.
Ich hatte vor, das ganze entweder mit switch...case zu machen oder aber auch mit einer for-Schleife in Verbindung mit einem Array. Ich weiß leider nur nicht genau, wie ich das umsetzen könnte. Kann mir da jemand helfen?
Ach ja: WENN in den Spalten ein Wert >0 enthalten ist, soll er den Wert einfach ausgeben, wenn nicht, zum nächsten Wert gehen...überprüfen, evtl. ausgeben.... bis alle Spalten durch sind.

Danke schonmal im Voraus!
 
Du kannst doch das Array der Ergebniszeile durchlaufen:
PHP:
//...
$res=mysql_query("...");
while ($row=mysql_fetch_assoc($res)) {
    $i=1;
    while (isset($row['Prod'.$i])) {
        if ($row['Prod'.$i]>0) {
            echo $row['Prod'.$i];
        }
        $i++;
    }
}
Gruß hpvw
 
Hm, danke für den Tip. Ich habs zwar ausprobiert, aber irgendwie klappt das nicht. Ich hab deinen Code angepasst aber er gibt nichts aus. :-(
 
Hm, sorry!! Bin grad so im Denken, dass ich das vergessen hab
Also:
Abfrage:
PHP:
 $zahl = $_GET['id']+1; 
  $query = "SELECT P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,
            P25,P26,P27,P28,P29,P30,P31,P32,P33,P34 FROM T_Kundendaten WHERE ID=$zahl";
  $result = mysql_query($query) or die("Error in query: " . mysql_error());

Ausgabe:
PHP:
  while ($row=mysql_fetch_assoc($result)) {
    $i = 1;
    while (isset($row['P'.$i])) {
      if ($row['P'.$i]>0) {
        echo $row['P'.$i];
echo $i;
echo $row;
      }
    $i++;
    }
  }
 
Mach doch mal folgendes, um zu schauen, ob das Query überhaupt eine Ergebniszeile hervorgebracht hat:
PHP:
//...
$result = //...
echo mysql_num_rows($result);
while ($row = //.....
(Die Punkte sind natürlich mit dem Rest Deines Codes zu ersetzen.)

Gruß hpvw
 
Zurück