Auflisten aber letzten Eintrag nicht unterstreichen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Auflisten aber letzten Eintrag nicht unterstreichen

    Hallo,

    das listet bei mir Daten aus einer DB auf und setzt unter jede Ausgabe eine Linie:

    PHP-Code:
    foreach(pdo_query("SELECT * ...))

    {

    echo 
    $row['bla'];
    echo "
    <hr>";


    Unter dem letzten Eintrag soll jetzt aber keine Linie ausgegeben werden.

    Welche Tricks gibt's da?

    Die Anzahl der zurückgegeben DB-Sätze liegt leider nicht vor.

    Ev. alles erstmal nicht per echo() ausgeben sondern in einen String packen, dann das <hr> am Schluss irgendwie entfernen lassen?!

    Danke!

  • #2
    Einfach die Linie vor dem Eintrag ausgeben – und über ein simples Flag dafür sorgen, dass dies beim ersten Datensatz nicht gemacht wird.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hallo,

      Ich würde das sammeln und dann joinen:
      PHP-Code:
      $aData array_map(
              function ( 
      $row ) {
                  return 
      $row['bla'];
              }
              , 
      pdo_query/*...*/ )
          );

      echo 
      implode'<hr>'$aData ); 
      Ich kenne Deine Funktion pdo_query() nicht, aber ich hoffe, Du sorgst dafür, daß immer ein Array zurückgegeben wird, selbst wenn es leer ist.
      PDO::query() selbst liefert bei einem Fehler nämlich false zurück, dann bekommst Du sowohl bei einer foreach(), wie auch bei meinem array_map() einen Warnhinweis.

      Gruß Arne

      Kommentar


      • #4
        So das mit der Linie funktioniert jetzt .-)

        Aber kann man das hier ev. noch irgendwie eleganter lösen?

        Es sollen alle Kunden gruppiert nach Geburtstag (DATE-Feld in DB) ausgegeben werden.

        Es wird jeweils immer ein Titel darüber mit dem Geburtstag ausgegeben, darunter dann die Kunden aufgelistet. Danach geht's weiter mit dem nächsten Tag usw.

        Kann man die DIVs vor/nach dem foreach() irgendwie vermeiden? Produziert immer ein "leeres" <div></div>.

        Code:
        echo "<div>";
        
        foreach(pdo_query("SELECT kunde, geburtstag FROM tabelle ORDER BY geburtstag ASC", array($leer)) as $row)
        
        	{
        
        		if(!isset($geburtstag) or $geburtstag != $row['geburtstag'])
        		
        			{
        			
        				unset($linie);
        				
        				echo "</div>";
        				
        				echo "<div class=titel><h1>".$row['geburtstag']."</h1></div><div class=kunden>";
        		
        			}
        	
        		if(isset($linie)){echo "<hr>";}
        	
        		echo $row['kunde']."<br>";
        			
        		$linie = 1;
        			
        		$geburtstag = $row['geburtstag'];
        
        	}
        
        echo "</div>";
        Danke!

        Kommentar


        • #5
          Warum produziert das ein leeres div?

          Ich würde noch an den Kontextwechsel bei Ausgabe der Daten in HTML denken. → htmlspecialchars

          - Programmiertechnik/Kontextwechsel ? SELFHTML-Wiki

          Kommentar

          Lädt...
          X