Hallo!
Also ich habe ca. 10 Kategorie (zur Zeit sind es nur 5 aber wird erweitert werden) und zur Zeit ca. 1.000 Datensätze, denen jeweils eine oder zwei dieser Kategorien zugeordnet sind.
Ich würde sagen das ließe sich mit meiner Methode lösen.
Wenn ich das richtig verstehe, sollte ich also für jede dieser Kategorien rausfinden wieviele Datensätze vorhanden sind (erste MySql Abfrage) und dann via Php rand() eine Zahl zwischen eins und Gesamtanzahl der Datensätze generien lassen um diese dann in der zweiten Mysql Abfrage verwenden.
Genau.
Sprich für jede Kategorie zwei Abfragen?
nicht unbedingt. Zum abfragen der Gesamtsummen pro Kategorie reicht IMHO auch ein SELECT count(*) as Anzahl FROM table GROUP BY kategorie
Das sollte die Anzahl in den Kategoriern mit einer Abfrage bringen.
Oder vielleicht auch die sparen, mit http://de.mysql.com/documentation/mysql/bychapter/manual.de_Reference.html#IDX1232
Wobei ich ehrlich gesagt, auch das mit dem Limit $y,1 nicht ganz verstehe - das würde doch heißen, daß diese Abfrage alle Datensätze von 1 bis $y abfrägt und trotzdem den ersten ausgibt - oder stehe ich da vollkommen auf dem Schlauch (was sehr wahrscheinlich ist - man sollte abends nach dem Feierabend Bierchen einfach nicht mehr posten...)
Also wie LIMIT funktioniert steht hier:
http://de.mysql.com/documentation/mysql/bychapter/manual.de_Reference.html#SELECT
$y ist das Ergebnis von rand().
Wie gesagt gibt es Rand auch in MySQL, nur bin ich nicht so sicher ob man das hier machen solte, vielleicht kann das Michael ja sagen.
Grüße
Andreas