PHP Navigation in Verbindung mit mySQL

rostiger nagel

Grünschnabel
Hi,

erstmal muss ich sagen, dass ich ein relativer Anfänger in PHP und mySQL bin und wenns darum geht, neues dazuzulernen auch sehr begriffstützig bin. Deshalb bitte nicht zu streng mit mir sein. ;)

Jetzt zu meiner Frage:
Hab überall danach gesucht, bin aber letztendlich nicht fündig geworden, da ich auch nicht wirklich weiß, wonach ich eigentlich suchen soll.

Ich hab meine Homepage so aufgebaut, dass im Browser - wenn ich z.B. auf den Link "Fotos" (Datei: fotos.php) klicke - "http://.../index.php?content=fotos" angezeigt wird. Nun möchte ich mit dieser Variante auf Tabellen in meiner Datenbank verweisen.

Ich habe also z.B. eine Tabelle mit dem Namen "kategorie" und zwei Einträgen mit der ID 1 und 2. Ich möchte es dann auf der Seite so haben, dass ich per Klick auf den einen Link zum ersten Eintrag der Tabelle weitergeleitet werde und per Klick auf den anderen Link zum anderen Eintrag.

Ein Beispiel, wie ich mir das vorstelle, ist hier zu finden: http://www.tornadosrapid.at/matches.php

Dort wird z.B. per Klick auf "Rapid Wien" zur Kategorie 1 weitergeleitet, auf dieser Seite kann man dann per Klick auf die verschiedenen Saisonen zugreifen. Da ich diesen Teil meiner Seite mit fast der gleichen Struktur aufbauen möchte, wäre das eigentlich eine optimale Vorlage, wobei ich eben leider keine Ahnung habe, wie so etwas funktioniert.

Ich hoffe, meine Frage ist halbwegs verständlich rübergekommen und bedanke mich schon mal im Voraus für alle hilfreichen Antworten! :)
 
Du musst einfach machen:

PHP:
if($kategorie)
{
// Nun einfach eine DB Abfrage machen, und dann den Inhalt ausgeben
}
 
So, danke erstmal für die schnellen Antworten, aber wie schon gesagt bin ich sehr begriffstützig :D

Hab das jetzt mal so gemacht:

PHP:
if(isset($_GET['kategorie']))
{
$abfrage = "select * from `kategorie`";

$ergebnis = mysql_query($abfrage);
$zaehler = mysql_num_rows($ergebnis);
		
	for($i=0;$i<$zaehler;$i++)
	{
		$ID_Kategorie = mysql_result($ergebnis,$i, "ID_Kategorie");
		$Kategorie = mysql_result($ergebnis, $i, "Kategorie");
		$Bild = mysql_result($ergebnis, $i, "Bild");
		$Beschreibung = mysql_result($ergebnis, $i, "Beschreibung");

		$sql = "select * from `kategorie` where `Kategorie` = '$ID_Kategorie'";
		$ergebnis2 = mysql_query($sql);
		$zaehler2 = mysql_num_rows($res2);
		
		echo "$Beschreibung";
	}
}
else
{
	$abfrage = "select * from `kategorie`";

	$ergebnis = mysql_query($abfrage);
	$zaehler = mysql_num_rows($ergebnis);
		
	for($i=0;$i<$zaehler;$i++)
	{
		$ID_Kategorie = mysql_result($ergebnis,$i, "ID_Kategorie");
		$Kategorie = mysql_result($ergebnis, $i, "Kategorie");
		$Bild = mysql_result($ergebnis, $i, "Bild");
		$Beschreibung = mysql_result($ergebnis, $i, "Beschreibung");

		$sql = "select * from `kategorie` where `Kategorie` = '$ID_Kategorie'";
		$ergebnis2 = mysql_query($sql);
		$zaehler2 = mysql_num_rows($ergebnis2);
		
		echo "<table align='center' border='0'><tr><td><a href='index.php?content=fotos&kategorie=$ID_Kategorie'><img border='0' src='$Bild'></a></td></tr></table>";
	}
}

