Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Arrays und MySQL-Abfragen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Arrays und MySQL-Abfragen

    Hallo,

    ich habe ein Array in der Form:

    [0] - apfel
    [1] - birne
    [2] - banane

    und möchte nun eine MySQL-Tabelle abfragen, wobei in der WHERE-Anweisung nacheinander nach jedem elemnt im dem Array gesucht werden soll:

    SELECT a, b FROM tabelle WHERE frucht = 'element_aus_dem_array'

    Mein problem ist nun, dass ich nciht weiss, wie die Syntax genau lautet. ich habe schon in etlichen Büchern und im Internet gesucht, konnte aber nirgends so etwasa finden.

    Kann mir jemand weiterhelfen?


  • #2
    So sollte es gehen:
    Code:
    <?
     $array = array("Apfel", "Birne", "Orange");
    
     $where = array();
    
     foreach ($array as $value)
       $where[] = "frucht='$value'";
    
     $condition = implode (" or ", $where);
    
     $query = "SELECT a, b FROM tabelle WHERE " . $condition;
    ?>
    Gruß
    phpfan

    Kommentar


    • #3
      ich habe es ausprobiert, doch ich bekomme keine Ergebnisse raus (nur eine leeere Seite.
      Wenn ich mir nun bei jedem Schritt die einzelnen Variablen ausgeben lasse erhalte ich bei

      echo $where;

      folgendes:

      frucht='Array'

      D.h. also, dass $value nicht übertragen wird....?

      Kommentar


      • #4
        Wenn ich das Script so laufen lasse und mir $query ausgeben lasse, dann kommt das bei raus:

        SELECT a, b FROM tabelle WHERE frucht='Apfel' or frucht='Birne' or frucht='Orange'

        Und das sollte doch richtig sein.

        Gruß
        phpfan

        Kommentar


        • #5
          ach so... missverständlich ausgedrückt.

          ich brauche für jedes element in dem array ein entsprechndes element aus der MySQL-Tabelle. also pro element eine Abfrage, wo nur nach diesem einem elemnt gesucht werden soll.

          ich habe folgendes:
          Code:
          <?
          $korb = array();
          
          $obst_suchen = mysql_query("select obstsorte from waren");
          while($obst_ausgabe = mysql_fetch_row($obst_suchen)) {
              $korb[] = $obst_ausgabe[0];
          }
          
          $gemuese_suchen = mysql_query("select gemuesesorte from waren");
          while($gemuese_ausgabe = mysql_fetch_row($gemuese_suchen)) {
              $korb[] = $gemuese_ausgabe[0];
          }
          
          ?>
          Jetzt möchte ich aus einer anderen Tabelle für jedes Element in $korb nach einem Kriterium suchen:

          Code:
          foreach ($korb as $obst_id) {
          $kriterien = mysql_query("SELECT kriterium FROM nahrungsmittel WHERE id = ". $obst_id. "GROUP BY kriterium");
          $krit_ausgabe = mysql_fetch_row($kriterien);
          echo $krit_ausgabe[0];
          }
          Und das liefert mir eine leere seite zurück

          Kommentar


          • #6
            Wenn ich

            print_r($korb);

            eingebe, bekomme ich folgendes:

            Array([0] => Array ( [0] => 23 ))


            ????

            Kommentar

            Lädt...
            X