Autos mit Eigenschaften

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Autos mit Eigenschaften

    Hallöle,

    ich steh irgendwie gerade auf dem Schlauch.

    Ich habe eine große Tabelle wo massig Autos drin sind mit Werte wie z.B. Name, Bj, etc.
    Nun habe ich eine zweite Tabelle in der die Eigenschaften der Autos gespeichert werden z.B.

    PHP-Code:
    Auto_id       Eigenschaft
    1                3
    1                6
    2                8 
    Jeder int-Wert in Eigentschaften kann nun z.B. heiße Felgen oder blonde Frau auf dem Beifahrersitzt bedeuten.
    Nun möchte ich eine Abfrage mit Checkboxen machen, wo ich ankreuzen kann, welche Eigenschaften das Auto haben soll. Mit Left Join klapps ja irgendwie nicht so ganz. Irgendwelche Tipps?
    nein?

  • #2
    Que

    Naja. Du musst alle Eigenschaften abfragen (1 Query).

    Dann kannst du die Autos mit ihren Eigenschaften abfragen (z.b. Right Join, oder die Eigenschaften zuerst abfragen und mit Left Join aufs Auto, jeweils mit Gruppenwechsel), und sie so anordnen, dass du die Autos als Array hast, und die Eigenschaften als Unterarrays mit Key Eigenschaft-ID.

    Dann gibst du für jedes Auto in einer Schleife durch die Eigenschaften die Checkboxen aus, und je nachdem, ob
    PHP-Code:
    if (isset($auto[$eigenschafts_id]) echo " checked=\"checked\" 
    setzt du die Häkchen rein.

    Poste am besten mal deinen Versuch, es wird dann sicher jemand korrigieren...
    ich glaube

    Kommentar


    • #3
      ich brauche die Eigenschaften ja garnicht nochmal, ich muss halt nur wissen, welches Auto die gewollten Eigenschaften hat. Da weiss ich halt nicht, wie ich alles in eine Abfrage bekomme...
      nein?

      Kommentar


      • #4
        Naja, du willst ja alle Checkboxen ausgeben die es geben kann.. ansonsten musst du die Eigenschaften "hardcoden", und nimmst dann eben nur den zweiten Teil meiner Beschreibung.
        ich glaube

        Kommentar


        • #5
          Ne, ausgeben will ich nur die Autos die die Eigenschaften haben und da ist halt die Frage wie ich 5-50 Eigenschaften in einem Query Abfrage.
          nein?

          Kommentar


          • #6
            Original geschrieben von thebrain
            und da ist halt die Frage wie ich 5-50 Eigenschaften in einem Query Abfrage.
            So, wie 1-2 Eigenschaften.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ok, ein Stichwort mit dem man was anfangen kann?
              nein?

              Kommentar


              • #8
                WHERE-Klausel
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Wieso schreibst Du hier überhaupt rein, wenns Dir zu primitiv ist?
                  nein?

                  Kommentar


                  • #10
                    Wie soll man dir weiterhelfen, wenn du nicht mal ansatzweise ein konkretes Problem beschreibst?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Mit Left Join klapps ja irgendwie nicht so ganz. Irgendwelche Tipps?
                      Korrigier den Fehler.

                      Wie wahsaga schon sagte, ohne vernünftige Problembeschreibung kann man auch schlecht nen konkreten Tipp geben. Müsste einleuchten... Die Tatsache dass du bis jetzt noch keinen einzigen Schnipsel gezeigt hast, spricht gegen dich.

                      Kommentar


                      • #12
                        PHP-Code:
                        SELECT autoname FROM autotabelle WHERE eigenschaft 
                        wird wohl kaum gehen. Meine Frage ist einfach nur, wie mache ich diese ganzen Eigenschaften zur Bedingung meiner Abfrage. Ich weiss nicht, wie ich ein LEFT JOIN (oder was es auch immer sein muss) für z.B. 5 Werte in einer anderen Tabelle zur Bedingung mache.

                        PHP-Code:
                        SELECT autoname, (SELECT eigenschaft1
                                             FROM eigenschaftentabelle
                                             WHERE autoid 
                        autoid AND eigenschaftid 5) AS eigenschaft1
                         FROM autotabelle WHERE eigenschaft 
                        <> "" 
                        So würds ja wahrs. irgendwie gehen, aber muss ja auch einfacher gehen.
                        nein?

                        Kommentar


                        • #13
                          SELECT autoname FROM autotabelle WHERE eigenschaft = 1
                          wird wohl kaum gehen.
                          hat aber auch niemand behauptet...

                          So würds ja wahrs. irgendwie gehen, aber muss ja auch einfacher gehen.
                          Gehts auch. Sub-Selects brauchst du ganz sicher keine.

                          Schau dir unseren Thread über JOINs an. Den kannst du 1:1 übernehmen (zunächst für eine Eigenschaft). Und wenn du dann autos mit einer Eigenschaft bekommen hast, kannst du das (WHERE) auch ohne weiteres auf mehrere Eigenschaften ausweiten.

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            hat aber auch niemand behauptet...
                            Hab ich auch nicht behauptet, dass das jemand behauptet hätte


                            Ich weiss schon wie JOINs funktionieren, nur hab ich zu diesem Thema keine Idee.

                            PHP-Code:
                            SELECT autoname
                            FROM autotabelle 
                            LEFT JOIN eigenschaftentabelle ON autoid 
                            eigenschaftenautoid
                            WHERE eigenschaftenid 

                            Mit OR wäre es auch kein Problem, aber mit AND bei den Eigenschaften weiss ich einfach nicht weiter.
                            nein?

                            Kommentar


                            • #15
                              Nochmal die gleiche Tabelle joinen - das suckt natürlich dann an der Performance - eventuell die Eigenschaften lieber redundant in der Auto-Tabelle speichern

                              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                              Wie man Fragen richtig stellt

                              Kommentar

                              Lädt...
                              X