1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

fortlaufende Nummerierung und ab bestimmten Wert zweite Spalte

Dieses Thema im Forum "PHP" wurde erstellt von Spiro, 19. Dezember 2016.

  1. Spiro

    Spiro Mitglied

    Hallo Leute,

    ich muss euch schon wieder nerven :rolleyes:

    Ich möchte meine Ausgabe ein bisschen mehr sortieren und dafür dachte ich an eine fortlaufende Nummerierung.
    Im Moment sieht es so aus:
    5.jpg

    Derzeit gibt es bei der Unterkategorie 42 Einträge. Das werden aber bestimmt noch mehr. Diese Anzeige dient auch nur dazu, um bei einer Neuanlage von Artikeln die Kategorien/Unterkategorien kopieren zu können, damit immer die gleiche Schreibweise gewährleistet ist. Ansonsten hat die Auflistung keine Funktion.

    Der Code der mir die Liste erstellt sieht so aus:

    PHP:
    1. <table style="text-align: left; width: 40%;" border="0" cellpadding="0"cellspacing="0">
    2. <tbody>
    3. <?php
    4. $count =0;
    5. $result =  mysqli_query($Connect, "SELECT DISTINCT unterkategorie FROM $tabelle1a ORDER BY unterkategorie ASC");
    6. while($row = mysqli_fetch_row($result)){
    7.         echo "<tr><td>";
    8.         $count = $count+1;
    9.         echo $count;
    10.         echo "</td><td>$row[0]</td></tr>";
    11. }
    12. ?>
    Jetzt würde ich es halt gerne in mehrere Spalten aufteilen, damit man nicht scrollen muss um sehen zu können ob die gewollte Kategorie/Unterkategorie schon vorhanden ist.

    In etwa so:
    6.jpg

    Mein Code dazu:
    PHP:
    1. <table style="text-align: left; width: 40%;" border="0" cellpadding="0"cellspacing="0">
    2. <tbody>
    3. <?php
    4. $count =0;
    5. $result =  mysqli_query($Connect, "SELECT DISTINCT unterkategorie FROM $tabelle1a ORDER BY unterkategorie ASC");
    6. while($row = mysqli_fetch_row($result)){
    7.     for ($zeile=1; $zeile<=30; $zeile = $zeile+1)
    8.     {      
    9.         echo "<tr>";
    10.             for ($spalte =1; $spalte <=4; $spalte = $spalte+1)
    11.             {
    12.                 echo "<td>";
    13.                 echo $zeile;
    14.                 echo "</td><td>$row[0]</td>";
    15.             }
    16.         echo "</tr>";  
    17.     }  
    18. }
    19. ?>
    Wie ihr sehen könnt, klappt das zwar mit den Zeilen und Spalten, allerdings steht da überall der gleiche Eintrag drin :(

    Irgendwo hab ich da einen Denkfehler, komme aber im Moment nicht drauf.
     
  2. Yaslaw

    Yaslaw n/a Moderator

    Jepp Hast du. Du erstellst Pro row 30 Zeilen und 4 Spalten

    Das ist A) Verkehrt rum und B) unflexibel

    Ich würde es etwa so lösen (ungetestet)
    Code (PHP):
    1. $spalte = 0;
    2. $maxSpalten = 4;
    3. while($row = mysqli_fetch_row($result)){
    4.    //Nächste Zeile beginnt
    5.    if($spalte % $maxSpalten == 0 && $spalte > 0) $spalte = 0;
    6.    //Zeilenstart
    7.    if($spalte == 0) echo '<tr>';
    8.    //Feld ausgeben
    9.    exho "<td>{$row[0]}</td>";
    10.    //Spalte hochzählen
    11.    $spalte++;
    12.    //Zeile schliessen
    13.    if($spalte % $maxSpalten == 0) echo '</tr>';
    14. }
    15. //Letzte unfertige Zeile schliessen
    16. if($spalte % $maxSpalten != 0) echo '</tr>';
     
    Spiro gefällt das.
  3. Spiro

    Spiro Mitglied

    Hallo Yaslaw,

    ich danke dir!! Funktioniert super!!

    Werde mir die Funktion aber noch mal in aller Ruhe anschauen, damit ich die ggf. erweitern bzw. ändern kann. Möchte das ja auch verstehen :cool::rolleyes:
     
  4. Spiro

    Spiro Mitglied

    Eine Frage hab ich da dann noch.
    PHP:
    1. if($spalte % $maxSpalten
    2. // was bedeutet das % ???
    3. == 0 && $spalte > 0) $spalte = 0;
    4. // die anderen Operatoren verstehe ich.
     
  5. Yaslaw

    Yaslaw n/a Moderator

    MOD (Modulo)
    Gibt beim Teilen ohne Kommas den Rest zurück:
    9 % 3 = 0
    8 % 3 = 2
    7 % 3 = 1
    6 % 3 = 0
     
    Spiro gefällt das.
  6. Spiro

    Spiro Mitglied

    Ah !!!!
    Also direkt eine "Funktion" beim Teilen. :D
     
  7. Yaslaw

    Yaslaw n/a Moderator

    Jepp. Ist gut zum schauebn ob etwas durch eine Zahl Teilbar ist..
     
  8. Spiro

    Spiro Mitglied

    Ja, danke.

    Hab mir die Funktion in mein schlaues Büchlein aufgeschrieben und mit sehr langen Kommentaren bestückt. Daher die Frage,weil mir das so noch nicht untergekommen war.

    Aber man lernt ja nie aus :D
     
Die Seite wird geladen...