kostenloser Webspace werbefrei: lima-city


[PHP] Strings aneinader hängen...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    ho ;)

    // EDIT:
    Problem "gelöst".
    Die Schleife wurde (warum auch immer) nie ausgeführt...
    Jetzt habe ich zwar ein anderes Problem, aber diesen Thread kann man schließen :D

    //EDIT 2:
    Die Schleife wurde nie ausgelöst, weil das $-Zeichen vor der Variable $anzahl gefehlt hat :/

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

    Ich verzweifle gerade ein wenig an einem kleinen Script :/

    Ich möchte eine Liste von Namen, die mir von einer Datenbankabfrage ausgegeben werden m.h. von .= getrennt mit , in eine Variable speichern.

    An und für sich sollte das ja nicht zu schwer sein, aber ich stehe wohl etwas auf der Leiter, und bekomme es nicht hin.
    Veratet mir mal pls, was ich falsch mache...

    Mein Code:
    $anzahl = mysql_num_rows($result);
    				
    				while(anzahl > 1)
    				{
    				  $row_name = mysql_fetch_array($result);
    				  $name .= $row_name['name'].', ';
    				  $anzahl--;
    				}
    				$row_name = mysql_fetch_array($result);
    				$name .= $row_name['name'];


    Das Problem:
    echo $name;
    gibt nicht wie gewünscht folgendes aus: "Name1, Name2, Name3"
    sondern interessanter weise folgendes: "Name1Name2Name3".

    Was mache ich falsch?

    lg
    Sincer

    Beitrag zuletzt geändert: 20.2.2010 19:02:26 von sincer
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. @sincer
    Was mache ich falsch?
    dein konstrukt ist überaus sonderbar!
    zeigst mir bitte query und tab-struktur? dann könnte man eventuell besser sehen.
  4. Hallo,
    Versuch es mit der Funktion implode().
    <?php
    
    $array = mysql_fetch_array($result);
    $output = implode(", ",$array);
    
    echo $output;
    
    ?>

    Gruß
    styVe
  5. implode hilft da wenig.

    while ($row = mysql_fetch_array($result))
      $name .= $row['name'].', ';


    oder noch besser:

    $names = array();
    while ($row = mysql_fetch_array($result))
      $names[] = $row['name'];
    $name = implode(', ', $names);


    Beitrag zuletzt geändert: 20.2.2010 19:09:41 von fchriis
  6. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    czibere schrieb: dein konstrukt ist überaus sonderbar!

    Ich weiß, ich bin nicht wirklich gut in PHP :/
    Außerdem habe ich nicht die ganze SQL-Query gepostet, weil die eig. unwichtig ist :P
    Es ging nur um das ".=" und das Problem ist gelöst...

    -> while Schleife...
    falsch:
    while(anzahl > 1)

    richtig:
    while($anzahl > 1)


    lg
    Sincer

    PS:
    @fchris:
    Im endeffekt habe ich es jetzt so gemacht, wie du es gepostet hast.
    Mein Problem ist nur, dass ich eine Aufzählung der Namen habe, die ich mit Komma trennen will.
    Das Ergebnis, dass ich jetzt bekomme ist: Name1, Name2, Name3,
    Das letzte Komma brauche ich aber nicht.
    while ($row = mysql_fetch_array($result))
      $name .= $row['name'].', ';
  7. also das hat mir funktioniert:
    $name = "";
    for ($i = mysql_num_rows ($result); $i > 1; $i--) {
      $row_name = mysql_fetch_array ($result);
      $name    .= $row_name['name'].', ';
    }
    $row_name = mysql_fetch_array($result);
    echo $name    .= $row_name['name'];

    ==== edit
    ok, ich war damit hinterher, aber immerhin eine andere lösung :o)

    Beitrag zuletzt geändert: 20.2.2010 19:20:15 von czibere
  8. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    ho ;)

    Thx czibere!
    Auf eine for-Schleife hätte ich selber kommen müssen!

    Das ist eine nette Lösung...
    Ich habe es jetzt ganz billig gemacht, in dem ich das letzte Zeichen (Komma) via Substring() entfernt habe.
    Aber ich glaube, ich schreibe es auf die for schleife um... gefällt mir besser :P

    lg
    Sincer
  9. sincer schrieb:
    PS:
    @fchris:
    Im endeffekt habe ich es jetzt so gemacht, wie du es gepostet hast.
    Mein Problem ist nur, dass ich eine Aufzählung der Namen habe, die ich mit Komma trennen will.
    Das Ergebnis, dass ich jetzt bekomme ist: Name1, Name2, Name3,
    Das letzte Komma brauche ich aber nicht.
    while ($row = mysql_fetch_array($result))
      $name .= $row['name'].', ';


    dann nimm den code aus meinem edit ;)

    $names = array();
    while ($row = mysql_fetch_array($result))
      $names[] = $row['name'];
    $name = implode(', ', $names);


    Beitrag zuletzt geändert: 20.2.2010 19:22:44 von fchriis
  10. ich schreibe es auf die for schleife um... gefällt mir besser :P
    es ist ein bisschen kürzer und schneller :o)
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!