ich habe 2 sql tabellen.
in der einen sind kategorien gespeichert in der anderen programme, die einer dieser kategorien zugeordnet sind.
ich möchte jetzt die kategorien mit allen dazugehörenden programmen in mehreren spalten darstellen. allerdings maximal 25 pro spalte (abhängig von der höhe des fensters).
kategorie 1 hat 13 einträge
kategorie 2 hat 3 einträge
kategorie 3 hat 3 einträge
kategorie 4 hat 3 einträge
kategorie 5 hat 0 einträge
kategorie 6 hat 1 eintrag
da auch jede kategorie einen eintrag benötigt muss pro kategorie 1 addiert werden.
jetzt zu meiner frage. um den platz optimal auszunutzen will ich ein neues array erstellen, in dem die kategorien so geordnet sind, dass die
anzahl nicht über 25 steigt, jedoch kategorien mit weniger programmeinträgen vorgezogen werden. im oberen beispiel also so:
1. spalte
kategorie 1 13 einträge + 1 für Kategorie
kategorie 2 3 einträge + 1 für Kategorie
kategorie 3 3 einträge + 1 für Kategorie
kategorie 6 1 eintrag + 1 für Kategorie
2. spalte
kategorie 4 3 einträge + 1 für Kategorie
kategorien ohne einträge sollen ans ende des arrays.
bis jetzt hab ich schon mal die anzahl der programme unter jeder kategorie.
[autoit]$MaxEntrys = ($Hoehe - 100)/20
Dim $KatEntrys[$Kategories[0][0]+1][2]
For $i = 1 To $Kategories[0][0] Step 1
$ProgInKat = _DoSQL("SELECT id FROM Programs WHERE Kategorie = '"&$Kategories[$i][0]&"';")
$KatEntrys[$i][0] = $ProgInKat[0][0] + 1
$KatEntrys[$i][1] = $Kategories[$i][0]
Next
in $KatEntrys[$i][0] steht also die anzahl programme und in $KatEntrys[$i][1] der name der kategorie.
das neue array muss ein 2d array sein, also genauso wie das ursprüngliche Kategories, das von einer sql-abfrage kommt. wie kann ich dieses array jetzt erstllen?
für eure hilfe währe ich sehr dankbar.