Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/sql] Uproszczenie zapytan
Bojakki
post 15.11.2006, 00:23:48
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Mam taka tabele:

id gid
[1][1]
[1][3]
[1][4]

I takie zapytania:

  1. <?php
  2. $myquery=mysql_query("SELECT id FROM tabela WHERE id = $wsk AND gid = 1");
  3. $g=mysql_fetch_row($myquery);
  4. if($g[0]!='') $g1=else $g1=2;
  5. $myquery=mysql_query("SELECT id FROM tabela WHERE id = $wsk AND gid = 2");
  6. $g=mysql_fetch_row($myquery);
  7. if($g[0]!='') $g2=else $g2=2;
  8. $myquery=mysql_query("SELECT id FROM tabela WHERE id = $wsk AND gid = 3");
  9. $g=mysql_fetch_row($myquery);
  10. if($g[0]!='') $g3=else $g3=2;
  11. $myquery=mysql_query("SELECT id FROM tabela WHERE id = $wsk AND gid = 4");
  12. $g=mysql_fetch_row($myquery);
  13. if($g[0]!='') $g4=else $g4=2;
  14. $myquery=mysql_query("SELECT id FROM tabela WHERE id = $wsk AND gid = 5");
  15. $g=mysql_fetch_row($myquery);
  16. if($g[0]!='') $g5=else $g5=2;
  17. ?>


Czyli ostatecznie otrzymuje takie cos:
$g1=1
$g2=2
$g3=1
$g4=1
$g5=2

Da sie moze cos takiego otrzymac w nieco bardziej "ekonomiczny" sposob? Bo w przypadku gdy bede mial takich zapytan az do gid=30 to ebdzie tego duzo i bedzie bardzo niewydajne.

Z gory dziekuje za pomoc!


--------------------
Go to the top of the page
+Quote Post
_olo_1984
post 15.11.2006, 07:31:59
Post #2





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


Może poczytaj o coś pętlach (wrzucaniu wyników zapytania w pętle)?

np. while (jak w twoim przypadku) ...


pozdr


--------------------
awake
Go to the top of the page
+Quote Post
Bojakki
post 15.11.2006, 07:43:34
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


To nie takie proste. W zwyklej petli wyswietli mi tylko te rekordy, ktore sa czyli 1, 3 i 4. Poza tym nie bardzo wiem jak sie robi petle juz na wynikach:/


--------------------
Go to the top of the page
+Quote Post
nospor
post 15.11.2006, 08:59:43
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zapytanie:
  1. SELECT id FROM tabela WHERE id = $wsk AND gid IN (1,2,3,4,5);

A potem w petli pobierasz wyniki tego zapytania. Przyklady takiej petli masz przy mysql_fetch_array() w manualu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bojakki
post 15.11.2006, 09:04:35
Post #5





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Rozumiem. A jak w tej petli zmieniac nazwe zmiennej, ktorej przypisujemy wartosc 1 lub 2?
czyli bym otrzymal po kolei zmienne w postaci:

$g1=...;
$g2=...;
$g3=...;
$g4=...;
$g5=...;
$g6=...;

bezie potrzebna jakas wewnetrzna petla, ktora bedzie zmieniala nazwe zmiennej? jezeli tak to anwet nie wiem jak taka petle dla zmiennej napisac:/?


--------------------
Go to the top of the page
+Quote Post
nospor
post 15.11.2006, 09:17:41
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zmienne zmienne

pozatym zawsze mozesz robic tablice zamiast zmiennych


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bojakki
post 15.11.2006, 09:24:20
Post #7





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


W sumie tablica lepsza. Dzieki!!!!


--------------------
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 - 00:45