Hilfe, bin zu dumm dafür (MySQL & PHP)

hogofogo

Grünschnabel
Hallo Leute!

Ich stehe vor einem großen Problem.

Ich habe ein kleines Web-Reisebüro erstellt. Wenn man auf "Anlagen" klickt, wird eine Abfrage gestartet welche alle Länder aus der Datenbank einliest und gruppiert. Diese Werden als Hyperlinks an die jeweilige .php-Datei weiterverlinkt - in welcher dann wieder eine detailliertere Abfrage zu den konkreten Länderspezifischen Angeboten anzeigt.
Klickt man nun auf das gewünschte Angebot - so verlinkt dieses auf die Angebots-Seite (welche ich für jedes Angebot neu erstellen muss - ist viel Arbeit für jedes Angebot ne extra Seite zu machen)

Wie schaffe ich es nun eine Vorlageseite zu machen in die einfach nur die gewünschten Angebote aus der DB eingetragen werden - damit ich nicht immer eine neue Seite für jedes Angebot machen kann

Das blöde an dem ganzen ist, dass ich nur eine Datenbank (Angebote) mit allen Inhalten habe.

Ich habe nämlich gehört, dass ich dafür 2 Tabellen brauche und dann irgendwie eine Angebots-ID übermitteln soll. Da ich aber nur ein Anfänger bin und vom ganzen noch nicht viel Ahnung habe, würde ich dies nun gerne von euch mal hören.

Sieht euch bitte mal die Seite an und achtet aber nicht auf den Inhalt oder Layout usw..... Klickt bitte auf "Anlagen" -> dann auf "Koratien" -> und dann auf "Valalta". So sollte es im Endeffekt aussehen, nur eben ohne jedes mal per Hand eine neue Seite für die Angebote erstellen zu müssen. :rolleyes:

http://www.fkk-travel.com

Vielen Dank für eure Mühe

LG
Alex
 
Naja das ist doch eigentlich kein Problem...
Du bräuchtest für so ein System 2 Tabellen:
- Tabelle1: laender
Felder: land_id, name
- Tabelle2: anlagen
Felder: anlage_id, land_id, name, beschreibung (oder du teilst beschreibung in mehrere Spalten auf, wie z.B. lage, ausstattung, appartements etc.)

Wenn man nun auf den Link FKK-Anlagen klickt, kommt man auf eine PHP-Seite - nennen wir sie mal laender.php - die alle Länder aus der Datenbank ausliest und Links zu der Seite für die Anlagenübersicht erzeugt.
z.B.:
PHP:
<a href="anlagen.php?land_id=1">Kroatien</a>
<a href="anlagen.php?land_id=2">Österreich</a>
...
DIe land_id und der Name des Landes kommen dabei aus der Datenbank (Tabelle laender)

Die Seite anlagen.php bekommt jetzt also durch den Link per URL (GET) die land_id geliefert und liest daraufhin alle Anlagen aus der Tabelle anlagen aus, deren land_id == $_GET['land_id'] ist.
Dann werden einfach alle Anlagen dieses Landes mit kurzer Beschreibung ausgegeben und ein Link für jede Anlage auf eine Detailseite erzeugt
z.B.
PHP:
<a href="anlage_detail.php?anlage_id=1">FKK-Feriendorf VALALTA</a>
....
Die anlage_id stammt wiederum aus der Tabelle anlagen, die vorher ausgelesen wurde.

Auf der Seite anlage_detail.php wird nun nur noch der Datensatz in der Tabelle anlagen ausgelesen, dessen anlage_id == $_GET['anlage_id'] ist und mit der gesamten Beschreibung und Bildern etc. ausgegeben.

So sollte das Ganze prinzipiell funktionieren.
Wenn du noch Fragen hast, dann frag einfach oder schreib ne PN oder wie auch immer ;-)
 
[edit] lol da war einer schneller :)

also anlage1.php anlage2.php wäre auch in der Tat sehr umständlich.

Stattdessen solltest du in etwa so vorgehen:
2 Dateien: anlagen.php und z.B. showanlage.php

