Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie z warunkiem z tablicy
Forum PHP.pl > Inne > Hydepark
Myrek
Mam problem z tworzeniem zapytania odczytującego z bazy danych. Mianowicie mam tablicę, w której są pewne wartości (0-6, 1-2, 2-14, 3-7, czyli po kolei 6,2,14,7). Stworzone zapytanie musi wczytać po kolei te wartości jako osobne warunki w klauzuli "where"czyli moglibyśmy stworzyć zapytanie typu:
Kod
$zapytanie = "select nazwa from xxx where id= $element['0'] and id=$element['1'] itd"

tylko, w tym problem, że nie wiadomo ile jest wartości w tablicy, więc nie można zastosować tej ręcznej metody. Myślałem tu nad pętlą, ale mi nie wychodzi. A ha, wyniki całego zapytania chce mieć w tablicy indeksowanej numerycznie.
Pozdrawiam.
Myrek
rzseattle
Wyraziles sie troche niejasno ale mysle ze to powinno mniej wiecej spelniac twoje oczekiwania:
Kod
$pytanie='select id from xxx';

$wynik=mysql_query($pytanie);



while ($line = mysql_fetch_assoc($wynik_)) {

     while(list($col_name, $col_value) = each($line)) {

          if ($col_name=='id') {$id=$col_value;}

          if ($col_name=='nazwa') {$nazwa=$col_value}

                }

    $element[$id]=$nazwa

                                                 }

jesli chcesz miec za klucze nie id tylko normalne cyfry to zamiast $id wsztaw $i
rzseattle
Cytat
jesli chcesz miec za klucze nie id tylko normalne cyfry to zamiast $id wsztaw $i


sorry - myslalem chyba o czyms innym,,,, mozesz poprostu zostawic [] lub
Kod
$i++;

$element[$i]=$nazwa;
olo_b19
Witam

Cytat
$zapytanie = "select nazwa from xxx where id= $element['0'] and id=$element['1'] itd"


Kod
$warunek="";

for($i=0;$i<count($tabela);$i++)

    {

    if($i==0)

      {

      $warunek=" WHERE id=".$tabela[$i];

       }

    else{

          $warunek.=" AND id=".$tabela[$i];

          }

    }

$zapytanie="SELECT * FROM tabela $warunek";

$wykonanie=mysql_query($zapytanie);

// itp


Powinno być chyba OK ...
DeyV
A przy okazji - warto się zaprzyjaźnić z klauzulą IN w MySQL, czyli
Select * FROM table WHERE id IN (1,2,3)
Myrek
Dzięki za odpowiedz. Pomyliłem się, zamiast AND w WHERE, powinno być OR, na razie przetestowałem metodę olo_b19 i działa.
Dzięki za wszystkie odpowiedzi, wracam do boju z moim skryptem.
Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.