Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Najszybszy sposób na wyszukiwanie ilości rekordów
pasTerzu
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 25.08.2005

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


Jest sobie baza danych. Do nie muszę zrobić wyszukiwarke - różne kryteria m.in - KRAJ - jednak szef nie chce całej listy krajów jakie są na świecie a jedynie taką liste na której będą kraje z których pochodzi co najmniej jeden rekord.

Każdy kraj ma swoje ID przypisane u mnie w bazie. Jak narazie zrobiłem coś takiego:

  1. <?php
  2. if (mysql_num_rows(mysql_query(SELECT id FROM basic_info WHERE (type = 20 or type = 21) AND country = 12)) > 0) echo '<option value=12>Argentina</option>';
  3. if (mysql_num_rows(mysql_query(SELECT id FROM basic_info WHERE (type = 20 or type = 21) AND country = 13)) > 0) echo '<option value=13>Armenia</option>';
  4. if (mysql_num_rows(mysql_query(SELECT id FROM basic_info WHERE (type = 20 or type = 21) AND country = 14)) > 0) echo '<option value=14>Aruba</option>';
  5. ?>


itp itd ...
ale jako że krajów jest ponad 200 to cholernie długo się tworzy taka lista ... czy ktoś może coś podpowiedzieć jak można by to deko usprawnić ? (o ile wogóle się da) thx

Ten post edytował pasTerzu 14.08.2006, 20:17:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Oj panowie, a nie lepiej:
  1. SELECT DISTINCT country FROM basic_info WHERE (type = 20 OR type = 21);

zapytanie to zwroci ci liste wartosci z kolumny country ale taka liste, ze wartosci nie beda sie powtarzaly. Czyli otrzymasz po prostu liste country ktore zostaly uzyte w tabeli basic_info.
Potem mozesz stworzyc tablice (lub osobna tabele - nie wiem jak tam masz) w ktorej przypiszesz dla kazdego country odpowiednia nazwe:
  1. <?php
  2. </php
  3. $countries = Array(1=> 'Bangladesz', 'Tadzykistan', 12 => 'Argentina', 'Armenia', 'Aruba');
  4. ?>

i w petli mozesz wyswietlic tylko te indexy (a w zasadzie wartosci), ktore zwrocilo ci zapytanie SQL.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 06:11