Wird wahrscheinlich völlig falsch sein, wie ich es gemacht hab, aber ich bin wie gesagt noch ein ziemlicher Anfänger in diesem Bereich.

So wie ich es jetzt gemacht habe, zeigt er standardmäßig untereinander zwei Bilder, die in der Datenbank definiert sind an, wobei das obere Bild auf "http://.../index.php?content=fotos&kategorie=1" verweist und das andere eben auf "kategorie=2". Weiter weiß ich dann aber nicht mehr, wie gesagt möchte ich dann quasi auf eine neue Seite kommen...
 
Du hast ja am Anfang if($kategorie) bla... gemacht und dann dein else was dann sozusagen deine ganzen Kategorien ausgibt. nun wenn du auf einen link klickst bekommst du ja z.B. den Link: index.php?content=fotos&kategorie=1, in diesem fall wird ja die Seite neu geladen, und es wird die if klammer ausgeführt weil diesmal ja die Variable Kategorie vorhanden ist. Und nun musst du einfach eine Abfrage machen

PHP:
$abfrage = "select * from `kategorie` where id = `$_GET[kategorie]`";

und dann eben einfach den Inhalt auslesen usw.
 
Wahrscheinlich bin ich einfach nur unfähig. Ich hab das jetzt so gemacht, wie du es mir beschrieben hast, aber es will noch immer nicht funktionieren.

PHP:
if(isset($_GET['kategorie']))
{
$abfrage = "select * from `kategorie` where id = `$_GET[kategorie]`";

$ergebnis = mysql_query($abfrage);
$zaehler = mysql_num_rows($ergebnis);
		
	for($i=0;$i<$zaehler;$i++)
	{
		$ID_Kategorie = mysql_result($ergebnis,$i, "ID_Kategorie");
		$Kategorie = mysql_result($ergebnis, $i, "Kategorie");
		$Bild = mysql_result($ergebnis, $i, "Bild");
		$Beschreibung = mysql_result($ergebnis, $i, "Beschreibung");

		$sql = "select * from `kategorie` where `Kategorie` = '$ID_Kategorie'";
		$ergebnis2 = mysql_query($sql);
		$zaehler2 = mysql_num_rows($res2);
		
		echo "$Beschreibung";
	}
}

$abfrage = "select * from `kategorie`";

$ergebnis = mysql_query($abfrage);
$zaehler = mysql_num_rows($ergebnis);
		
for($i=0;$i<$zaehler;$i++)
{
	$ID_Kategorie = mysql_result($ergebnis,$i, "ID_Kategorie");
	$Kategorie = mysql_result($ergebnis, $i, "Kategorie");
	$Bild = mysql_result($ergebnis, $i, "Bild");
	$Beschreibung = mysql_result($ergebnis, $i, "Beschreibung");

	$sql = "select * from `kategorie` where `Kategorie` = '$ID_Kategorie'";
	$ergebnis2 = mysql_query($sql);
	$zaehler2 = mysql_num_rows($ergebnis2);
		
	echo "<table align='center' border='0'><tr><td><a href='index.php?content=fotos&kategorie=$ID_Kategorie'><img border='0' src='$Bild'></a></td></tr></table>";
}

Was mach ich falsch? :(
 
Ok, jetzt komm ich der Sache schon näher :)
Ich hab jetzt das else wieder reingemacht und jetzt öffnet er auch die neue Seite, allerdings schreibt er mir anstatt der "$Beschreibung" folgende Fehlermeldung:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\rapidgeist\fotos.php on line 17

line 17 ist diese: $zaehler = mysql_num_rows($ergebnis);


Wo liegt da der Fehler?
 
Du solltest die Abfrage vielleicht auch besser so machen:

PHP:
$abfrage= @mysql_query("select * from kategorie where id = '$_GET[kategorie]'"); 
$ergebnis = mysql_fetch_assoc($abfrage); 
// Nun kannst du deine Ergebnisse abfrage durch $ergebnis[tabellenname]
 
Zurück