Wie auslesen!

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

  • Wie auslesen!

    Hallo zusammen,
    Ich habe folgende Tabelle, aus der ich Daten herauspicken muss! Die Tabellenstruktur kann ich leider nicht ändern, da diese mir so vorgegeben wurde!

    PHP-Code:
    field_type                field_value                listingdb_id
    Miete                        1200                           1
    Zimmer                      2Z                              1
    Badzimmer                  1B                              1
    Heizung                     inbegriffen                    1
    Haustiere                  erlaubt                         1
     
    Miete                        2000                           2
    Zimmer                      3Z                              2
    Badzimmer                  2B                              2
    Heizung                     inbegriffen                    2
    Haustiere                  erlaubt                         2
     
    usw
    ... 
    Nun zu meiner Frage! Ich habe ein Suchformular, mit z.B. Anzahl Zimmer(1Z,2Z,3Z,4Z,5Z+) und Anzahl Badzimmer (1B,2B,3B,4B+). Wie kann ich nun die Daten auslesen, sagen wir mal Zimmer = 2Z, Badzimmer = 1B, so dass mir dann alle Werte von listingdb_id 1 ausgegeben werden?
    Also mit anderen Worten, field_value soll auf 3Z und 2B durchsucht werden! 3Z und 2B existieren in listingdb_id 1! Danach sollen also aller Werte für listingdb_id = 1 ausgegeben werden!

    Hoffe man versteht was ich meine.
    Bin für jede Hilfe dankbar!
    SB
    Zuletzt geändert von schnuffelbuffel; 09.06.2009, 07:43.

  • #2
    Wie sieht dein Versuch aus? Das Forum hat leider kein Query-Machine, die auf Knopfdruck passende Abfrage abwirft.

    Kommentar


    • #3
      Hi,
      folgendes hab ich mal versucht selbst zu basteln. Allerdings fragt dieser Code nur einen Wert ab. Ich weiss leider nicht, wie man innerhalb einer Spalte zwei Werte gleichzeitig abfragen kann!

      PHP-Code:
      <?php
      $bedrooms 
      $_POST['bedrooms'];
      $listid ="SELECT * FROM default_en_listingsdbelements WHERE listingsdbelements_field_value = '$bedrooms'";
      $listsid mysql_query($listid);
       if(
      $l mysql_fetch_array($listsid)){
           do{
      $lists $l['listingsdb_id'];
       
      $sql "SELECT * FROM default_en_listingsdbelements WHERE listingsdb_id = '$lists';";
       
      $projects mysql_query($sql);
       
       if(
      $u mysql_fetch_array($projects)){
           do{
      ?>
       
            <?php echo $u['listingsdb_id']?>  <?php echo $u['listingsdbelements_field_value']?> <br />
       
           <?php }while($u mysql_fetch_array($projects));
       }else {
      ?> No listing on file
         <?php }
       
           }while (
      $l mysql_fetch_array($listsid));
           }
       
       
       
       
      ?>
      Zuletzt geändert von schnuffelbuffel; 09.06.2009, 08:15.

      Kommentar


      • #4
        Zitat von schnuffelbuffel Beitrag anzeigen
        Allerdings fragt dieser Code nur einen Wert ab. Ich weiss leider nicht, wie man innerhalb einer Spalte zwei Werte gleichzeitig abfragen kann!
        In dem man mehrere einzelne Bedingungen mit den logischen Operatoren OR/AND verknüpft beispielsweise.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi wahsaga,
          das habe ich ja probiert, aber ich komme einfach auf keine logische Funktion, die mir das gewünschte Resultat liefert!.

          Vielleicht könntest du mir ja ein kleiner Denkanstoss liefern

          Kommentar


          • #6
            Zitat von schnuffelbuffel Beitrag anzeigen
            das habe ich ja probiert, aber ich komme einfach auf keine logische Funktion, die mir das gewünschte Resultat liefert!
            Wie viel "Logik" braucht es denn, um zwei Bedingungen, die ein Datensatz beide erfüllen soll, damit er selektiert wird, mit einem AND zu verknüpfen ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Zitat von schnuffelbuffel Beitrag anzeigen
              Vielleicht könntest du mir ja ein kleiner Denkanstoss liefern
              OK, hier ist Pseudo-Code für dich:

              Selektiere gewünschte Daten von der Tabelle wo der Typ = xyz und den Wert = abc

              Kommentar


              • #8
                danke asp2php
                das verstehe ich ja aber ich denke, ihr habt mein Problem missverstanden! Wenn du mal schaust in meiner Tabelle, die ich oben geposted habe. Ich suche z.B. nach 2Z und 1B (ne 2 Zimmer Wohnung mit einem 1em Banzimmer) in der Spalte field_value. Bei einer übereinstimmung innerhalb einer listingdb_id (beim beispiel oben listingdb_id = 1) soll es mir alle Werte der listingdb_id 1 ausgeben!

                Ich kann ja nicht
                PHP-Code:
                $listid ="SELECT listingdb_id FROM default_en_listingsdbelements WHERE listingsdbelements_field_value ='2Z' AND listingsdbelements_field_value ='1B' )"
                benutzen!! Vielleicht gibt es da eine ganz einfache Lösung aber mir ich komme einfach ned weiter!!

                Kommentar


                • #9
                  Ach so ... na ja, deine "Tabellenbeschreibung" war etwas missverständlich.


                  Dann wähle alle die Datensätze aus, die in der Spalte den Wert 2Z ODER 1B haben, gruppiere nach der listingdb_id - und lasse die Datensätze mit COUNT zählen, und wähle mittels HAVING nur die aus, wo die Anzahl gleich 2 ist.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    das würde - denke ich - so nicht funktionieren. Die Tabelle enthält 100erte von Wohnungen.
                    Nehmen wir an listingdb_id 1, 19, 33, 56, 90, 156 sind alles 2 Zimmer / 1 Badzimmer Wohnungen. Würde ich deine Formel benutzen, würde es mir nur die Wohnung von listingdb_id 1 ausgeben und nicht alle anderen oder sehe ich das falsch?

                    Kommentar


                    • #11
                      Ja, das siehst du falsch.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        ok! hab mal bisschen ausprobiert!
                        PHP-Code:
                        $listid ="SELECT * FROM default_en_listingsdbelements WHERE (listingsdbelements_field_value = '2BA' OR listingsdbelements_field_value = '3BR') GROUP BY listingsdb_id"
                        Mir ist nicht ganz klar, wie ich COUNT / HAVING in die Formel einfüge, so dass es funktioniert!

                        Kommentar


                        • #13
                          Zitat von schnuffelbuffel Beitrag anzeigen
                          Mir ist nicht ganz klar, wie ich COUNT / HAVING in die Formel einfüge, so dass es funktioniert!
                          An der jeweils einzigen Stelle, wo sie in einem SELECT-Statement vorkommen dürfen - was du jetzt mal im Manual nachlesen gehst.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            PHP-Code:
                            $listid ="SELECT listingsdb_id, COUNT(*) AS Total FROM default_en_listingsdbelements 
                            WHERE (listingsdbelements_field_value = '2BA' OR listingsdbelements_field_value = '3BR') 
                            GROUP BY listingsdb_id HAVING Total = 2"

                            so funtzts! danke für den Hinweis (:
                            EDIT:
                            Zeilenumbrüche sponsored by kropff
                            Zuletzt geändert von Kropff; 10.06.2009, 12:20.

                            Kommentar

                            Lädt...
                            X