Letzter Eintrag bitte OHNE Komma

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Letzter Eintrag bitte OHNE Komma

    hiho,

    in einer Schleife gebe ich Buchtitel aus (max. 3, aber nicht zwingend drei). Die Ausgabe erfolgt von Kommata getrennt:

    Die Bibel, Das Kleine Arschloch, Casablanca,

    Jetzt möchte ich verhindern, dass er hinter den jeweils letzten Eintrag noch ein Komma setzt (im Beispiel darf hinter Casablanca kein Komma mehr stehen).

    PHP Code:

    $k
    =0;

    foreach (
    $titles as $item => $value) {

        if (
    $value['puID'] == $row_rsBook['PublisherID']) {
        
            if (
    $k <= 2) {
             
                echo 
    $value['title'].', ';
                
    $k++;
            
            }
                
        }
                                    

    So sieht es bisher aus, weiss jemand, wie ich es hinkriege, dass er das jeweils letzte Komma weglässt?

    1000 Dank, Marc

  • #2
    Scheide mit substr die letzten zwei Zeichen (Komma und Leerzeichen) nachträglich wieder raus
    Ich denke, also bin ich. - Einige sind trotzdem...

    Comment


    • #3
      Mache die Komma vor jedem Buch ausser vor dem ersten (mit $flag oder wenn string leer ist).
      Sehe ich gerade du kannst $k abfragen.

      Comment


      • #4
        Re: Letzter Eintrag bitte OHNE Komma

        PHP Code:
                 if ($k <= 2) {
               echo 
        $value['title'];
               if(
        $k<2) {
                 echo 
        ', ';
               }
               
        $k++; 
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Comment


        • #5
          PHP Code:
          implode(","$array); 

          Comment


          • #6

            PHP Code:
            von wahsaga:
            echo 
            $value['title'];
                   if(
            $k<2) {
                     echo 
            ', ';
                   }


            kürzer_aber_ äquivalent:
            echo 
            $value['title'] . ($k<2?', ':''); 

            Comment


            • #7
              Man Ihr könnt ja alle schön viel schreiben ... schon mal den letzten parameter von rtrim() gesehen ... ?
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Comment


              • #8
                Noch ne Möglichkeit:

                PHP Code:
                $output '';
                while(
                $value pos($titles)){

                  
                $output .= $value['title'];

                  if(
                next($titles)){
                    
                $output.= ', ';
                  }
                }
                echo 
                $output

                Last edited by prego; 30-05-2006, 13:28.

                Comment


                • #9
                  Und grad noch eine:

                  PHP Code:
                  $items = array();
                  foreach(
                  $titles AS $value){
                    if (
                  $value['puID'] == $row_rsBook['PublisherID']) {
                      
                  $item[] = $value['title'];
                    }
                  }

                  echo 
                  implode(",",$items); 

                  Comment


                  • #10
                    Original geschrieben von prego
                    Und grad noch eine:

                    [
                    "interessante" Variante. Warum?
                    Last edited by muh (newbie); 30-05-2006, 13:38.

                    Comment


                    • #11
                      Implode hängt hinten das letzte Komma nicht an, sondern verbindet nur die Array Elemente mit "glue" - also...


                      EDIT:
                      Wobei ich gerade einen Fehler sehe. $item[] muß natürlich $items[] heißen.

                      Comment


                      • #12
                        Aha
                        (max. 3, aber nicht zwingend drei).
                        Wie macht man das mit implode?

                        Comment


                        • #13
                          Original geschrieben von muh (newbie)
                          Aha

                          Wie macht man das mit implode?
                          ganz einfach so wie prego es geschrieben hat vielleicht?
                          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                          Schön - etwas Geschichte kann ja nicht schaden.
                          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                          Comment


                          • #14
                            Original geschrieben von Quetschi
                            ganz einfach so wie prego es geschrieben hat vielleicht?
                            Aha, das sorgt meines geringen Wissens nicht dafür, dass höchstens 3 Einträge angezeigt werden, auch wenn es mehr hat. Auch die anderen Beiträge sind nicht dafür gedacht.

                            Comment


                            • #15
                              es sorgt dafür, dass so viele angezeigt werden wie im Array $titles drin sind - wenn irgendwelche Begrenzungen erwünscht sind kann man das ja an anderer Stelle lösen - ich denke Pregos Beispiel ging davon aus, dass $titles bereits mit der richtigen Menge gefüllt ist.
                              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                              Schön - etwas Geschichte kann ja nicht schaden.
                              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                              Comment

                              Working...
                              X