Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z wyświetlaniem wyników dla ZMIENNEJ ilości towarów
damianprz
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.08.2009
Skąd: Zamojsce

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


(IMG:http://images43.fotosik.pl/188/1182f918ccd3c00fm.jpg)

Na screenie widać tabele i część rekordów

  1. $zapytanko="SELECT produkty.id_towaru, produkty.id_daty, popyt, data.data, towary.nazwa FROM produkty
  2. INNER JOIN data ON (produkty.id_daty=data.id)
  3. INNER JOIN towary ON (produkty.id_towaru=towary.id) WHERE produkty.id_towaru='2'";
  4.  
  5. $rezultat = mysql_query($zapytanko)
  6. or die("Błąd zapytania");
  7.  
  8. $zapytanko2="SELECT id FROM towary";
  9.  
  10. $rezultat2 = mysql_query($zapytanko2)
  11. or die("Błąd zapytania");
  12.  
  13. $ile=mysql_num_rows($rezultat2);
  14. echo "Mamy ".$ile." wiersze";
  15.  
  16. echo "<table id='tabela'>";
  17. echo '<tr><td>data</td><td>towar</td><td>popyt</td></tr>';
  18.  
  19. for ($i=0; $i <$ile; $i++)
  20. {
  21. $wiersz = mysql_fetch_array($rezultat);
  22. echo '<tr>';
  23.  
  24. echo '<td>'.$wiersz['data'].'</td>';
  25. echo '<td>'.$wiersz['nazwa'].'</td>';
  26. echo '<td>'.$wiersz['popyt'].'</td>';
  27. echo '</tr>';
  28. }
  29. echo '</table>';


To zapytanie i echa pokazuje tabelkę, która widoczna jest na screenie
Taki kod może pokazać mi wyniki tylko dla Id=2 bo mamy w selekcie WHERE produkty.id_towaru='2'
Czyli robię linka do tej strony który nazywa się np. Pokaż popyt w poszczególnych dniach dla towaru o Id=2 i klikając na niego wejdę na stronę w powyższym kodem i zostanie wyświetlona tabelka z popytem dla srubek.

Teraz pytanie:
Czy da się wygenerować jakoś takie linki dla każdego towaru?
I nie chodzi mi o to żeby zrobić 4 linki i 4 strony php z których każda pokazuje to dla wybranego Id od 1 do 4
Tylko chodzi mi o to, że liczba towarów może wzrosnąć np przez dodanie 5. towaru i żeby nie być zmuszonym tworzyć wtedy linka
Pokaż popyt w poszczególnych dniach dla towaru o Id=5 i tworzyć całej strony z kodem:
  1. $zapytanko="SELECT produkty.id_towaru, produkty.id_daty, popyt, data.data, towary.nazwa FROM produkty
  2. INNER JOIN data ON (produkty.id_daty=data.id)
  3. INNER JOIN towary ON (produkty.id_towaru=towary.id) WHERE produkty.id_towaru='5'";


W ogóle czy jest takie coś możliwe?
Bo nie można pod SELECTA wziąźć zmiennej np. $i
  1. $zapytanko="SELECT produkty.id_towaru, produkty.id_daty, popyt, data.data, towary.nazwa FROM produkty
  2. INNER JOIN data ON (produkty.id_daty=data.id)
  3. INNER JOIN towary ON (produkty.id_towaru=towary.id) WHERE produkty.id_towaru='$i'";


Czekam na opinie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Można... A linki stworzysz wrzucając zmienną do pętli for zamiast while (IMG:style_emoticons/default/smile.gif)
  1. for($i=1; $i<=4; $i++) {
  2. echo '<A HREF="przeglad_stanu_zapasu.php?id='.$i.'">towar '.$i.'<>/a<br />';
  3. };

Gdy zaś przejdziesz do pliku mającego wyświetlić wyniki (przegląd_stanu_zapasu.php) to zwyczajnie się odwołaj do zmiennej GET by wyciągnąć to id i sprawdź czy to nie próba XSS. Akurat w tym wypadku wystarczy sprawdzenie, czy id to liczba i jeśli tak to puść do bazy i sprawdź czy aby zapytanie zwraca Ci wyniki czy FALSE. Jeśli będzie FALSE to znaczy, że takiego towaru nie ma (ktoś podał id produktu, którego nie ma w bazie).

Ten post edytował thek 28.08.2009, 21:57:32
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 - 01:28