Andreas B.: Zeichenkette am Komma teilen ?

Hallo,
wohl eine der leichtesten Aufgaben doch ich finde die Lösung nicht. auch die Suchfunktion konnte mir nicht weiterhelfen.

Ich lese die DB aus und habe nun in einem Array folgendes stehen: text1,text2,text3 nun möchte ich text1 text2 text3 trennen und mit den einzelnen Werten weiterarbeiten.

Soweit bin ich schon:
$sql = "select * from texte";
$result = mysql_query($sql);
$zeile = mysql_fetch_array($result);

mit: echo "$zeile[textspalte]"; kann ich nun die Werte mit Komme sehen. Wie trenne ich nun diese und kann Sie mir einzeln ausgeben lassen?

Mfg. Andreas

  1. wenn ich mich recht erinnere kannst du das mit der funktion "explode! such einfach danach in der php dokumentation. (www.selfphp.net)

    greetz
    MakkuZ

  2. Hallo!

    mit: echo "$zeile[textspalte]"; kann ich nun die Werte mit Komme sehen. Wie trenne ich nun diese und kann Sie mir einzeln ausgeben lassen?

    Schau mal im manual unter explode und implode nach.
    Beste Grüße
    Viennamade

    1. Hallo,

      Schau mal im manual unter explode und implode nach.

      wenn ich nun explode benutze steht in der Ausgabe Array und kein Wert? Diesen Problem habe ich schon öfters gehabt nur weiß ich nicht wieso das so war?

      $zeile = mysql_fetch_array($result);
      $zeile = explode (",", $zeile);
      echo "$zeile[0]";

      Andreas

      1. Hallo,

        wenn ich nun explode benutze steht in der Ausgabe Array und kein Wert? Diesen Problem habe ich schon öfters gehabt nur weiß ich nicht wieso das so war?

        weil es jetzt ein Array vielleicht ist? ;-)

        ein Array kann man gut mit http://de3.php.net/foreach ausgeben

        1. Hallo,
          also bei mir steht dann immernoch Array anstatt der Werte, naja wirklich geholfen hat mir das alles nix.

          Andreas

          weil es jetzt ein Array vielleicht ist? ;-)

          ein Array kann man gut mit http://de3.php.net/foreach ausgeben

          1. Hallo,

            also bei mir steht dann immernoch Array anstatt der Werte, naja wirklich geholfen hat mir das alles nix.

            foreach ($array as $value){
              print $value.'<br />';
            }

            dann wird bei dir immer array ausgegeben?

            bei $array muss dein array rein

            1. Hallo,

              wie sieht es denn damit aus?

              ungetestet....

              $sql = "select * from texte";
              $result = mysql_query($sql);
              $zeile = mysql_fetch_array($result);
              $neuezeile = explode (',', $zeile['textspalte']);
              foreach ($neuezeile as $value){
                print $value.'<br />';
              }

            2. Hallo,
              ja genau so steht Array bei der Ausgabe drin!

              $sql = "select * from zeile";
              $result = mysql_query($sql);
              $zeile = mysql_fetch_array($result);
              $zeile = explode (",", $zeile);

              foreach ($zeile as $value){
                print $value.'<br />';
              }

              Ausgabe = Array

              Da ich mir jdem Wert arbeiten will wollte ich mir das so ausgeben lassen echo $zeile[0];

              Andreas

              foreach ($array as $value){
                print $value.'<br />';
              }

              1. Hallo,

                diese Zeile "$zeile = explode (",", $zeile);" ist auch falsch

                du musst einen String übergeben und kein Array
                also "$zeile = explode (",", $zeile['textspalte'])"

                1. ok danke,
                   jetzt bekomme ich es wenigstens schonmal ausgegeben, jetzt muß ich nur noch herausfinden wir ich geziehlt auf die Werte zugreifen kann.

                  Andreas

                  Hallo,

                  diese Zeile "$zeile = explode (",", $zeile);" ist auch falsch

                  du musst einen String übergeben und kein Array
                  also "$zeile = explode (",", $zeile['textspalte'])"

                  1. Hallo,

                    $sql = "select * from texte";
                    $result = mysql_query($sql);
                    $zeile = mysql_fetch_array($result);
                    $neuezeile = explode (',', $zeile['textspalte']);
                    foreach ($neuezeile as $key => $value){
                      print $key.' ==> '.$value.'<br />';
                    }

                    ;-)

                    steht aber auch auf http://de3.php.net/foreach

                    1. ok ich gebe es hier auf es wird ja schon wieder alles angezeigt.
                      Anscheinend bringt mich foreach auf den falschen weg. Was will ich denn mit dem kompltten Inhalt wenn ich nur einen bestimmten Wert benötige.

                      Aber trotzdem danke für die Hilfe!

                      Andreas

                      1. Hallo,

                        ok ich gebe es hier auf es wird ja schon wieder alles angezeigt.
                        Anscheinend bringt mich foreach auf den falschen weg. Was will ich denn mit dem kompltten Inhalt wenn ich nur einen bestimmten Wert benötige.

                        du musst schon sagen, was du haben möchtest
                        ich bin davon ausgegangen, dass du dir die einzelnen Werte anzeigen lassen möchtest

                        1. Ja da haben wir uns sicher etwas mißverstanden, ich wollte die einzelnen Werte haben die nach dem teilen enstanden sind. Zum Bespiel habe ich nun aeine Ausgabe von text1 text2 text3 die in der DB als text1,text2,text3 stehen. Nun möchte ich aber z.B. text3 haben und damit arbeiten. Bisher bekomme ich ja alle angezeigt was mir ersteinmal geholfen hat aber nun gehts ja weiter.

                          Ich versuche die irgendwie in ein Array zu holen un dann mit $zeile[2] mir ausgeben zu lassen. wobei in $zeile[2] text3 stehen muß.

                          Ich hoffe diese Erklärung ist etwas verständlicher.

                          Andreas

                          du musst schon sagen, was du haben möchtest
                          ich bin davon ausgegangen, dass du dir die einzelnen Werte anzeigen lassen möchtest

                          1. Ja da haben wir uns sicher etwas mißverstanden, ich wollte die einzelnen Werte haben die nach dem teilen enstanden sind. Zum Bespiel habe ich nun aeine Ausgabe von text1 text2 text3 die in der DB als text1,text2,text3 stehen. Nun möchte ich aber z.B. text3 haben und damit arbeiten. Bisher bekomme ich ja alle angezeigt was mir ersteinmal geholfen hat aber nun gehts ja weiter.

                            Ich versuche die irgendwie in ein Array zu holen un dann mit $zeile[2] mir ausgeben zu lassen. wobei in $zeile[2] text3 stehen muß.

                            Ich hoffe diese Erklärung ist etwas verständlicher.

                            weisst du denn vorher, dass text3 drin vorkommt?

                            wenn ja, schau dir mal http://de3.php.net/array_search an
                            damit kannst du dir den key ausgeben lassen

                            1. alles klar, habe es hinbekommen so wie ich es wollte:

                              $result = mysql_query($sql);
                              $zeile = mysql_fetch_array($result);
                              $zeile = explode (',', $zeile[0]);

                              echo "$zeile[2]";

                              Es lag auch hier an der Fehlerhaften explode Zeile.

                              Also nochmal Danke!

                              Andreas

      2. Hi,

        wenn ich nun explode benutze steht in der Ausgabe Array und kein Wert? Diesen Problem habe ich schon öfters gehabt nur weiß ich nicht wieso das so war?

        $zeile = mysql_fetch_array($result);

        $zeile ist jetzt ein Array (siehe Rückgabewert von mysql_fetch_array() unter http://de.php.net/manual/de/function.mysql-fetch-array.php). Mit dem Aufruf

        $zeile = explode (",", $zeile);

        ^ Array

        übergibst du der Funktion explode() als zweiten Parameter also das Array $zeile, explode() erwartet jedoch einen String, siehe http://de.php.net/manual/de/function.explode.php. In deinem ersten Posting steht:

        mit: echo "$zeile[textspalte]"; kann ich nun die Werte mit Komme sehen.

        also steht der String, den du zerteilen möchtest, in $zeile['textspalte'] nicht in $zeile.

        Gruß,
        Andreas.