$_GET in MySQL Select

kleinlich

Grünschnabel
Hallo,

i.d.R. navigiere ich per URL durch meine Seiten und halte mich dabei an das Tutorial von Nils Hitze.
Dies setzt allerdings voraus, dass jeder Inhalt, der includet wird, auch als Datei vorhanden sein muss.

Jetzt hat meine Datenbank, auf die ich zugreifen möchte, annähernd 1000 Zeilen und ich möchte vermeiden, hier tatsächlich knapp 1000 verschiedene Dateien zu erstellen.

Ich bin leider kein PHP Profi und habe deshalb nur folgende Theorie:

Mein bisheriger Code:
PHP:
<?
include ("db_connection.php");

$query = "SELECT * FROM $table WHERE kategorie = 'MeineKategorie'";
$result = mysql_query($query,$connection);

	while($line = mysql_fetch_array ($result))
	{

	echo "
		...jede Menge Code
		";

	}

mysql_close($connection);

?>
wird aufgerufen mit inhalt.php?kategorie=MeineKategorie

Soweit funktionierts!

Wenn ich jetzt
PHP:
"SELECT * FROM $table WHERE kategorie = 'MeineKategorie'";
ersetze durch
PHP:
"SELECT * FROM $table WHERE kategorie = ".$_GET['kategorie']."";
bekomme ich folgende Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Ich bin für jede Hilfe dankbar
 
Ganz einfach. Du hast die '' vergessen (!)

PHP:
"SELECT * FROM $table WHERE kategorie = '".$_GET['kategorie']."'";
 
Am besten gehst du hin und machst z.B. ein Array, in welchem alle erlaubten Seiten/Kategorien drinne stehen, und prüfst vor der Abfrage, ob $_GET['blaqwasauchimmer'] dazugehört, um eben diese Injections provisorisch zu verhindern.
 
Zurück