Beiträge von steffen_72

    Zitat

    Ich frage mich gerade, was die Abfrage bringen soll.

    Wenn man Alle Shows mit allen Models abfragen, aber kein Model doppelt haben möchte, hat man doch unvollständige Daten.

    Wenn man all Models mit Allen Shows abfragen, aber keine Show doppelt haben möchte, hat man ebenfalls unvollständige Daten.

    Und wenn man alle shows zu einem Model oder alle Models zu einer Show haben möchte, sollte es keine doppelten Einträge geben.

    Also was bringt das? Ganz einfach stell dir vor du hast eine Datenbank von einem Sänger sagen wir Herbert Grönemeyer.

    Ok der hat ja nicht nur ein Lied rausgebracht. Daneben stellen wir mal frank Sinatra da neben, auch er hat nicht nur ein Lied rausgebracht.

    Das ganze kann man weiter spinnen.


    Jetzt möchtest Du eine Übersichtsseite haben wo Du alle Künstler die Du magst aufgelistet da stehen. Ich sag mal so mir fehlt jetzt das Verständnis dafür wie so eine Tabelle aufgebaut sein müsste, dann denke ich mir das es auch kein Problem darstellen wird so einen Künstler leicht raus zu filtern.


    So nun meine Tabelle war oder besser gesagt ist ja nicht das goldene Ei.


    AndreasB m-n Relation dafür fehlt mir das Verständnis, das muss ich mir in ruhe durch lesen wie das geht.


    Zitat

    Sempervivum müsste man zusätzlich eine Tabelle nur mit Show-IDs und Model-IDs vorsehen


    Auch das muss ich mir ansehen wie das geht.


    Ich dachte ( soll man(n) ) das geht einfacher oder leichter aber nun gut.

    Ich denke mal, Steffen meint folgendes: Sicher ist ein Model in mehreren Shows aufgetreten. Fragt man jetzt alle Shows für ein Model ab, treten die Daten des Models dann im Ergebnis der Abfrage mehrfach auf. Wird jetzt die ursprüngliche Tabelle auf models und shows aufgeteilt, erwarte ich, dass das am Ergebnis nichts ändern wird: Man wird einen Join verwenden müssen, um die Daten wieder zusammen zu führen. Dann bekommt man wieder mehrere Zeilen, weil es ja mehrere Shows gibt.

    Danke besser kann man es nicht erklären :)

    Zitat

    Kannst jetzt nochmal dein Problem beschreiben?

    Ich hoffe ich kann es verständlich erklären.


    Also in der Datenbank (models) habe ich name und modelid.


    Das Model kommt mehrmals mit der gleichen modelid vor. Jetzt möchte ich auf einer Seite, das so haben, das die Models nur einmal erscheinen. Also muss das gefiltert werden und die Datenbank gibt mir nur einmal die Person raus.


    Ich habe es mit DISTINCT in der Abfrage versucht. Nach dem ich die MYSQL Referenz gelesen hatte, komme ich zu dem Entschluss das es nicht funktionieren kann.


    Also kurz gesagt, ich wollte oder will es immer noch. das nur eine Person egal wie oft sie da enthalten ist ausgeben wird.


    Steffen

    Hallo ihr beiden,


    ich habe jetzt die Tabelle in vier Tabellen unterteilt.


    Eine Nur für Namen, Schlagzeile und dann zweimal in für für die Bilder, wird auch nicht wirklich optimal sein aber was solls.


    Fremdschlüssel hat die Datenbank keine das einzige was die Datenbank bekommt ist die ID die ist Auto Inkrement und das andere womit ich eigentlich arbeite ist die modelid.


    Jetzt muss ich die Tabellen Abfragen neu Anpassen, Soweit wird das auch nicht so schwierig sein.


    Aber es stellt sich mir jetzt trotzdem die Frage, auch wenn ich meine Tabelle gesplittet habe, wie ich nur einen wert angezeigt bekomme.


    Steffen

    Hallo zusammen,


    ich habe eine MYSQL Tabelle mit 19 Spalten. Jetzt ist es so das in der Tabelle mehrmals der Name und die dazu gehörige ID vorkommen.

    Was ich möchte ist folgendes, ich möchte das der Name wenn er doppelt vorkommt. Nur einmal ausgegeben wird.


    Der Aufbau der MYSQL Tabelle ist folgender:


    ID
    showid
    showname
    modelid
    modelname
    collection
    seite
    datum
    galerie
    info
    card


    usw. wie gesagt 19 Felder.


    Nun zu meiner 1. Frage:


    wenn ich ein SELECT DISTINCT ausführe komme ich nicht zu dem Ergebnis. Ist auch klar, da ja mehre spalten unterschiedliche Inhalte haben.

    Aber wie schaffe ich das das trotzdem die Daten nach dem modelname gefiltert werden und nur ein Datensatz vom jeweiligen modelnamen angezeigt wird?



    Nun zu 2. Frage


    Wäre es sinnvoller die Tabelle zu zerlegen?

    z.B.

    Tabelle 1 modelname modelid

    Tabelle 2 alles relevante dann rein

    Tabelle 3 dann Bilder usw.


    Danke für Eure Zeit .

    Schön, dass es funktioniert. Aber noch eine Frage zum Verständnis: Bei meinem ersten Vorschlag mit Subquery bin ich davon ausgegangen, dass es eine 1-zu-1-Zuordnung zwischen Set-ID und Model-ID gibt. Inzwischen ist mir eingefallen, dass es ja U. U. mehrere Models am Set geben kann. Dann würde es mit Subquery nicht gehen sondern nur mit Join.

    Du hast mir den entscheidenden Tipp mit dem Sub bzw. unter Abfragen gegeben. Dazu muss ich mich erst einmal einlesen um zu sehen wie ich es umsetzen kann.

    Also in der Datenbank gibt es das Model einmal oder das Model ist mehrmals vertreten. Ich versuche es nochmals so zu skizzieren.


    setid = die verbindung zu allen drei Tabellen ( Model, Modelinfo, Modelbilder)

    modelid = modelname

    also im Verständnis für mich ich gebe die Setid an und komme zum Model X, dann möchte ich wissen gibt es das Model X noch einmal in meiner Datenbank bei ja ok geb sie mir, wenn nein dann ist es auch gut und gib mir ein false bzw. eine Null.


    Zitat

    Wie verhält es sich denn in deiner Konfiguration?

    Edit: Würde auch dann mit Subquery gehen, wenn man ein IN verwendet

    da ich das ganze zu Hause auf dem PC erstelle kann ich dir noch nicht einmal sagen ob das auf meinem Webspace geht. Aber ich denke schon.

    Ich weis nicht wo ich da nach schauen muß / soll :(


    LG Steffen und danke :)

    also Tabelle 1 sind nur die namen der models z.B.


    Tabelle model

    id|setid|modelname|model_id


    id wird selber von Mysql gesetzt, modelname und model_id sind im Prinzip identisch, also beide gehören zusammen.

    Die setid gibt mir die Bildergalerie von dem jeweiligen Model aus. Da nun mal ein Model mehrere Bilder Galerien haben kann. Deswegen wird auch bei den Bildergalerien immer die setid angeben.


    Tabelle 2 da sind nur schlagwörter datum galerielink xml usw.


    also die sieht dann so aus:


    id|model_id|datum|showname|bildergalerie|card|info|vorschau|seite


    id die wird von mysql selber gesetzt, model_id ist identisch wie setid.


    was ich möchte, ist folgendes. Ich habe ein Model, welches mehrmals in der Tabelle vorkommt. und die möchte ich gerne herausfiltern und ausgeben lassen.

    Da ich eigentlich nur mit der setid arbeite, ist die frage wie ich das bewerkstelligen kann.

    Moin Moin zusammen,

    ich habe wiedermal ein Problem, wo ich nicht weiter weis.




    So jetzt zu meiner Frage, die setid die ist die bekannte. Wie kann ich die setid mit der model_id binden?

    Die model_id ist fest mit dem model verbunden, der modelname und die model_id sind mehrmals belegt.


    Geht das oder muss ich jedesmal die model_id mit angeben?


    LG steffen

    1. while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    2. // do something with $row['...']
    3. }


    jetzt bekomme ich die Abfrage und in der while Schleife wird mir ja alles ausgeben.

    Mein Problem ist ja aber. In Zeile 1 habe ich ein Array definiert. $seite = 'wasauchimmer';,

    Danach wird gesucht und wird mir auch das Ergebnis angezeigt, soweit auch gut. wenn ich nur ein wert habe ist das ok. in der Datenbank gibt es immer mehrere Spalten die gefüllt sind, und die kann man doch nicht Händisch da oben eintragen. Sorry ich weiß nicht wie ich es besser ausdrücken soll.

    Moin Moin zusammen,


    Ich habe eine Abfrage wie folgt:



    Soweit auch, jetzt zu meinem Problem.

    Ich weiß nicht wie ich das Array

    Code
    1. $seite = 'wasweissich.de';

    binde ohne eine Wert Angabe. Also ohne das ich diesen Wert eingeben muss, denn der soll aus meiner Datenbank abgeholt werden.

    Ich weiß leider nicht wonach ich suchen soll. Vielleicht könnte mir jemand weiterhelfen wonach ich suchen muss soll.

    Wenn Du das Geheimnis lüften würdest, um welche Notices es sich handelt, wäre es sicher leichter für uns Dir zu helfen.

    Hallo Arne

    die Notize ist folgende

    Notice: Undefined index: id in C:\MAMP\htdocs\admin\galerie.php on line 14

    Notice: Undefined index: id in C:\MAMP\htdocs\admin\galerie.php on line 19


    das er mir die Notizen anzeigt war bzw. ist mir klar. kann ja nicht zurück auf die Bildergalerie Seite. Was soll er rausholen wenn keine übergabe der id stattfindet.

    und jetzt komme ich ja zu meinem Problem. wie kann ich es bewerkstelligen das er wieder zurück findet?

    Ich hatte schon an session gedacht. aber keine Ahnung wie das gehen soll.

    Hallo zusammen.


    Ich habe eine Frage.


    Also ich habe 3 Seite.


    index.php

    galerie.php

    foto.php


    Soweit so ok.

    Wenn ich in der Galerie (php) das Bild anklicke wird dieses zu foto.php weitergeleitet und da angezeigt.

    Soweit und alles ok. Der Code ist ok etc. also es gibt keine Fehlermeldung.

    index.php

    galerie.php


    wenn ich in der galerie.php,


    Code
    1. <a href="foto.php?dateiname=<?= $bild['full'] ?>">
    2. <img src="../<?= $bild['tn'] ?>" alt="Dummy Image" class="masonry-content">
    3. </a>

    anklicke werde ich auf die foto.php weitergeleitet.

    Soweit auch ok. das Bild wird mir auch alles angezeigt.

    Aber wie kann ich es so lösen, das ich von foto.php wieder zurück auf die galerie.php komme und mir auch die Bilderangezeigt bekomme, die ich gesehen habe. den jetzt wird mir eine leere Seite mit zwei Notizen angezeigt.

    foto.php

    Ich hoffe das ich mich etwas vernüftig ausgedrückt habe.


    Lg


    Steffen

    An den CREATE-Statements könnte man evtl. schon einen Fehler erkennen.


    Aus der Fehlermeldung entnehme ich, dass die Tabelle gallerie referenziert wird, aber oben ist ersichtlich, dass gallerie eine Spalte ist. Vielleicht hilft schon die Verwendung von Galerie als Tabellenname.

    Ja den Fehler habe ich gefunden, nach genaueren hinsehen, wurde eine spalte benannt die garnicht existiert. danke euch beiden für das erste.