Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przechowywanie wyniku zapytania do MYSQL w zmiennej
Forum PHP.pl > Forum > Przedszkole
mowmiheniek
Witam,
Zastanawiam się, dlaczego php nie trzyma w pamięci wynik zapytania do MySQL.
Mam w kodzie $zmienna1, którą chciałbym użyć dwukrotnie. Niestety za drugim razem już jej nie widzi, pętla while nie wyrzuca wyników
i muszę powtórzyć zapytanie do bazy.
Z góry dziękuje za pomoc.

  1. echo "<form action='' method='post'>
  2. <fieldset>
  3. <legend>Tabelka z produktami</legend>";
  4.  
  5. // wyswietlenie pierszej kolumny - typu towarow
  6.  
  7. $zmienna1 =$baza->zapyatnie do bazy o kategorie produktow
  8.  
  9. echo "<table border=1 style='float: left'><tr><td>Kolumna kategorii</td></tr>";
  10.  
  11. while ($kategoria = mysql_fetch_array($zmienna1)) {
  12. extract ($kategoria);
  13. echo "<tr><td>".$kategoria['cos'].' - '.$kategoria['cos']."</td></tr>";
  14. }
  15.  
  16.  
  17. // wiersz - naglowki firm
  18.  
  19. $firma =$baza->zapytanie do bazy
  20.  
  21. while ($wiersz = mysql_fetch_array($firma)) {
  22. extract ($wiersz);
  23. $idfirma = $wiersz['idcompany'] ;
  24.  
  25. echo "<table border=1 cellspacing=0 cellpadding=1 style='float: left'><tr><td align='center'> ".$wiersz['name']."</td></tr>";
  26.  
  27. // kolumna z liczbami zamowienia
  28. $kolumna = $baza->zapytanie do bazy o produkty i ilosc
  29.  
  30.  
  31. $num_rows = mysql_num_rows($kolumna);
  32. if ($num_rows == 0) {
  33.  
  34. $zmienna1 =$baza->zapyatnie do bazy o kategorie produktow //nie wiem dlaczego nie istnieje $zmienna1 i musze powtorzyc zapytanie
  35. while ($kategoria = mysql_fetch_array($zmienna1)) {
  36. extract ($kategoria);
  37. $cos2=$kategoria['cos2'];
  38.  
  39. echo "<tr><td bgcolor='#FF0000'>
  40. <input name='deliv[]' value='' size=15 STYLE='text-align: right;'/></td></tr>";
  41. }
  42. }
  43. } else {
  44.  
  45. while ($wiersz2 = mysql_fetch_array($kolumna)) {
  46. extract ($wiersz2);
  47. $quantity = $wiersz2['quantity];
  48.  
  49. echo "<tr><td>
  50. <input name='deliv[]' size=15 value='$quantity' STYLE='text-align: right;'/>
  51. </td></tr>";
  52.  
  53. }
  54. }
  55. }
  56. echo "</table>";
  57.  
  58. echo"</fieldset><br>
  59. <input type=submit value='Accept'>
  60. </form>";




untorched
Na początek pozbądź się tego mysql_* i użyj mysqli lub pdo.
Aqu
Chodzi o to, że każdy obrót tej pętli pobiera kolejny wiersz, więc jeśli chcesz drugi raz tego użyć, to musisz wrócić do pierwszego wiersza.

Po pierwszym while daj:
  1. mysql_data_seek ($zmienna1, 0);


PS. Nazywanie zmiennej $zmienna1 jest trochę słabe. smile.gif
mowmiheniek
Aqu dzięki!

Nazwy zmiennych pozamieniałem i skróciłem kod żeby był bardziej czytelny.

PDO później, trochę spieszę się z projektem i mam dużo do zmiany.

Dzięki!
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.