cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Home
Impressum
Sitemap
AGB
Kontakt
Hilfe

Über Uns
Was ist Cybton?
Mitarbeiter
Technik
Werbung
Jobs


Statistik
Mitglieder gesamt: 68138
Mitglieder online: 5
Gäste online: 5
mehr...

Anzeige
Home » Suche

Suche

(95 Ergebnisse)Forum
+

Wahrscheinlich ist das für viele von euch ein absolut trivialer Fall, aber ich komm heute irgendwie nicht mehr hinter meinen Denkfehler / Programmierfehler. Bin vor allem auf dem Gebiet der Verknüpfung von MySQL Tabellen eher ein Neuling:

Also ich habe 2 Tabellen: Tabelle 1, Tabelle 2

In Tabelle 2 befindet sich der Fremschlüssel, der die Datensätze aus Tabelle 2 eindeutig den Datensätzen aus Tabelle 1 zuordnet. Also folgende Struktur

Tabelle 1:
tab1_id | tab1_name | weitere Spalte

Tabelle 2:
tab2_id | tab2_name | weitere Spalte | tab1_id

Nun verwende ich folgende SQL-Abfrage (natürlich nicht exakt folgender Code, es geht nur ums Prinzip):

SELECT * FROM tabelle 1 LEFT JOIN tabelle 2 ON tabelle2.tab1_id=tabelle1.tab1_id

Das Problem ist nur, dass in meiner Ausgabe auf der Webseite per Php die Datensätze aus Tabelle 1 nur ein einziges Mal vorkommen sollen, und praktisch pro Datensatz aus Tabelle 1 eine Liste mit den dazugehörigen Datensätzen aus Tabelle 2.

Mit meiner SQL-Abfrage passiert aber folgendes: Sobald es mehrere Datensätze in Tabelle 2 gibt, die denselben Fremschlüssel besitzen, wird der betreffende Datensatz aus Tabelle 1 ebenfalls mehrmals ausgegeben.

Jetzt könnte man das ganze natürlich umdrehen, also in tabelle 1 den fremdschlüssel legen und dann das ganze Spiel umdrehen, nur müssen zwingend alle Datensätze aus der Tabelle 1 ausgegeben werden, egal ob es einen Datensatz in Tabelle 2 gibt, der den richtigen Fremdschlüssel besitzt oder nicht. Wenn es mehrere entsprechende Datensätze gibt, dann sollen diese als Liste ausgegeben werden.

Wer es will, kann als Vergleich zum besseren Verständnis das Forum heranziehen. Hier wird ja auch nicht pro Attachement ein und derselbe Post mehrmals angezeigt.

Ich hoffe, ich hab das verständlich ausgedrückt und ihr könnt mir helfen.

(Durch Tags gefunden)

        [gelöst] Problem mit MySQL LEFT JOIN
        SQL JOIN Hilfe 2 tabellen
        [gelöst] MySQL - Problem bei längerer SELECT - Abfrage
+

Zu Symfony kann ich leider nichts sagen, da ich es bisher nur angeschaut habe.

Mit dem Zend-Framework habe ich zwar noch keine produktive Webseite geschrieben, aber dies zumindest schon versucht. Das Einfinden in das Zend-Framework habe ich nie richtig bewältigt, weshalb ich dann auch wieder davon abgekommen bin. Wenn man sich allerdings wirklich 1 Monat intensiv damit beschäftigt, dann sollte das sehr zügig gehen. Im Grunde ist es recht intuitiv zu verwenden. Trotzdem fehlte mir immer das Wissen, wo ich nun eine bestimmte Variable (wie z.B. die aktuelle Zeit) sauber herkriege. Natürlich könnte ich es direkt über $_SERVER lösen, aber das Zend-Framework bietet ja nicht umsonst die Request-Daten an.

