Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie z warunkiem z tablicy
Myrek
post 3.03.2003, 20:02:41
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 8.02.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
rzseattle
post 3.03.2003, 21:12:07
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
rzseattle
post 3.03.2003, 21:17:17
Post #3





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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;


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
olo_b19
post 4.03.2003, 00:47:20
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: --
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


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 ...


--------------------
Pozdrawiam olo _b19
GG: 846964
Go to the top of the page
+Quote Post
DeyV
post 4.03.2003, 08:47:03
Post #5





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




A przy okazji - warto się zaprzyjaźnić z klauzulą IN w MySQL, czyli
Select * FROM table WHERE id IN (1,2,3)


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Myrek
post 4.03.2003, 17:01:16
Post #6





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 8.02.2003

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 10:11