Wie ist die Performance meiner Lösung?

Hektik

Erfahrenes Mitglied
Hallo!

Ich möchte meine neue Webseite so wartungsfrei wie möglich gestalten. Dazu habe ich mir unter anderem überlegt, auch die Link-Sektion per Datenbank zu realisieren.
Ich möchte weiterhin alle meine eingetragenen Links zusätzlich nach Kategorie sortieren. Und ich möchte außerdem noch die Links, als auch die Kategorien, in die die Links eingeteilt werden sortieren können.
Dafür habe ich eine Tabelle angelegt, in der ich die Kategorien aufliste und deren Position und eine weitere Tabelle für die Links selbst, mit einer Spalte in der die jeweilige Kategorie eingetragen ist.

Gelöst habe ich das ganze dann mit WHILE-Schleifen, was mir aber ein wenig aufstößt, ist, dass ich "Anzahl der Kategorien"+1 MySWL-Queries ausführen muss. Gibts da auch eine "schlankere" Lösung?

Hier mein Code:

PHP:
$sql = "SELECT * FROM linkkategorie ORDER BY position";
$result = mysql_query($sql);

while ($row=mysql_fetch_assoc($result)) {

	$kategorie = $row['kategorie'];

	$kat_sql = "SELECT * FROM links WHERE kategorie = '".$kategorie."' ORDER BY position";
	$kat_result = mysql_query($kat_sql);

	while ($kat_row=mysql_fetch_assoc($kat_result)) {
		echo '<a target="_blank" alt="'.$kat_row['kommentar'].'" class="a10grau" href="'.$kat_row['url'].'"><b>'.$kat_row['titel'].'</b></a><br>';
	}
}

Ich hoffe, man kann durch den Quelltext durchblicken.

Und nochwas: Ich hab hier in Tutorials.de auch eine Version mit LEFT JOIN gefunden, die aber nach 2 Tagen rumprobieren wieder beiseite gelegt, da ich sie nicht zum laufen bekommen habe. Sollte nur das die einzig richtige Möglichkeit sein, so wärs echt nett, wenn mir das jemand erklären könnte :)
 
So sollte es klappen:
PHP:
<?php

$sql = '
SELECT
	`links`.`kommentar`,
	`links`.`url`,
	`links`.`titel`,
FROM
	`links`
	LEFT JOIN `linkkategorie` USING (`kategorie`)
ORDER BY
	`linkkategorie`.`position`,
	`links`.`position`
';

$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
	echo '<a target="_blank" alt="'.$row['kommentar'].'" class="a10grau" href="'.$row['url'].'"><b>'.$row['titel'].'</b></a><br>';
}

?>
 
Ich danke dir :)

Leg mir das mal auf die Seite und werde damit rumbasteln, sobald ich etwas Lust dazu verspüre :)
Aber sehr herzlichen Dank!
 
Zurück