Hallo liebe Helfer,
Immer wieder liest man hier im Forum, dass man besser direkte MySQL Abfragen machen soll anstatt es über PHP zu lösen.
Ich möchte mal gerne eure Meinung wissen zu folgender Situation.
Es gibt eine etwas umfangreichere MySQL Abfrage:
SELECT B.Kunde, A.IdKd,A.beschreibung, A.maschserien AS SerienNummer
From
software A
LEFT JOIN bestellung B ON B.IdKd = A.IdKd
WHERE SUBSTRING(A.maschserien, -6) IN
(SELECT SUBSTRING(X.maschserien, -6)
From
software X
WHERE X.maschserien != ""
GROUP BY SUBSTRING(X.maschserien, -6)
HAVING Count(*) > 1
ORDER BY X.IdKd ASC)
ORDER BY SUBSTRING(A.maschserien, -6) ASC, A.IdKd ASC
Diese Abfrage in PhpMyAdmin abgesetzt dauert sage und schreibe 8 Sekunden und liefert mir 285 Datensätze
Das Ganze nun mit PHP umsetzt in zwei Abfragen und mit While Schleifen:
$result = mysql_query("
SELECT
SUBSTRING(X.maschserien, -6) AS maschcode
From software X
WHERE
X.maschserien != ''
GROUP BY
SUBSTRING(X.maschserien, -6)
HAVING Count(*) > 1
ORDER BY X.IdKd ASC
");
while($var = mysql_fetch_array($result)){
$result1 = mysql_query("
SELECT B.Kunde, A.IdKd,A.beschreibung, SUBSTRING(A.maschserien, -6) AS SerienNummer
From
software A
LEFT JOIN bestellung B ON B.IdKd = A.IdKd
WHERE SUBSTRING(A.maschserien, -6) = '$var[maschcode]'
ORDER BY SUBSTRING(A.maschserien, -6) ASC, A.IdKd ASC
");
while($var1 = mysql_fetch_array($result1)){
echo "Ausgabe..." ... ";
}
Die PHP Lösung liefert mir genau die gleichen Datensätze (natürlich in einer anderen sortierten Ausgabe) aber wesentlich schneller. (ich würde sagen im Millisekunden Bereich)
Die Frage ist nun. Was ist sauberer, besser?
viele Grüsse
Werner