Nicht so richtig hereingefunden habe ich mich in die automatische Validierung von Formulardaten. Beim Zend-Framework kannst du mit Zend_Form ein HTML-Formular bequem über OOP anlegen lassen. Das verstößt zwar irgendwie gegen die Trennung von Controller und View, aber ist auf jeden Fall bequem. Dabei kannst du dann gleich Validatoren festlegen, die überprüfen, ob auch wirklich eine Zahl eingegeben wurde oder andere Späße.
Ich war der Form-Klasse aus zwei Gründen abgeneigt:

  • in meiner Zend-Framework Version gab es einen Bug, der zu einem PHP-Error führte (den musste ich also manuell aus den SVN-Quellen beheben)

  • es wird (wurde zumindest zu meiner Zeit, keine Ahnung, ob immer noch) für die Anordnung von Labels und Eingabefeldern eine HTML-Definitionsliste verwendet. Das habe ich überhaupt nicht verstanden...


  • Die Mehrsprachigkeit beim Zend-Framework fand ich sehr gelungen. Man kann sich Währungen, Entfernungen, Daten, etc. einfach anhand von einer vorher definierten Locale in anderen Formaten ausgeben lassen. Die Klasse Date enthält zur Mehrsprachigkeit ein paar Typen, die in vielen Sprachen vorhanden sind. LONG und SHORT oder so irgendwie werden diese bezeichnet. Ansonsten kann man natürlich auch über die einzelnen Buchstaben das Datum selbst anordnen, aber dann ist die [lexikon]Internationalisierung[/lexikon] dahin.
    Schön ist auch, dass verschiedene Formate zur Speicherung der Texte in allen Sprachen unterstützt werden. Am wichtigsten ist natürlich [lexikon]gettext()[/lexikon].

    Das Datenbank-Modell ist laut HangMan nicht korrekt nach dem MVC-Pattern umgesetzt, weil man mehrere Models in einem Controller verwenden kann. Gut zu verwenden ist es aber trotzdem. Es gibt vordefinierte Datenbank-Klassen, von denen man seine eigenen Klassen ableiten kann. Je nach Komplexität muss man dann u.U. nur noch Name der Tabelle angeben und kann dann über OOP einfache Operationen ausführen. (insert, update, select, join, ...). Wird es doch zu kompliziert, dann kann man auch einfach das SQL-Statement direkt eingeben.

    Seit einiger Zeit können die Views endlich auch eine Art von index-Funktion, d.h. man kann sich eine Index-Datei anlegen und definiert darin einen Punkt, an dem die jeweiligen anderen Views eingebunden werden. Früher musste man immer header.phtml und footer.phtml in jeder View-Datei einbinden.

    Wenn ich mich richtig erinnere, dann war HangMan von der Umsetzung von Zend_Acl nicht wirklich begeistert. Ich glaube, es gab irgendwie keine direkte Datenbankverbindung, d.h. man musste eigentlich den Großteil noch selbst programmieren.

    Was mir persönlich am Zend-Framework gefallen hat - als Vergleich habe ich leider nur das Agavi Framework - war, dass man immer wusste, welche Variablen denn nun bereits definiert sind und unter welchem Namen, da das alles von einem selbst in PHP-Code umgewandelt wird. Bei Agavi wurde da viel über Konfigurationsdateien gemacht und ich musste erst herausfinden, wo ich unnötige Module entfernen kann und unter welcher Variable die Mehrsprachigkeit läuft.


    Schließlich hilft dir vielleicht dieser Artikel weiter, der auf die Unterschiede zwischen Zend Framework und Symfony eingeht. Allerdings ist das Template-System bei Zend inzwischen verbessert worden. (siehe oben)
    http://www.karlkatzke.com/php-symfony-vs-zend/

    Dazu noch eine Anmerkung: Es gibt bei Zend auch Erweiterungen, aber nicht wirklich viele, wenn ich das gerade richtig weiß. Diese laufen meines Wissens nach unter dem Namen Xend.


    [h1]Edit[/h1]
    Ich hoffe, dass HangMan es mir verzeiht, wenn ich falsche Informationen über seine Gedanken gegeben haben sollte, und es dann verbessernd in Form eines Postings darstellt.

            Welches PHP-Framework?
    +

    Zitat:
    Gibt es eine möglichkeit, die NestedSet abfrage so zu modifizieren, das nur der Ast des Baumes angezeigt wird, der gerade aktiv ist?
    Das war genau der Grund, warum wir in der Firma dann doch nicht von der Rekursiven Methode zu Nested Sets gewechselt sind.
    Mit jeder aufgeklappten Ebene kommt ein Subselect (ode war es ein Join?) dazu, und mit zwei Unterebenen hatte unser Statement dann schon über ne halbe Bildschirmseite an Länge. Von der Performance mag ich da gar nicht reden.

    Bei den Nested Sets ist der Vorteil wirklich der, dass man einen einzigen Teil mit all seinen Unterknoten sehr leicht auslesen kann. Aber gerade bei einem Website-Menü braucht man das ja praktisch nie.
    Umgekehrt brauchst du bei der Rekursionsmethode bei 4 Unterebenen genau 4 (einfache) SQL-Statements, die im einfachsten Fall auch noch direkt auf einen Index (MotherID) zurückgreifen können. Einfacher gehts nicht.

    Generell gesprochen, fallert mir fürs Web kaum eine Anwendung für Nested Sets ein. Wann braucht man schon alle (und ich meine wirklich alle) Knoten eines Baumes oder eines Teilasts? Wenn man mal so viele Knoten hat (seien es nun Menüpunkte, Foren-Einträge oder sonstwas), dass sich Nested Sets tatsächlich performance-mäßig rentieren würden, dann sind es schon wieder so viele Items, dass man sie unmöglich auf einer einzigen Seite dem User präsentieren kann. Man braucht also dann entweder irgendwelche Filterfunktionen, oder der User muss blättern können. In beiden Fällen steigen die NestedSets mit ziemlichem Karacho aus.

    LG, bmk.

            Treemenu mit MySQL generieren
            Root-Core - Coding meets GFX
            view oder join
    Es wurde in den Kategorien News, Hilfe, Tutorial, User, Homepages, Basar und Buecher nichts gefunden.
    nach obennach oben

    Copyright © 2008 cybton-network

    Google
    Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
    ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung