Seite 1 von 2

Menu mit MySQL

Verfasst: 13.12.2002 19:08
von bumann
Da ich nun begonnen habe (bin aber leider immer noch ein ziemlicher Anfänger) mit MySQL zu arbeiten, möchte ich die Navigation auf meiner Homepage, um später auch eine Adminoberfläche möglich zu machen, mit MySQL machen wie es auf vielen Homepages zu sehen ist. Ich habe dazu eine Tabelle mit den Spalten id(auto_increment, primärschlüssel, index, unique) und url (mit den urls, also z.B. links.php) gemacht. Ist das so richtig?
Falls das so ist: Wie muss ich nun den Link programmieren? Kann mir jemand ein Schema für eine solche Navigtaion oder ein (eingermassen) detaillerte Anleitung geben? Für die weitere Programmierung der Homepage werde ich mich intensiver mit MySQL befassen müssen. Aber ich wäre sehr froh, wenn ich das mit der Navigation diese Wochenende machen könnte!
Noch etwas: Die verschiedenen Seiten sehen bei mit etwas so aus:

<?php
include("header.inc");
?>
INHALT
<?php
include("footer.inc");
?>

Ich hoffe jemand kann, bzw. eher will mir helfen. (Wird ja für MySQL Kenner kein Problem darstllen! :-? )

Verfasst: 13.12.2002 20:08
von Pyramide

Verfasst: 13.12.2002 21:12
von bumann
ok. Ein wenig hat mir das geholfen. Kann mir jemand jetzt noch sagen wie ich diesen Befehl abändern muss, um auf meine Tabelle (oben beschrieben zuzugreifen? und dann einen Link auf news.php mit der id=auszugeben?

Und für was wird die Variable $suche benötigt?


$suche = "php";
mysql_connect("localhost","user","pwd");
mysql_select_db("datenbank");
$result = mysql_query("SELECT daten.titel,rubriken.rubrikname
FROM daten,rubriken WHERE daten.rubriknr=rubriken.rubriknr
&& daten.text LIKE '%".addslashes($suche)."%'")
or die(mysql_error());
while($row = mysql_fetch_array($result)) {
echo "<A HREF=\"datei.php3?titel=$titel\">".$row['titel']."</A>"; echo "(".$row['rubrikname'].")<BR>";
}

Oder einfacher: Was is hier noch falsch?


mysql_connect("localhost","user","pwd");
mysql_select_db("mein Datenbankname");
$result = mysql_query("SELECT menu WHERE id=2)

or die(mysql_error());
while($row = mysql_fetch_array($result)) {
echo "<A HREF=\"news.php?id=2\">"News"</A>";
}

Verfasst: 13.12.2002 21:42
von Pyramide
www.php4-forum.de/mysql_select.htm hat geschrieben:SELECT * FROM gaestebuch Liest die gesamte Tabelle "gaestebuch" aus.
SELECT name,email FROM gaestebuch Liest die Spalten "name" und "email" aus der Tabelle "gaestebuch".
Auf deine Tabelle bezogen wäre das dann SELECT * FROM menu oder SELECT id, url FORM menu

Verfasst: 13.12.2002 21:56
von bumann
Ich habe es jetzt so versucht. Aber das funktioniert anscheinend nicht!

<?php
mysql_connect("localhost","******","******");
mysql_select_db("*******");
$result = mysql_query("SELECT id,url FROM menu)

or die(mysql_error());
while($row = mysql_fetch_array($result)) {
echo "<A HREF="news.php?id=2">"News"</A>";
mysql_close();
?>

Müsste ich zuerst die News.php und dei id 2 aus dem Array auslesen?
Wie würde denn das aussehen?

Verfasst: 13.12.2002 22:27
von Pyramide
bumann hat geschrieben:Müsste ich ...
Du müsstest dir mal die Fehlermeldung angucken, versuchen zu verstehen (meistens steht ne Zeilennummer dabei) und wenn du sie nicht verstehst, dann hier posten. Wenn du immer nur "geht nicht" schreibst, muss ich immer meine Hellseher-Fähigkeiten beanspruchen, und das geht zu dieser späten Zeit nicht mehr so gut.
echo "<A HREF="news.php?id=2">"News"</A>";
Wenn du " ausgeben willst, musst du den kompletten String entweder mit ' anstatt mit " begrenzen oder das " mit \ escapen ( " ): http://de.php.net/manual/de/language.types.string.php

Ausserdem hast du ein Klammer { , aber nicht die dazugehörige schliessende } angegeben.

Verfasst: 13.12.2002 23:00
von bumann
Ja, ok stimmt!
Der Parser zeigt mir immer unexepcted T_STRING an.
Und das in der Zeile des Links. Ich habe schon gemerkt, dass da was nicht stimmt. Aber ich wusste nicht was genau. Jetzt habe ich den Link so gemacht wie du es gesagt hast. Aber ich erhalte den selben parse error.
Und wenn ich zum Test nur echo "irgendetwas" ; schreibe erhalte ich die Fehlermedung unexpected $ in der Zeile nach dem php Skript. Die geschweifte Klammer habe ich schon geschlossen gehabt. Und die php Tags habe ich auch richtig gesetzt.

Verfasst: 13.12.2002 23:52
von Pyramide
Wie sieht denn der Code jetzt aus?

Verfasst: 14.12.2002 10:22
von bumann
37 <?php
38 mysql_connect("localhost","","");
39 mysql_select_db("");
40 $result = mysql_query("SELECT id,url FROM menu)
41
42 or die(mysql_error());
43 while($row = mysql_fetch_array($result)) {
44 echo <a href='news.php?id=2'>-News</a>; }
45 mysql_close();
46 ?>
47
48 <a href="actionfilme.php">-Actionfilme</a><br>

Parse error: parse error, unexpected T_STRING in header.inc on line 48

Jetzt zeigt mir der Parser keine Fehlemeldung für line 44 sondern für line 48 an. Aber die sollte doch gar nicht mehr geparst werden, die gehört ja nicht mehr zum php Teil!

Verfasst: 14.12.2002 11:56
von jasc
bumann hat geschrieben: 40 $result = mysql_query("SELECT id,url FROM menu)
Ähm, wo machst du dieses " wieder zu ? Oder muss das nicht zugemacht werden :-?.