php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-11-2004, 09:21
Diary
 Newbie
Links : Onlinestatus : Diary ist offline
Registriert seit: Nov 2004
Beiträge: 4
Diary ist zur Zeit noch ein unbeschriebenes Blatt
Standard [SQL allgemein] Verstandnisfrage menu/menu_menu

Hallo...
kleine Verstaendigfrage zu diesem Beitrag

Aufbau meiner Tabellen:

navi
=============
id_navi
id_sub
position
level
name

navi2
=============
id_navi
id_sub2

'Umgebautes' Query, da ich die Userverwaltung nicht benoetige:

PHP-Code:
$query "    SELECT
                m2.*
            FROM
                navi m 
            LEFT JOIN navi2 mm ON ( m.id_navi = mm.id_sub2 ) 
            LEFT JOIN navi m2 ON ( mm.id_navi = m2.id_sub )
            LEFT JOIN navi2 mm2 ON    ( m2.id_navi = mm2.id_sub2 )
            WHERE
                m.id_navi = $site OR
                m.id_sub = $site
            GROUP BY
                m2.id_navi,
                m2.id_sub,
                m2.level,
                m2.position 
            ORDER BY
                m2.id_sub,
                m2.level,
                m2.position;"

Testdaten in der DB sind als Pic angehaengt...


Mein Porblem bei diesem Query:
Ab der Tiefe 1 wird der Baum fast richtig ausgelesen. Leider aber nur die Menupunkte, die ab der Tiefe in der Datenbank stehn. Alle anderen werden nicht aus der Datenbank ausgelesen.
Bei Tiefe 0, dem root des Baums, wird nur eine leere Zeile von dem Query zurueckgegeben.
Nach erweitern der Tablle navi2 um saemtliche Abhaenigkeiten wie 1,0 / 4,0 / 1,6 und 1,7 (id_navi,id_sub2) besteht immernoch das gleiche Problem.

Das eigentliche Resultat soll einen kompletten Baum ausgeben, der je nach angeklicktem Menupunkt die Untermenus des Punktes anzeigt und bei Klick auf einen anderen Oberpunkt die Unterpunkte wieder zuklappt, die nicht zu diesem Oberpunkt gehoeren und die eigenen anzeigt.

Liegts nun am Nichtverstaednis, wie die Daten in der DB gehoeren... oder am Query selbst? Derzeit vollkommen ratlos bin...


bb D.
Angehängte Grafiken
Dateityp: jpg snap21.jpg (25,0 KB, 99x aufgerufen)
Mit Zitat antworten
  #2 (permalink)  
Alt 30-11-2004, 09:32
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

wenn der screenshot deinen datenstand widerspiegelt, dann wundert mich nichts

du hast:
1 2
1 3
4 5
1 6
2 6
2 7

du brauchst:
0 1
0 2
1 2
0 3
1 3
0 4
0 5
4 5
0 6
1 6
2 6
0 7
1 7
2 7

dir fehlt:
0 1
0 2
0 3
0 4
0 5
0 6

mach das mal rein, probiere nochmal und poste einen dump der beiden tabellen wenn's nicht geht
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #3 (permalink)  
Alt 30-11-2004, 10:00
Diary
 Newbie
Links : Onlinestatus : Diary ist offline
Registriert seit: Nov 2004
Beiträge: 4
Diary ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmm.. funktioniert fast bestens... bis auf den menupunkt 'sub2 von sub von test'...

in navi2 steht nun:

1 2
1 3
1 6
2 6
4 5
2 7
0 3
0 1
0 2
0 4
0 5
0 6
0 7

lass ich 0 7 weg, verschwindet die navigation komplett, weil die rootpunkte nicht ausgelesen werden... setzt ich 0 7 wird der baum on klick auf link zugeklappt...
fuer 'sub1 von sub von test' funktioniert es aber einwandfrei...

tabelle navi iss unveraendert geblieben...


bb D.
Mit Zitat antworten
  #4 (permalink)  
Alt 30-11-2004, 10:05
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von mrhappiness
poste einen dump der beiden tabellen wenn's nicht geht
phpmyadmin -> die beiden tabellen exportieren (struktur und daten)

kann ja auch sein, dass ich was vergessen hab
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #5 (permalink)  
Alt 30-11-2004, 10:15
Diary
 Newbie
Links : Onlinestatus : Diary ist offline
Registriert seit: Nov 2004
Beiträge: 4
Diary ist zur Zeit noch ein unbeschriebenes Blatt
Standard

im anhang *smile*
Angehängte Dateien
Dateityp: zip portal.sql.zip (679 Bytes, 268x aufgerufen)
Mit Zitat antworten
  #6 (permalink)  
Alt 30-11-2004, 10:37
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