Auf der anlagen.php liest du alle vorhanden Anlagen aus der Datenbank aus und listest sie auf. Mit der ID von jeder Anlage erzeugst du einen link auf die showanlage.php in etwa so:

PHP:
<a href="showanlage.php?ID=$variable_der_id_ausmysqlabfrage">feriendorf xy</a>

Auf der showanlage.php greifst du auf die ID mit $_GET['ID'] zu und machst daraus eine Mysqlabfrage ungefähr so:

select * from feriendorftabelle where FeriendorfID = $_GET['ID']

Das bringt dir alle Daten zu der angeklickten Anlage und du brauchst nur eine einzige php Seite.
 
es ist zum weinen....

Vielen lieben Dank dass ihr so schnell reagiert habt!

Es tut mir leid euch mitteilen zu müssen, dass ich das ganze "irgendwo" ein wenig behirnt hab, aber so richtig verstanden habe ich es nicht.

Wieso muss ich jetzt extra ne Anlagen_ID machen Ist das ne Tabelle wo ich extra jeder Anlage ne Nummer verpassen muss?

Ich kenn mich wirklich Nüsse aus wie ihr seht. Alleine dass ich jetzt 2 extra Tabellen brauche für die Land_ID versteh ich nicht ganz. Wieso kann ich das nicht aus einer einzelnen Tabelle haben

Bei mir sieht die Anlegen.php so aus:
PHP:
<?
$link = mysql_pconnect("mysql4.sprit.org","xxxx","xxxx");
?>
     
<?
mysql_select_db("fkktraveldb",$link);
?>

die Abfrage selber.....

PHP:
<?
$query = "select * from Angebote group by land";
$result = mysql_query($query,$link);
?>

Hier ist meine Beispieldatei (Kroatien.php)

PHP:
<?
$num = mysql_numrows($result);
for ($i = 0; $i < $num; $i++) {
     $row = mysql_fetch_array($result);
	 echo "<table><img src=$row[Bild] align=right><br>";
	 echo "<b>$row[Ort]</b><br><br>";
	 echo "$row[Lage]<br>";
	 echo "<a href = $row[mehr]>mehr...</a><br><br></table><br>";
	 }
 ?>

Wenn man dann auf "mehr" klickt (bei zB Valalta) macht er nun die Datei Valalta.php auf, wo drinnen steht.....

PHP:
 <?
$num = mysql_numrows($result);
for ($i = 0; $i < $num; $i++) {
     $row = mysql_fetch_array($result);
	 echo "<br><b>Lage:</b><br> $row[Lage] <br><br><br>";
	 echo "<b>Ausstattung:</b><br> $row[Ausstattung] <br><br><br>";
	 echo "<b>Appartements:</b><br> $row[Appartements] <br><br><br>";
	 echo "<b>Hotelzimmer:</b><br> $row[Hotelzimmer] <br><br><br>";
	 echo "<b>Parkgebühren:</b><br> $row[Parken] <br><br><br>";
	 echo "<b>Sport und Fitness:</b><br> $row[Sport] <br><br><br>";
	 echo "<b>Gebührenpflichtig:</b><br> $row[Gebuehrenpflichtig] <br><br><br>";
	 echo "<b>Sonstiges (Extras):</b><br> $row[Sonstiges] <br><br><br>";
	 echo "<b>Im Preis inkludiert:</b><br> $row[Hinweis] <br><br>";
	 echo "<b>Anreise:</b><br> $row[Anreise] <br><br>";
	 echo "<b>Preis:</b><br> $row[Preis] <br><br>";
	 }
?>

Ich weiss dass das alles für mich zu komplizert ist - trotzdem danke dass ihr euch mein Problem näher angesehen habt.

Danke!

Alex
 
Könntest du uns mal mitteilen, wie die Tabelle "Angebote" in der Datenbank aufgebaut ist?
Außerdem hättest du für jede Seite nochmal den darin befindlichen Query posten sollen...

Wenns dir nicht zu viel Mühe macht, dann nimm einfach unseren Vorschlag zu Herzen und erstelle 2 Tabellen. Glaub mir, es lohnt sich! :)
 
Zurück