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 ::

Der CSS-Problemlöser

Der CSS-Problemlöser 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 > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 04.09.2007, 17:28:42
kendor kendor ist offline
Anfänger
 
Registriert seit: Sep 2007
Beiträge: 1
MySQL Query - Rekursiv + Joins

Hallo Leute!
Nun, ich habe ein kleines Problem mit einer meiner MySQL abfragen. und ich wär echt froh wenn irgend ein profi von euch mir da weiter helfen kann!!

Grundlegendes zur datenbank:
ich habe 3 Tabellen mit entsprechenden zeilen (-) wie folgt:
1. events (beihnaltet eine liste von events)
- id_events
- Start
- Stop
- Titel
2. kategorie (beinhaltet verschiedene usergruppen)
- id_cat
- subofcat
- titel
3. daten (beinhaltet dann schlussendlich alle daten und verlinkt die beiden)
- ID
- id_cat
- id_events

als beispiel also:
zeilen in events:
Code:
1 - start1 - stop1- faulenzen
2 - start2 - stop2 - ausflug
3 - start3 - stop3 - schlafen
zeilen in kategorie:
Code:
1 - NULL - Familienmitglied
2 - NULL - Besucher
3 - 1 - Hausmann
4 - NULL - Irgendwer
5 - 2 - Freund
(heisst so viel wie der Hausmann ist auch ein Familienmitglied, der Freund ist ein Besucher - zeile subofcat sagt welches die oberkategorie ist)
6 - 3 - Markus (Markus ist ein Freund und ein Besucher! - fortgeschritten dann)
steht in daten:
Code:
1 - 1 - 3 (von start1 bis stop1 gilt faulenzen [1] für den hausmann [3])
2 - 1 - 4 (von start1 bis stop1 gilt faulenzen [1] für irgendwer [3])
3 - 3 - 1 (von start3 bis stop3 gilt schlafen [3] für alle familienmitglieder [1] - also ach für den hausmann)
4 - 2 - 5 (von start2 bis stop2 gilt ausflug [2] für den freund [5]
soweit so gut

mit der abfrage


PHP-Code:
SELECT 
  events
.titel,
  
kategorie.titel AS Wer,
  
events.start,
  
kategorie1.titel AS Hauptkategorie,
  
events.stop
FROM
 events
 INNER JOIN daten ON 
(events.id_event=daten.id_event)
 
INNER JOIN kategorie ON (cat.id_cat=daten.id_cat)
 
INNER JOIN kategorie kategorie1 ON (kategorie1.id_cat=kategorie.subofcat
kriege ich schön alle daten - aber nur für kategorien die eine unterkategorie sind.

im beispiel würde mir das also folgendes ausgeben:
Code:
> hausmann - faulenzen - start1 - stop1
> freund - ausflug - start2 - stop2
nicht aber die anderen daten die ja noch vorhanden sind:
Code:
> irgendwer - faulenzen - start1 - stop1
> familienmitglieder - schlafen - start3 - stop3
soweit mein problem.

wenn ich mit dem query

PHP-Code:
SELECT 
events
.titel,
kategorie.titel AS Wer,
events.start,
events.stop
FROM
events
INNER JOIN daten ON 
(events.id_event=daten.id_event)
INNER JOIN kategorie ON (kategorie.id_cat=daten.id_cat
alle daten ersuche erhalte ich diese zwar aber ohne die dazugehörigen hauptkategorien (wenn vorhanden)
im beispiel also:
Code:
> hausmann - faulenzen - start1 - stop1
> freund - ausflug - start2 - stop2
> irgendwer - faulenzen - start1 - stop1
> familienmitglieder - schlafen - start3 - stop3
und nicht wie gewünscht:
Code:
> hausmann - familienmitglieder - faulenzen - start1 - stop1
> freund - besucher - ausflug - start2 - stop2
> irgendwer - NULL - faulenzen - start1 - stop1
> familienmitglieder - NULL - schlafen - start3 - stop3
worum es bei der frage eigentlich geht:
wenn es mehrere events gibt für familienmitglieder oder freunde
und ich in einer abfrage alle events für den hausmann suche, dann möchte ich auch die events für familienmitglieder gelistet haben...

kann mir da jemand helfen? mmh (das ganze sollte dann auch noch tiefer gehen als nur eine ebene (also auch für einen markus noch funktionieren [siehe beispiel oben]) - aber daran wage ich noch gar nicht zu denken ) oder gibt es eine andere lösung für mein problem? (anderer tabellenaufbau usw... ) ich bin dankbar für alle anregungen!

gruss kendor

Geändert von kendor (04.09.2007 um 17:36:57 Uhr) Grund: verb.
Mit Zitat antworten
  #2  
Alt 07.09.2007, 17:23:22
Eskayp Eskayp ist offline
Anfänger
 
Registriert seit: Sep 2007
Beiträge: 18
AW: MySQL Query - Rekursiv + Joins

Gegenfrage: wäre es denn so schlimm erst den Breadcrumb der Kategorie zu ermitteln und dann entsprechend viele Abfragen durchzuführen?

Also Markus -> Hausmann -> Familienmitglied (er ist nämlich kein Freund :) )

$a1 = run_query('Markus');
$a1 = run_query('Hausmann');
$a1 = run_query('Familienmitglied');

$a = array_merge($a1, $a2, $a3);


Ansonsten müsstest Du glaube ich mit einem SubQuery eine Hilfstabelle mit KategorieIDs generieren und diese dann im MainQuery verknüpfen.

Grüße
Kai
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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
Lost connection to MySQL server during query Domi MySQLi/PDO/(MySQL) 2 26.07.2007 10:49:32
MySQL Query zu langsam Domi MySQLi/PDO/(MySQL) 1 29.09.2006 22:53:57
MySQL Query Browser Heinrich MySQLi/PDO/(MySQL) 2 14.04.2006 23:18:08
Variable in Mysql Query übergeben FreAKAzoid MySQLi/PDO/(MySQL) 38 17.06.2005 11:22:31
MySQL Invalid Query!! :( Gentlemani PHP Grundlagen 3 28.01.2003 16:44:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:18:43 Uhr.


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


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