• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tabelle mit 4 Spalten per echo

asterix22

Mitglied
Hallo zusammen
Ich suche eine Lösung, wie ich eine Ausgabe aus einem Array in eine Tabelle reinschreiben kann. Die Tabelle sollte 4 Spalten haben.

Meine hier ergibt nur eine Spalte.
PHP:
foreach ($vard as $key) {
    echo '<table> <td width="30"><a href=' .$key. ".php".' target="_blank">'.$key.' </a></td>';
    }

Wie kann ich das auf 4 erweitern?
Vielen Dank
 
Werbung:
Das <table> gehört schon mal nicht in die Schleife und ein <tr> und </tr> fehlt bei dir auch. Ansonsten einfach einen Counter mitlaufen lassen und dann entsprechend eine neue Zeile mit <tr> aufmachen. Das ist reine Logik und hat mit PHP eigentlich eher wenig zu tun.
 
Danke für die Tipps
Ich habe also den Code korrigiert. Aber wie muss ich nun einen Counter einbauen? Könnte mir da noch jemand auf die Sprünge helfen?
PHP:
echo '<table>';
foreach ($vard as $key) {
    echo '<tr> <td width="30"><a href=' .$key. ".php".' target="_blank">'.$key.' </a></td></tr>';
    }
echo '</table>';
 
Werbung:
Also es kommt nun auf dein Array an, wenn du da nur 4 Elemente drin hast brauchst du nicht mal das <tr> in der schleife. Wenn da mehr drin Elemente drin sind musst du natürlich nen Counter mitlaufen lassen, sprich eine variable setzen die in der schleife immer +1 ist, sprich $i++. Damit könntest du denn in der Schleife sagen das er alle 4 Spalten eine neue <tr> aufmachen soll
 
Ja ich habe mehr als 4 Elemente. Wie muss ich nun das der Schleife sagen?
Entschuldigung, blutiger Anfänger... Aber sehr dankbar für konkrete Hilfe!
 
Habs versucht, funktioniert nicht, sieht jemand den Fehler?
PHP:
$anzahl=count($vard);
echo '<table>';
foreach ($vard as $key) {
    for($x = 0; $x < $anzahl; $x++) {

    echo '<tr> <td width="30"><a href=' .$key. ".php".' target="_blank">'.$key.' </a></td>';
    if ($x==4) {
     echo '</tr> <tr>';
        }
}
echo '</table>';
}
 
Werbung:
Du hast die Klammerung falsch gesetzt. Das Ende vom <table> müsste natürlich außerhalb der foreach-Schleife sein. Ebenso solltest Du das <tr> nur dann ausgeben, wenn $x == 0 ist. Schau dir doch einfach mal den erzeugten HTML-Code an, dann sollte dir das klar werden.
 
Code:
<?php
  $counter = 0;
  $columns = 4;

  echo '<table>';

  foreach ($vard as $key)
  {
      if (! ($counter % $columns))
         echo "   <tr>\n";

      echo '      <td width="30"><a href=' .$key. ".php".' target="_blank">'.$key.' </a></td>' . "\n";
  
      $counter++;
  
      if (! ($counter % $columns))
         echo "   </tr>\n";
  }
  echo '</table>';
?>
 
Ganz herzliche Dank bdt600! Und natürlich auch an die andern Helfer.
Funktioniert einwandfrei, genau so wollte ich es. Nun habe ich aber noch eine Frage zum Code (finde ich leider nicht per google):
Warum kannst du hier if-Klauseln einbauen ohne { } und was heisst %?

Vielen Dank für eure allseits prompte Hilfe!
 
Werbung:
Zurück
Oben