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 09-08-2008, 13:37
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] SELECT mit Sortierung...

Hallo alle zusammen,

Ich habe eine Tabelle in der x Elemente gespeichert sind / werden.
Nun stehe vor der Frage, wie ich die Elemente auslese und weiter verarbeite.
Zur besseren Veranschaulichung hier mal meine Test-Tabelle:

http://gelight.de/tabelle.html

Es geht beim Auslesen ausschließlich um die hier hervorgehobenen Felder ( Spalten )
Was möchte ich machen? Am Ende meiner Reise möchte ich die Datensätze möglichst in der Reihenfolge haben, dass man eine Baumdarstellung aller vorhandenen Elemente aufstellen kann. Nun stellt sich für mich die Frage, ob man sich die Daten per MySQL evtl. schon so sortiert zurück geben lassen kann, wie ich sie gern hätte oder ob ich aus Geschwindigkeitsgründen lieber einfach der Reihe nach auslesen lassen sollte und mir über ein paar Funktionen oder Arrays das ganze aufbereite.

Die Spalte PARENT gibt hier zB. die Ebene an, in der sich das Element befindet. NULL entspricht hier ROOT und die Sortierung innerhalb einer Ebene hängt wieder davon ab, welches Element VOR bzw. NACH dem aktuellen liegt. Hierfür stehen die Spalten PREV und NEXT. Hoffe ihr könnt mir hier folgen.... ist am Ende wie ne Art "Liste". Jedes Element weiß, wo es liegt und wer vor bzw. nach mir kommt.

Habt ihr da ein paar Tips für mich, falls es mit einem schönen SELECT schon klappen könnte?

Gruß Mario
Mit Zitat antworten
  #2 (permalink)  
Alt 09-08-2008, 14:18
gourmet
 Registrierter Benutzer
Links : Onlinestatus : gourmet ist offline
Registriert seit: Feb 2007
Beiträge: 154
Blog-Einträge: 1
gourmet ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo GELight,

spontan würde mir da ORDER BY einfallen.
Mit Zitat antworten
  #3 (permalink)  
Alt 09-08-2008, 14:30
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] ORDER BY

Hi gourmet,

ORDER BY auf "PARENT" hab ich schon.... hehe
Das ist nicht das Thema. Ehr, wie ich das ORDER BY so anwende, dass er mir weiterhin alle der aktuellen PARENT ID folgenden Elemente passend zurück gibt.

Mario
Mit Zitat antworten
  #4 (permalink)  
Alt 09-08-2008, 14:48
gourmet
 Registrierter Benutzer
Links : Onlinestatus : gourmet ist offline
Registriert seit: Feb 2007
Beiträge: 154
Blog-Einträge: 1
gourmet ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
GROUP BY parent ORDER BY parent DESC, prev DESC, next DESC
so oder so ähnlich vielleicht, ungetestet...
Mit Zitat antworten
  #5 (permalink)  
Alt 09-08-2008, 15:31
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] GROUP BY

Hmm... GROUP BY... ich glaub da muss ich erstmal verstehen, was das genau tut.
Ein erster Test mit deiner Idee oder Variante gibt mir weniger Datensätze zurück als ich in der Tabelle habe.

Hab selbst dieses GROUP BY noch nie angewandt...

[EDIT]
Hab gerade mal geschaut, was GROUP BY so macht.
Ich glaub das ist in meinem Fall nicht das, was ich grauchen kann, da er doppelte Werte der Spalte zusammenführt. Ich brauche am Ende aber schon alle Datensätze... nur eben Sortiert.

Mario

Geändert von GELight (09-08-2008 um 15:55 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 09-08-2008, 16:43
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Hab gerade mal geschaut, was GROUP BY so macht. Ich glaub das ist in meinem Fall nicht das, was ich grauchen kann, da er doppelte Werte der Spalte zusammenführt. Ich brauche am Ende aber schon alle Datensätze... nur eben Sortiert.
Dann spars dir und kümmere dich nur um das ORDER BY.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 10-08-2008, 02:09
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] ORDER BY

Ich hab eben nochmal meine Tabelle so sortiert, wie ich sie am Ende brauchen würde.
Das hier die ID zufällig schön sortiert ist, liegt daran, dass es nur ein paar Testeinträge sind, die ich per Hand angelegt habe. Im Normalfall ist die ID nicht für die Sortierung wesentlich...

Hier die aktuelle Datei... ( beide Tabellen mit vorher / nachher )
http://gelight.de/tabelle.html

Ich denke, dass ich hier wohl nicht alles schön einfach mit einem SELECT und ORDER BY hinbekomme. Oder ich weiß die Tricks nicht...
Mit dem reinen ORDER BY ( egal, wie ich es anwende ) bekomme ich die Daten nicht so sortiert, wie ich sie brauche.

Ich denke mal ich sortiere mir die Daten grob vor und muss dann per PHP das ganze aufbereiten. Oder ihr habt noch einen weiteren TIPP für mich..

Mario
Mit Zitat antworten
  #8 (permalink)  
Alt 10-08-2008, 14:04
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Das was du da beschreibst, ist auch keine Sortierung...

Du versuchst eine Hierarchie abzubilden. Dafür brauchst du entweder eine zusätzliche Tabelle (menu_menu), oder eine andere Struktur (nested sets), oder viele zusätzliche Queries...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9 (permalink)  
Alt 10-08-2008, 14:50
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] Struktur

Eben.... mir war das schon klar, dass es nicht ausschließlich über ORDER BY gehen kann.
Es hätte ja sein können, dass man durch eventuelle innerSelects etc... das ganze lösen kann.
Ich werde es aus Geschwindigkeitsgründen so machen, dass ich grundlegend nach PARENT sortiere aber den Rest über PHP regle.

Danke dennoch für eure Tipps.

Gruß Mario
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 12:48 Uhr.