fortlaufende Nummerierung und ab bestimmten Wert zweite Spalte

#1
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:
<table style="text-align: left; width: 40%;" border="0" cellpadding="0"cellspacing="0">
<tbody>
<?php
$count =0;
$result =  mysqli_query($Connect, "SELECT DISTINCT unterkategorie FROM $tabelle1a ORDER BY unterkategorie ASC");
while($row = mysqli_fetch_row($result)){
        echo "<tr><td>";
        $count = $count+1;
        echo $count;
        echo "</td><td>$row[0]</td></tr>";
}
?>
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:
<table style="text-align: left; width: 40%;" border="0" cellpadding="0"cellspacing="0">
<tbody>
<?php
$count =0;
$result =  mysqli_query($Connect, "SELECT DISTINCT unterkategorie FROM $tabelle1a ORDER BY unterkategorie ASC");
while($row = mysqli_fetch_row($result)){
    for ($zeile=1; $zeile<=30; $zeile = $zeile+1)
    {       
        echo "<tr>";
            for ($spalte =1; $spalte <=4; $spalte = $spalte+1)
            {
                echo "<td>";
                echo $zeile;
                echo "</td><td>$row[0]</td>";
            }
        echo "</tr>";   
    }   
}
?>
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
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)
PHP:
$spalte = 0;
$maxSpalten = 4;
while($row = mysqli_fetch_row($result)){
   //Nächste Zeile beginnt
   if($spalte % $maxSpalten == 0 && $spalte > 0) $spalte = 0;
   //Zeilenstart
   if($spalte == 0) echo '<tr>';
   //Feld ausgeben
   exho "<td>{$row[0]}</td>";
   //Spalte hochzählen
   $spalte++;
   //Zeile schliessen
   if($spalte % $maxSpalten == 0) echo '</tr>';
}
//Letzte unfertige Zeile schliessen
if($spalte % $maxSpalten != 0) echo '</tr>';
 
#3
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:
 
#5
MOD (Modulo)
Gibt beim Teilen ohne Kommas den Rest zurück:
9 % 3 = 0
8 % 3 = 2
7 % 3 = 1
6 % 3 = 0
 
#7
Jepp. Ist gut zum schauebn ob etwas durch eine Zahl Teilbar ist..
 
#8
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