1 7 fehlt
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 30-11-2004, 10:58
Diary
 Newbie
Links : Onlinestatus : Diary ist offline
Registriert seit: Nov 2004
Beiträge: 4
Diary ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmm... glaub habs verstanden...
es muessen also immer alle abhaenigkeiten vom neuen menupunkt nach oben gewaehrleistet sein...
bei einem menupunkt in ebene 4 hat mal also 4 abhaenigkeitseintraege...
einmal von dem neuen menupunkt zu seinem ueberpunkt... dann vom neuen menupunkt zum ueberpunkt des ueberpunktes... bis man schliesslich bei root also null rauskommt...

wenn die logik richtig ist grossen dank fuer Deine hilfe...

bb D.


[edit:] jaja... die rechtschreibfehler... *mit rotstift auf monitor anstreich*

Geändert von Diary (30-11-2004 um 11:00 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 30-11-2004, 11:00
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

richtig

bitte
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #9 (permalink)  
Alt 27-12-2007, 02:58
MeisterM
 Newbie
Links : Onlinestatus : MeisterM ist offline
Registriert seit: Dec 2007
Beiträge: 6
MeisterM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe das selbe jetzt bei mir implementiert. Leider funktioniert das Navigationsmenü nicht so ganz. Beispiel hier: http://www.feuerwehr-maintal.de/neu/?site=5
Die Links "Bischofsheim" und "Dörnigheim" sollten eigentlich direkt unter "Feuerwachen" angezeigt werden. Dieser Link ist dort auch angeklickt. Allerdings wird das ganze falsch sortiert...
Woran kann das liegen?

Zweites Problem: Unten auf Sitemap klicken. Dort wird das ganze ziemlich komisch dargestellt. Ich habe den SQL Befehl insofern modifiziert, dass ich das entfernt habe:

Code:
WHERE
                m.id_navi = $site OR
                m.id_sub = $site
Hier unten meine Datenbankstruktur:

Code:
-- 
-- Tabellenstruktur für Tabelle `v2_menu`
-- 

CREATE TABLE `v2_menu` (
  `menu_id` smallint(6) NOT NULL auto_increment,
  `parent_id` smallint(6) NOT NULL default '0',
  `level` smallint(6) NOT NULL default '0',
  `sort` smallint(6) NOT NULL default '0',
  `bezeichnung` varchar(200) NOT NULL default '',
  `page` smallint(6) NOT NULL default '0',
  `data` smallint(6) NOT NULL default '0',
  PRIMARY KEY  (`menu_id`)
) TYPE=MyISAM AUTO_INCREMENT=14 ;

-- 
-- Daten für Tabelle `v2_menu`
-- 

INSERT INTO `v2_menu` (`menu_id`, `parent_id`, `level`, `sort`, `bezeichnung`, `page`, `data`) VALUES (1, 0, 0, 0, 'Wir über Uns', 0, 0),
(2, 1, 1, 1, 'Fahrzeuge', 3, 0),
(3, 1, 1, 2, 'Feuerwachen', 5, 0),
(4, 3, 2, 3, 'Dörnigheim', 0, 0),
(5, 3, 2, 5, 'Bischofsheim', 0, 0),
(6, 4, 3, 4, 'Rundgang', 0, 0),
(7, 0, 0, 2, 'Einsätze', 7, 0),
(8, 7, 1, 3, 'Einsatzstatistik', 0, 0),
(9, 0, 0, 3, 'Service', 0, 0),
(10, 9, 1, 0, 'Brandschutztipps', 0, 0),
(11, 1, 1, 6, 'Fachabteilungen', 11, 0),
(12, 11, 2, 7, 'Atemschutzwerkstatt', 12, 1),
(13, 0, 0, 0, 'Aktuell', 0, 0);

-- 
-- Tabellenstruktur für Tabelle `v2_menu_menu`
-- 

CREATE TABLE `v2_menu_menu` (
  `menu_id` smallint(6) NOT NULL default '0',
  `child_id` smallint(6) NOT NULL default '0'
) TYPE=MyISAM;

-- 
-- Daten für Tabelle `v2_menu_menu`
-- 

INSERT INTO `v2_menu_menu` (`menu_id`, `child_id`) VALUES (1, 2),
(1, 3),
(3, 4),
(3, 5),
(0, 1),
(0, 3),
(0, 4),
(0, 5),
(0, 2),
(1, 4),
(1, 5),
(0, 6),
(3, 6),
(4, 6),
(0, 8),
(0, 7),
(7, 8),
(0, 10),
(0, 9),
(9, 10),
(0, 11),
(1, 11),
(0, 12),
(1, 12),
(11, 12),
(0, 13);
Ich hoffe ihr könnt mir helfen.

Gruß
Holger
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:46 Uhr.