ich hab mal wieder eine komplizierte SQL-Abfrage - bzw. Weiterverarbeitung vor.
Grundlage ist diese Abfrage:
Code: Alles auswählen
SELECT ID, MID, COUNT(ID) AS anzahl, MAX(time) AS neuste FROM dbase1 GROUP BY ID, MID
Code: Alles auswählen
ID MID anzahl neuste
1 3 6 1352730607
2 1 7 1354709044
2 3 336 1352477062
Sinn ist es aus diesen Angaben eine Sitemap zu basteln
Anzahl/15 (aufgerundet) = Seitenzahl
Mit der Ausgabe oben sehen die links in der Sitemap dann also so aus:
/index.php?ID=2&MID=1
/index.php?ID=2&MID=3
/index.php?ID=2&MID=3&seite=2
/index.php?ID=2&MID=3&seite=3 ....
Offensichtlich richtig. Jetzt kam der eigentlich Fehler zu tage:
Problem ist eine komplizierte Verschachteltung wenn mehre MID vorhanden sind.
Ist zu einer ID nur ein MID vorhanden lautet die URL
/index.php?ID=2 <- das ganze landet in einem Menu namens Übersicht ... hier stehen dann ALLE MID's drin - ab 15 Einträge dann halt mit Pagination.
Sind zu einer ID aber 2 MIDs vorhanden sieht das ganze so aus:
/index.php?ID=2 <- Übersicht -> hier sieht man zu jeder MID die Top 5 Einträge (!)
/index.php?ID=2&MID=1 <- Menu MID 1
/index.php?ID=2&MID=3 <- Menu MID 3
Fehler erkannt?
Nach meinem ersten Ansatz muss ich ID und MID in die Sitemap hauen => Ist aber nur EINE MID vorhanden, hau ich hier für 20 Seiten, 20 Links mit MID=3 rein ... ich schreibe also Links in die Sitemap die zwar funktionieren, aber nicht richtig sind (hab canonicals drin, die dieser Sitemap dann widersprechen würden; ok canonicals sind dafür da den richtigen Content zu markieren - aber ich hätte es doch gerne sauber übermittelt).
Meine IDEE war nun ... ich brauche ein erweitertes Ergebnis:
Code: Alles auswählen
ID MID anzahl neuste anzahlMID
1 3 6 1352730607 1
2 1 7 1354709044 2
2 3 336 1352477062 2
Nur wurde mir schon angedeutet das ich so eine Ausgabe auf Basis meiner Abfrage oben nicht hinbekomme. Wir könnte ich das sonst hin bekommen?
Ich hoffe ihr habt das Problem verstanden?

IDs könnten mehrere HUNDERT sein. MIDs derzeit nur 3.
Die Sitemap wird in der Nacht erstellt - also dann wenn bissel mehr CPU/DB-Power vorhanden ist



Danke
Grüße
Wuppi