Christopher: mehrere Array-Elemente zu String zusammenfügen

Hallo,

ich habe ein Problem. Ich möchte den Usern meiner Seite die Möglichkeit bieten Ihre Kochrezepte bei mir einzutragen.

In meiner DB werden die Zutaten mit Komma dazwischen als varchar gespeichert. z.B: 1 kg Hähnchen,400 g Kartoffeln,Salz,Pfeffer,...

Jetzt habe ich auf der Eingabeseite ein Formular, bei dem der Teil für die Zutaten so aussieht:

...
<tr></tr>
<td width="10%" class="black9"><input type="text" name="zutatenMenge[]" size="10" style="width:60px;" maxlength="50"></td>
<td width="12%" class="black9"><input type="text" name="zutatenEinheit[]" size="12" style="width:80px;" maxlength="50"></td>
<td width="78%" class="black9"><input type="text" name="zutatenName[]" size="40" style="width:100%;" maxlength="50"></td>
<tr></tr>
...

Um daraus den String zu generieren habe ich folgendes versucht:

----------------------

$zutatenlist = "";

if (is_array ($zutatenMenge))
  while(current($zutatenMenge) != false)
  {
    $zutatenlist.= current($zutatenMenge)." ".curren.($zutatenEinheit)." ".current($zutatenName).",";
    next($zutatenMenge)." ".next($zutatenEinheit)." ".next($zutatenName);
  }

$mitLetztemKomma = strlen($zutatenlist);
$ohneLetztesKomma = $mitLetztemKomma-1;
$zutatenlist = substr($zutatenlist,0,$ohneLetztesKomma);

----------------------

Jetzt gibt es aber Fehler, wenn man z.B. keine Menge oder keine Mengeneinheit angibt (z.B. bei Salz).

Kann mir jemand weiterhelfen

Danke im Voraus

Christopher

  1. Hi,

    In meiner DB werden die Zutaten mit Komma dazwischen als varchar gespeichert.

    möchtest Du nicht lieber eine Verknüpfungstabelle nehmen?

    Um daraus den String zu generieren habe ich folgendes versucht:

    Hm, ich hätte einfach join() genommen.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      In meiner DB werden die Zutaten mit Komma dazwischen als varchar gespeichert.

      möchtest Du nicht lieber eine Verknüpfungstabelle nehmen?

      Um daraus den String zu generieren habe ich folgendes versucht:

      Hm, ich hätte einfach join() genommen.

      Cheatah

      Hallo Cheatah,

      kann ich denn bei join() immer ein "," an das Ende einer Zeile (Menge Einheit Zutat) anhängen???

      Danke Christopher

      1. Hi,

        kann ich denn bei join() immer ein "," an das Ende einer Zeile (Menge Einheit Zutat) anhängen???

        warum liest Du Dir nicht die Dokumentation zu der Funktion durch? Ich möchte Dir aber nach wie vor eine Verknüpfungstabelle empfehlen.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          warum liest Du Dir nicht die Dokumentation zu der Funktion durch? Ich möchte Dir aber nach wie vor eine Verknüpfungstabelle empfehlen.

          für eine Verknüpfungstabelle ist es zu spät, da ich bereits über 300 Rezepte in der DB habe.

          Und die Dokumentation habe ich mir durchgelesen. Leider habe ich aber nicht ein, sondern 3 Array (Menge[], Einheit[], Zutat[]) und diese können unterschiedlich lang sein, wenn jemand wie gesagt z.B. nur in das Letzte Feld "salz" eingibt.

          Schöne Grüße

          Christopher

          1. Hi,

            für eine Verknüpfungstabelle ist es zu spät, da ich bereits über 300 Rezepte in der DB habe.

            das ist mehr Arbeit, aber noch lange nicht zu spät.

            Und die Dokumentation habe ich mir durchgelesen. Leider habe ich aber nicht ein, sondern 3 Array (Menge[], Einheit[], Zutat[]) und diese können unterschiedlich lang sein, wenn jemand wie gesagt z.B. nur in das Letzte Feld "salz" eingibt.

            Was hindert Dich daran, aus den dreien nur ein Array zu machen? Natürlich wäre das hinfällig, wenn Du einfach nur genau diese Daten in eine entsprechende Tabelle speichern würdest.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes