Vinzenz Mai: PHP MySQL Abfrage sortieren

Beitrag lesen

Hallo Dennis,

welche MySQL-Version verwendest Du?

ich habe ein Script, das pro Datensatz in Tabelle x, eine Zeile einfügt. Darin habe ich nochmal eine Abfrage von Tabelle y pro abgerufene Zeile aus Tabelle x.

So was macht man nicht. Es gibt Joins

$n1 = 'SELECT year, number FROM x ORDER BY '.$field.' '.$sort;

while($row = mysql_fetch_object($n2)) {

Das tut weh. Sowas macht man nicht. Sowas vermeidet man unter nahezu allen
Umständen. Abfragen in einer Schleife deutet in nahezu allen Fällen auf
anfängerhafte Fehler hin.

$res = mysql_query('SELECT COUNT(id) AS anzahl FROM y WHERE issue='.$row->number.$row->year);

Aber wenn ich jetzt z.B. nach der Anzahl in Tabellee y das Ganze sortieren will, weiß ich nicht weiter.

Gibt es eine andere Möglichkeit als das Ganze erst in einen Array zu speichern und den nach kompletter Abfrage auszugeben?

Wozu? Vergiß PHP! Nimm SQL!
Ich vermute, dass folgende Query das liefert, was Du haben möchtest.

SELECT  
    COUNT(y.id) AS anzahl,  
    x.number,  
    x.year  
FROM  
    y  
INNER JOIN  
    x  
ON  
    y.issue = CONCAT(x.number, x.field)  
GROUP BY  
    x.number,  
    x.year  
ORDER BY anzahl

In Abhängigkeit von Deinen (leider unbekannten) Daten könnte auch eine leicht
modifizierte Version erforderlich sein. Falls meine Abfrage nicht das gewünschte Ergebnis liefert, so bitte ich Dich darum ein paar Beispieldaten und das daraus sich ergebende Resultat zu posten - mit der Begründung, warum
Du dieses Resultat haben möchtest.

Freundliche Grüße

Vinzenz