Problem Variabeln und foreach()

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem Variabeln und foreach()

    Ich habe ca. 90 Variablen die ich immer einzeln angebe:

    Quellcode

    1. if ($row->allermoehe == "1") {$wunsch1 = "Allermöhe<br>";}
    2. if ($row->alsterdorf == "1") {$wunsch2 = "Alsterdorf<br>";}
    3. if ($row->altengamme == "1") {$wunsch3 = "Altengamme<br>";}
    4. if ($row->altenwerder == "1") {$wunsch4 = "Altenwerder<br>";}
    5. ...
    6. echo "
    7. <tr>
    8. <td style=\"border: 1px solid #000; padding: 5px;\">$wunsch1 $wunsch2 $wunsch3 $wunsch4 ...</td>
    9. ...


    Also muss ich alle Variablen am besten in ein Array tun. Aber ich muss es ja auch mit foreach wiederholen lassen, nur stimmt in meinem Script was gewaltig nicht. Wäre für Hilfe dankbar.
    Soweit hab ich es:

    Quellcode

    1. $wunschorte = array("allermoehe", "alsterdorf", "altenwerder");
    2. $ergebnis = mysql_query($abfrage);
    3. while($row = mysql_fetch_object($ergebnis))
    4. {
    5. foreach($wunschorte as $wunschorte2)
    6. if ($row->wunschorte2 == "1") {$wunsch = $wunschorte2."<br>";}
    7. else {echo "Fehler";}
    8. echo "
    9. <tr>
    10. <td style=\"border: 1px solid #000; padding: 5px;\">$row->name</td>
    11. <td style=\"border: 1px solid #000; padding: 5px;\">$row->vorname</td>
    12. <td style=\"border: 1px solid #000; padding: 5px;\">$row->strasse $row->hausnr</td>
    13. <td style=\"border: 1px solid #000; padding: 5px;\">$row->plz $row->ort</td>
    14. <td style=\"border: 1px solid #000; padding: 5px;\">$row->telefonp</td>
    15. <td style=\"border: 1px solid #000; padding: 5px;\">$row->handy</td>
    16. <td style=\"border: 1px solid #000; padding: 5px;\">$wunsch</td>
    17. </tr>
    18. ";
    Alles anzeigen


    Bekomme als Ausgabe nur:
    FehlerFehlerFehler
    //
    FehlerFehlerFehler
    //
    FehlerFehlerFehler
  • OK habs soweit korriegiert, aber nun bekomme ich als ergebnis eine 1 in mein Feld statt den Namen der variable in den Array:

    Quellcode

    1. FehlerFehlerFehler
    2. Notice: Undefined variable: wunsch in /www/htdocs/v157017/forms/index2.php on line 71
    3. FehlerFehlerFehler
    4. Notice: Undefined variable: wunsch in /www/htdocs/v157017/forms/index2.php on line 71
    5. FehlerFehlerFehler
    6. Notice: Undefined variable: wunsch in /www/htdocs/v157017/forms/index2.php on line 71
    7. FehlerFehlerFehler
    8. Notice: Undefined variable: wunsch in /www/htdocs/v157017/forms/index2.php on line 71
    9. Fehler


    Hier mal der neue Code:

    Quellcode

    1. $abfrage = "SELECT * FROM $tabelle ORDER BY name, vorname";
    2. $wunschorte = array("allermoehe", "alsterdorf", "altenwerder");
    3. $ergebnis = mysql_query($abfrage);
    4. while($row = mysql_fetch_object($ergebnis))
    5. {
    6. foreach($wunschorte as $wunschorte2)
    7. if ($row->$wunschorte2 == "1") {for($i=0; $i<2; $i++) {$wunsch = $row->$wunschorte[$i]."<br>";};}
    8. else {echo "Fehler";}
    9. echo "
    10. <tr>
    11. <td style=\"border: 1px solid #000; padding: 5px;\">$row->name</td>
    12. <td style=\"border: 1px solid #000; padding: 5px;\">$row->vorname</td>
    13. <td style=\"border: 1px solid #000; padding: 5px;\">$row->strasse $row->hausnr</td>
    14. <td style=\"border: 1px solid #000; padding: 5px;\">$row->plz $row->ort</td>
    15. <td style=\"border: 1px solid #000; padding: 5px;\">$row->telefonp</td>
    16. <td style=\"border: 1px solid #000; padding: 5px;\">$row->handy</td>
    17. <td style=\"border: 1px solid #000; padding: 5px;\">$wunsch</td>
    18. </tr>";
    19. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von x16 ()

  • Die for Schleife liest dir immer nur die ersten beiden aus Teile des Arrays aus????
    Bevor du deine Workarounds um dein falsches Datenbankdesign herumbaust und damit mehr und mehr Fehler produziert, solltest du an dieser Stelle vielleicht nochmal mit einem "richtigen" Design beginnen.

    tabelle1
    userID name vorname strasse ...
    1 peter hans musterstraße

    tabelle2
    wunschID wunsch
    1 allermöhe

    tabelle3
    userID wunschID
    1 1