Verschachtelte Schleife

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/verschachtelte_schleife_80911/page_1 - zur Vollversion wechseln!


Oli200 schrieb am 02.06.2003 um 23:00

Ich habe ein Problem ich möchte eine mysql datenbank auslesen und muss aber von der reihenfolge zuerst eine teil von der ersten tabelle dann einen teil auf einer zweiten und dann einen zweiten teil aus der ersten tabelle auslesen. aber das problem ist das ich das mehr als einmal machen muss und für eine unbestimmte zahl von einträgen!

hat wer einen Tip für mich? ich bin ein bisschen planlos!

MFG Oli :cool:


murcielago schrieb am 02.06.2003 um 23:02

gib konkrete problemstellung an. dann isses für alle leichter.


Tex schrieb am 02.06.2003 um 23:03

das musst du genauer erklären - welche tabellen - welche daten möchtest du genau wozu auslesen?


Jedi schrieb am 02.06.2003 um 23:06

in welcher Umgebung (C/php/...) willst du die Daten auslesen?


edit: hab zuerst mysql mit oracle verwechselt :bash:


watchout schrieb am 03.06.2003 um 00:53

bin mir ziehmlich sicher, dass man deine problemstellung mittels einer wohldurchdachten mysql-abfrage lösen kann - alles andere wär' von der performance-seite gesehn auch schwachsinn ;)


atrox schrieb am 03.06.2003 um 01:28

viele die an mich solche (ähnlichen) fragen herangetragen haben, bzw dessen code ich gesehen habe, hätten das selbe mit wenigen wohldurchdachten sql-anfragen lösen können.

mit einer mengen-orientierten sprache wie sql lassen sich viele sachen meist leichter lösen, und laufen schneller am server, da 1) die daten nicht übertragen werden müssen 2) der query-optimierer einblicke in die physikalische datenhaltung hat.


atrox schrieb am 03.06.2003 um 01:41

beispiel für ein join über 3 tabellen:
(namen sind extra-sprechend gewählt, und entsprechen daher keiner konvention)

TABELLE "Schueler"
- schuelerNr
- vorname
- nachname
- geschlecht
- svnr
- klassenbezeichnung

TABELLE "Klasse"
- Klassenbezeichnung
- Raum
- Klassenvorstand

TABELLE "Lehrer"
- Lehrerkuerzel
- vorname
- nachname
- lehrerzimmer
- geschlecht

Beispiel:
Alle Schüler die Lehrer "XYZ" als Klassenvorstand haben (Lehrer kann in mehreren Klassen Vorstand sein).

SELECT s.vorname,s.nachname
FROM schueler s, klasse k, lehrer l
WHERE s.klassenbezeichnung=k.klassenbezeichnung AND k.klassenvostand=l.lehrerkuerzel AND l.nachname='XYZ';


Jedi schrieb am 03.06.2003 um 08:03

Ich nehm mal an, dass Oli200 schon die SQL-Grundlagen kann :)

lustig wirds allerdings, wennst >3 komplexe sub-selects verschachteln musst ;)


btw: ich persönlich find den Threadtitle unpassend ....


Oli200 schrieb am 03.06.2003 um 08:35

ich will in Php meine daten für die homepage auslesen!

ich möchte ein Menü machen! mit tabellen! ich hab mir das so gedacht das ich das so mache das ich zuerst den titel für die tabelle aus der datenbank auslese und dann die menüpunkte aus einer anderen tabelle der datenbank auslesen! da hab ich jetzt keine ahnung wie ich das machen soll oder ob ich das überhaupt so machen soll! und dass soll dann halt für mehrere tabellen für das menü funktionieren!


Jedi schrieb am 03.06.2003 um 08:58

ich würds in eine Tabelle haun und und eine hirachie anlegen (id, level, parent) und damit kannst dann alles in einer Tabelle verwalten, was nicht nur schneller, sondern auch einfacher geht.


Oli200 schrieb am 03.06.2003 um 09:24

wie mach ich das?


schrieb am 03.06.2003 um 09:28

2 möglichkeiten:

tabelle menu:
id, data [zB name, link, farbe,...], parent

oder

tabelle menu:
id, data [zB name, link, farbe,...]
tabelle references:
id, id_parent, id_child


in beiden fällen kannst eine baumstruktur abbilden.


Jedi schrieb am 03.06.2003 um 09:35

ups.... level hät noch weggehört.

es reicht id und parent.
damit hat jedes Element ein übergeordnetes und du kommst wieder auf eine 1:n Beziehung, wie es bei einem Menü mit Untermenü auch sein sollte.
wie du dann aus den Daten deine HTML-Struktur gewinnst, ist dir überlassen. Dazu hast du außerdem noch zu wenig Infos über das Menü-Layout gegeben.


zuerst wollt ich ein etwas komplexeres Verfahren angeben, aber um das zu erklären fehlt mir jetzt die Zeit.


atrox schrieb am 03.06.2003 um 10:19

bei oracle gibts das sogenante Tree Walking, bei der quasi die rekursion der auflösung der hierarchischen struktur einer tabelle am server stattfindet. zusätzlich gibt es pseudo-variablen die zb. die tiefe jedes elemens beinhalten (usw).
nützliches feature (das aber auch seine einschränkungen hat)

http://www.josephfeller.com/teachin...2/mcavoy-11.pdf


Jedi schrieb am 03.06.2003 um 10:54

Zitat von atrox
bei oracle gibts das sogenante [...]
leider gehts um mysql ...

oder gibts des da auch schon?




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026