SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.09.2005, 22:22:17
wallis wallis ist offline
Anfänger
 
Registriert seit: Jun 2005
Beiträge: 92
[Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Hallo Leute !

Da es hier ja leider keinen "suche script"-bereich gibt muss ich es wohl hier rein schreiben.

Ich suche ein Script, ein Tutorial oder HILFE, wie ich ein Horizontales Menü bauen kann, welches zudem auch noch Unterkategorien anzeigen kann.

Fertige Scripte gibt es schon, allerdings möchte ich meines per Admin Interface bearbeiten (MySQL fähig).

Hat irgendwer eine Idee, wie ich ein solches Menü selber programmieren kann oder gar ein Downloadlink ?

PS: JavaScript möchte ich aufgrund eines Kundeswunsches nicht verwenden.

Herzlichen Dank für Infos...

WALLi
Mit Zitat antworten
  #2  
Alt 21.09.2005, 22:44:12
Stevie B. Stevie B. ist offline
Anfänger
 
Registriert seit: Sep 2005
Beiträge: 82
Stevie B. eine Nachricht über ICQ schicken
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Hallo Walli,

erstelle zwei Tabellen (tbl_menu + tbl_submenu).
tbl_menu: id,pos,name,link
tbl_submenu: id,mid,pos,name,link

In tbl_menu werden alle Menüpunkte mit Position von links nach rechts (1 - n), Menünamen und Pfad gespeichert.
In tbl_submenu werden alle Untermenüs mit Beziehung zum Menüpunkt, Position von oben nach unten (1 - n), Untermenüpunktnamen und Pfad gespeichert.

Auslesen:
Ausgabe in eine Tabelle packen.
Erst alle Menüpunkte auslesen ("SELECT * FROM tbl_menu ORDER BY pos ASC") und erste Tabellenzeile füllen.
Dann alle Menüpunkte nochmals auslesen und in der nächsten Spalte die entsprechenden Untermenüpunkte zuordnen ("SELECT * FROM tbl_submenu WHERE mid='menupoint' ORDER BY pos ASC") und in Tabellenzellen einlesen.
Wenn Du style a auf diplay:block stellst, brauchst Du Dich nichtmal um die Zeilenumbrüche kümmern.
Die Tabelle muss aber die style-Eigenschaft "position:absolute" haben, da sich sonst beim öffnen des Menüs alles nach unten verschiebt.

Gruß,
Stevie B.
Mit Zitat antworten
  #3  
Alt 21.09.2005, 23:17:29
wallis wallis ist offline
Anfänger
 
Registriert seit: Jun 2005
Beiträge: 92
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Okay, das klingt schonmal ganz gut, wenn ich das jetzt auch noch so umsetzen könnte. Arbeite erst seit kurzem mit PHP.*Puuh* .....
Mit Zitat antworten
  #4  
Alt 21.09.2005, 23:57:06
wallis wallis ist offline
Anfänger
 
Registriert seit: Jun 2005
Beiträge: 92
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Welche Pfade meinst du eigentlich bei der "tbl_menu" ? Also zu welcher Datei ?
Eigentlich gibts es dort doch keine oder ?
Mit Zitat antworten
  #5  
Alt 22.09.2005, 00:21:37
Stevie B. Stevie B. ist offline
Anfänger
 
Registriert seit: Sep 2005
Beiträge: 82
Stevie B. eine Nachricht über ICQ schicken
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Ich würde mit Templates arbeiten, so kannst Du die aufzurufenden Seiten einfach mit einer switch-Anweisung einbinden.
Hier mal ein Ansatz:
Code:
<?php
$cid  = $_GET['cid'];
$scid = $_GET['scid'];
?>
<html>
<head>
<title>Menü-Demo</title>
<style type="text/css">
body,td { font-family:Arial; font-size:10pt; color:#000000; }

a.menu:link    { font-family:Arial; font-size:10pt; color:#0000FF; text-decoration:none; }
a.menu:visited { font-family:Arial; font-size:10pt; color:#0000FF; text-decoration:none; }
a.menu:hover   { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.menu:active  { font-family:Arial; font-size:10pt; color:#0000FF; text-decoration:none; }

a.menu_active:link    { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.menu_active:visited { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.menu_active:hover   { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.menu_active:active  { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }

a.submenu:link    { display:block; font-family:Arial; font-size:9pt; color:#0000FF; text-decoration:none; }
a.submenu:visited { display:block; font-family:Arial; font-size:9pt; color:#0000FF; text-decoration:none; }
a.submenu:hover   { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.submenu:active  { display:block; font-family:Arial; font-size:9pt; color:#0000FF; text-decoration:none; }

a.submenu_active:link    { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.submenu_active:visited { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.submenu_active:hover   { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.submenu_active:active  { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
</style>
</head>
<body>
<table style="position:absolute;left:10px;top:10px;" width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td align="center">
      <table border="0" align="center" cellpadding="1" cellspacing="2">
        <tr>
          <?php
          $sql = @mysql_query("SELECT * FROM tbl_menu ORDER BY pos ASC");
          if (@mysql_num_rows($sql) > 0) {
            while ($tmp = @mysql_fetch_array($sql)) {
              print "<td>";
              print "<a ";
              if ($cid = $tmp[id]) print "class=\"menu_active\" ";
              else print "class=\"menu\" ";
              print "href=\"?cid=".$tmp[id]."\">".$tmp[name]."</a>";
              print "</td>";
            }
          }
          ?>
        </tr>
        <?php
        if ($cid != "") {
          $sql = @mysql_query("SELECT * FROM tbl_menu ORDER BY pos ASC");
          if (@mysql_num_rows($sql) > 0) {
            print "<tr>";
            while ($tmp = @mysql_fetch_array($sql)) {
              $mid = $tmp[id];
              print "<td>";
              if ($mid == $cid) {
                $erg = @mysql_query("SELECT * FROM tbl_submenu WHERE mid='$mid' ORDER BY pos ASC");
                if (@mysql_num_rows($erg) > 0) {
                  while ($sub = @mysql_fetch_array($sub)) {
                    print "<a ";
                    if ($scid = $sub[id]) print "class=\"submenu_active\" ";
                    else print "class=\"submenu\" ";
                    print "href=\"?cid=".$tmp[id]."&scid=".$sub[id]."\">".$sub[name]."</a>";
                  }
                }
              }
              print "</td>";
            }
            print "</tr>";
          }
        }
        ?>
      </table>
    </td>
  </tr>
</table>
<br>
<?php
if ($scid != "") {
  @include("templates/sub/".$scid.".htm");
} elseif ($cid != "") {
  @include("templates/main/".$cid.".htm");
} else {
  @include("templates/main.htm");
}
?>
</body>
</html>
Ich hoffe, das hilft Dir ein Stück weiter. Du kannst auch anstelle der Nummern Dateinamen vergeben.

Gruß,
Stevie B.

Geändert von Stevie B. (22.09.2005 um 00:40:32 Uhr)
Mit Zitat antworten
  #6  
Alt 22.09.2005, 00:45:50
wallis wallis ist offline
Anfänger
 
Registriert seit: Jun 2005
Beiträge: 92
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Was kommt denn in die DB-Zelle "mid" ?

Und ist übrigens ein Fehler drin:

Fatal error: Call to undefined function mysql_erroru() in G:\xampplite\htdocs\menu\menu.php on line 14

Hier meine menu.php:

PHP-Code:
<?php
$host 
"localhost"
$user "xxx"
$password "xxx"
$dbname "menu"

$dbverbindung mysql_connect ($host$user$password) or die("Verbindung zur Datenbank fehlgeschlagen");
$db_select MYSQL_SELECT_DB($dbname) OR DIE (mysql_erroru()); 

$cid  $_GET['cid'];
$scid $_GET['scid'];
?>

<html>
<title>MenÜ-Demo</title>
<head>



<style type="text/css">
body,td { font-family:Arial; font-size:10pt; color:#000000; }

a.menu:link    { font-family:Arial; font-size:10pt; color:#0000FF; text-decoration:none; }
a.menu:visited { font-family:Arial; font-size:10pt; color:#0000FF; text-decoration:none; }
a.menu:hover   { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.menu:active  { font-family:Arial; font-size:10pt; color:#0000FF; text-decoration:none; }

a.menu_active:link    { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.menu_active:visited { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.menu_active:hover   { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.menu_active:active  { font-family:Arial; font-size:10pt; font-weight:bold; color:#FF0000; text-decoration:none; }

a.submenu:link    { display:block; font-family:Arial; font-size:9pt; color:#0000FF; text-decoration:none; }
a.submenu:visited { display:block; font-family:Arial; font-size:9pt; color:#0000FF; text-decoration:none; }
a.submenu:hover   { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.submenu:active  { display:block; font-family:Arial; font-size:9pt; color:#0000FF; text-decoration:none; }

a.submenu_active:link    { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.submenu_active:visited { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.submenu_active:hover   { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
a.submenu_active:active  { display:block; font-family:Arial; font-size:9pt; font-weight:bold; color:#FF0000; text-decoration:none; }
</style>

</head>

<body>

<table style="position:absolute;left:10px;top:10px;" width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td align="center">
      <table border="0" align="center" cellpadding="1" cellspacing="2">
        <tr>
          <?php
          $sql 
= @mysql_query("SELECT * FROM tbl_menu ORDER BY pos ASC");
          if (@
mysql_num_rows($sql) > 0) {
            while (
$tmp = @mysql_fetch_array($sql)) {
              print 
"<td>";
              print 
"<a ";
              if (
$cid $tmp[id]) print "class=\"menu_active\" ";
              else print 
"class=\"menu\" ";
              print 
"href=\"?cid=".$tmp[id]."\">".$tmp[name]."</a>";
              print 
"</td>";
            }
          }
          
?>
        </tr>
        <?php
        
if ($cid != "") {
          
$sql = @mysql_query("SELECT * FROM tbl_menu ORDER BY pos ASC");
          if (@
mysql_num_rows($sql) > 0) {
            print 
"<tr>";
            while (
$tmp = @mysql_fetch_array($sql)) {
              print 
"<td>";
              
$mid $tmp[id];
              
$erg = @mysql_query("SELECT * FROM tbl_submenu WHERE mid='$mid' ORDER BY pos ASC");
              if (@
mysql_num_rows($erg) > 0) {
                while (
$sub = @mysql_fetch_array($sub)) {
                  print 
"<a ";
                  if (
$scid $sub[id]) print "class=\"submenu_active\" ";
                  else print 
"class=\"submenu\" ";
                  print 
"href=\"?cid=".$tmp[id]."&scid=".$sub[id]."\">".$sub[name]."</a>";
                }
              }
              print 
"</td>";
            }
            print 
"</tr>";
          }
        }
        
?>
      </table>
    </td>
  </tr>
</table>
<br>
<?php
if ($scid != "") {
  @include(
"templates/sub/".$scid.".htm");
} elseif (
$cid != "") {
  @include(
"templates/main/".$cid.".htm");
} else {
  @include(
"templates/main.htm");
}
?>

</body>
</html>

Geändert von wallis (22.09.2005 um 00:52:40 Uhr)
Mit Zitat antworten
  #7  
Alt 22.09.2005, 12:31:46
Stevie B. Stevie B. ist offline
Anfänger
 
Registriert seit: Sep 2005
Beiträge: 82
Stevie B. eine Nachricht über ICQ schicken
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

In das Feld mid kommt die MenüId. Also die ID des Menüpunktes, zu dem das Untermenü gehört. Damit stellst Du eine Beziehung zwischen beiden Tabellen her.

z.B.:
Der erste Menüpunkt hat logischer Weise die ID 1. Alle Untermenüs, die zu diesem Menüpunkt gehören müssen im Feld mid eine 1 stehen haben. Somit weiß das Script, dass es diese Untermenüpunkte unter den ersten Menüpunkt stellen muss.

Fehler: mysql_erroru() gibt es nicht. Es heißt mysql_error()

Gruß,
Stevie B.
Mit Zitat antworten
  #8  
Alt 23.09.2005, 00:42:08
wallis wallis ist offline
Anfänger
 
Registriert seit: Jun 2005
Beiträge: 92
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Okay, das klappt dann auch schon.

Doch wäre es gut, wenn du mir das mit den "Templates" erklären könntest.
Was muss in die Datei rein, und wie müssen sie heissen ?

Gruss...
WALLi
Mit Zitat antworten
  #9  
Alt 24.09.2005, 12:18:57
wallis wallis ist offline
Anfänger
 
Registriert seit: Jun 2005
Beiträge: 92
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Stevie ?

Wie sehen dann die Templates aus ?
Mit Zitat antworten
  #10  
Alt 29.09.2005, 19:03:30
wallis wallis ist offline
Anfänger
 
Registriert seit: Jun 2005
Beiträge: 92
AW: [Suche] PHP - Horizontales Layer Menü mit DB Anbindung

Hallo ? Stevie ?

Keine Antwort mehr ? Schade...
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie man durch PHP von der Schule fliegen kann?! Jacki Off Topic Area 2 06.08.2004 12:20:39
PHP Navigation/ Menü LouCypher PHP Grundlagen 1 04.05.2003 11:51:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:47:40 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt