Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bardziej zaawansowane zapytanie Mysql
Forum PHP.pl > Forum > Bazy danych > MySQL
wasyleq
Witam

Bawię się w stworzenie konfiguratora komputerów,
Mam sklep oparty na Oscommerce, problem polega na tym, że mam w bazie osobno tabele products_to_categories i osobno mam także products_description

Muszę wybrać z tabeli products_to_categories produkty o wybranych kategoriach (co robię zapytaniem $obudowa_a i działa)
... A później z wyniku wybrać pierwszą komórkę z każdego wiersza jako kod produktu (products_id - czyli u mnie $ind_ob)
... I każde z tych products_id wybrać z tabeli products_description.

Niestety skrypcik nie chce zadziałać nie wiem czemu sad.gif

  1. ////---------------------------------------------------------->Obudowy
  2. echo'<center><form action="konf_pc.php"><select name="obudowa">';
  3. $obudowa_a="select * from `products_to_categories` where `categories_id` = '418' or `categories_id` = '419' or `categories_id` = '420' or `categories_id` = '421';";
  4. $obudowa_b=mysql_query($obudowa_a);
  5. while ($obudowa_c=mysql_fetch_row($obudowa_b))
  6. {
  7. $ind_ob=$obudowa_c[0];
  8. echo'ind_ob= '.$ind_ob;
  9. $aobudowa_a="select * from `products_description` where `products_id` = $ind_ob ';";
  10. $aobudowa_b=mysql_query($aobudowa_a);
  11. while($aobudowa_c=mysql_fetch_row($aobudowa_b))
  12. {
  13. echo'<option>'.$aobudowa_c[2].'</option>';
  14. }
  15. }
  16. echo'</select></center>';
  17. echo'<center><input type = submit value = "OK"></center></form>';
  18. $wob=(isset($_GET['obudowa'])) ? $_GET['obudowa'] : false;
  19. echo'<center><b> Wybrana obudowa : '.$wob;


Nie wiem gdzie popełniam błąd

Pomóżcie
cojack
  1. SELECT product_description.* FROM products_description LEFT JOIN products_to_categories ON ( product_to_categories.products_id = product_description.products_id ) WHERE product_to_categories.categories_id = '418' OR product_to_categories.categories_id = '419' OR product_to_categories.categories_id = '420' OR product_to_categories.categories_id = '421';



@edit
> Bardziej zaawansowane zapytanie Mysql - kpina jakaś czy co?
Crozin
@cojak: o IN() słyszał?[sql]...WHERE produc...categories_id IN (418, 419, 420, 421);[/code]
cojack
Crozin pewnie że słyszałem i używam, nawet ANY, SOME i ALL ostatnio mi się udało użyć, ale w referencji manuala mysql nie ma słowa o tym że w IN mogą być wartości po przecinku tylko że tam może leżeć subquery

http://dev.mysql.com/doc/refman/5.0/en/any...subqueries.html

chyba że ja źle szukam ;]
Mchl
Bo tym razem to nie operator, ale funkcja (przynajmniej tak sklasyfikowane w manualu, bo na dobrą sprawę ni pies ni wydra...)

http://dev.mysql.com/doc/refman/5.1/en/com...tml#function_in
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.