Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php+sql]wyciaganie danych z pętki i select
mateuszpi
post
Post #1





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Jaworzno

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


Witam
mam taką pętle
  1. <?php
  2. /*
  3. $nowe występuje w postaci ws2, ws5,ws79 tylko ich liczba jest losowa
  4. petla wykonuje sie tyle razy ile jest w formularzu zaznaczone lat też różnie byw
    a z ilością
  5. */
  6.  
  7. foreach($rok as $key => $val) 
  8. { 
  9. $sql = "SELECT ".$nowe." FROM `".$rok[$key]."`";
  10. echo $sql;
  11. $wykonaj = mysql_query($sql);
  12. $row = mysql_fetch_array($wykonaj);
  13.  
  14.  
  15.  
  16. if ($row['ws'.$_POST['ws'].'']==" ")
  17. {
  18. $wskaz="b.d.";
  19. }
  20. else
  21. {
  22. $wskaz=$row['ws'.$_POST['ws'].''];
  23. $wskaz=str_replace(",", ".", $wskaz);
  24. if(strpos($wskaz, '.'))
  25. {
  26. $zaok=2;
  27. }
  28. else
  29. {
  30. $zaok=0;
  31. }
  32.  
  33. $wskaz=number_format($wskaz, $zaok, ',', ' ');
  34. }
  35.  
  36. $tab.="<td>".$rok[$key]."</td>";
  37. $tab2.="<td>".$wskaz."</td>";
  38. $dane.=$row[''.$_POST['ws'].''].", ";
  39. }
  40. ?>


w momencie gdy zmienna nowe miala tylko jeden argument czyli tylko ws5 lub ws2 to nie było problemu z odczytaniem danych (co prezentuje to coś powyżej)
jednak utknąłem jak oczytać dane z select gdy tych ws jest więcej. możecie mi coś poradzić (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

ogólna sytuacja jest taka:
mam formularz w którym moge sobie zaznaczyć dowolną ilość lat i dowolną ilość tych ws (nie wchodze w szczegóły co to takiego (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) - mała tajemnica)
i teraz z bazy danych musze pobrać wszystkie zaznaczone ws z każdego wybranego roku.

potem wyświetlić je na stronie w formie tabelki:
lata, lata, lata ........
ws1 dane, dane, dane
ws5 dane, dane, dane
.
.
.

zakłada mze źle sie za to zabieram bo takie rozwiązanie działą tylko gy ws jest jeden tutaj trzeba pozmieniać coś z petlą, ale nie mam pojęcia co. proszę o pomoc (nie żebym się obraziłza gotowca (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )

pozdrawiam
Mateusz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
webasek
post
Post #2





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


nie

  1. <?php
  2. $row = mysql_fetch_array($wykonaj);
  3. ?>


a

  1. <?php
  2. while ($row = mysql_fetch_array($wykonaj)) {to co ma być wykonane dla poszczególnych wierszy}
  3. ?>
Go to the top of the page
+Quote Post
mateuszpi
post
Post #3





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Jaworzno

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


nadal nie rozumiem. co mam wpisać w tym while.

$row['co tutaj skoro nazwy z select są różne']
Go to the top of the page
+Quote Post
webasek
post
Post #4





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


a skąd bierzesz zmienną $nowe i co to jest $_POST['ws'] ?
Go to the top of the page
+Quote Post
mateuszpi
post
Post #5





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Jaworzno

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


$_POST['ws'] to dane przesłąne z formularza. tablica z liczbami. dopuki bylą to czyta liczba nie ylo problemu ale musialem to przerobic na tablice bo nie zawsze jest jedna wartość

a $nowe to zawartosć POST tylko przerobiona na formę ws(cyfra), ws(cyfra)
Go to the top of the page
+Quote Post
webasek
post
Post #6





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


Mniej więcej to będzie wyglądać tak:

  1. <?php
  2. /*
  3. $nowe występuje w postaci ws2, ws5,ws79 tylko ich liczba jest losowa
  4. petla wykonuje sie tyle razy ile jest w formularzu zaznaczone lat też różnie byw
    a z ilością
  5. */
  6.  
  7. foreach($rok as $key => $val) 
  8. { 
  9. $sql = "SELECT ".$nowe." FROM `".$rok[$key]."`";
  10. echo $sql;
  11. $wykonaj = mysql_query($sql);
  12. $row = mysql_fetch_array($wykonaj);
  13.  
  14. // tablica gdzie elementami sa 'ws2', 'ws5','ws79'
  15. $zmienna = explode(",",$nowe);
  16.  
  17.  
  18.  
  19.  for ($i=0;$i<sizeof($zmienna);$i++)
  20.  {
  21. if ($row[$zmienna[$i]]==" ")
  22. {
  23. $wskaz="b.d.";
  24. }
  25. else
  26. {
  27. $wskaz=$row[$zmienna[$i]];
  28. $wskaz=str_replace(",", ".", $wskaz);
  29. if(strpos($wskaz, '.'))
  30. {
  31. $zaok=2;
  32. }
  33. else
  34. {
  35. $zaok=0;
  36. }
  37.  
  38. $wskaz=number_format($wskaz, $zaok, ',', ' ');
  39. }
  40.  
  41. $tab.="<td>".$rok[$key]."</td>";
  42. $tab2.="<td>".$wskaz."</td>";
  43. $dane.=$row[$zmienna[$i]].", ";
  44.  }
  45. }
  46. ?>


To powinno pomóc
Go to the top of the page
+Quote Post
mateuszpi
post
Post #7





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Jaworzno

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


jednak coś nie tak bo z bazy danych pobiera dla różnych lat to się zgadza ale tylko pierwszego ws
gdy tych ws jest wiecej to w reszcie jest 0
Go to the top of the page
+Quote Post
webasek
post
Post #8





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


a próbowałeś wrzucić bezpośrednio do sql wszystkie te zapytania które dostajesz z echo $sql? Czy wtedy dane zwracane są poprawnie?
Go to the top of the page
+Quote Post
mateuszpi
post
Post #9





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Jaworzno

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


gdy wsadzam je pokolei to wyswietlaja się poprawnie. jednak gdy są wszystkie razem (oddzielone średnikiem) to wyświetlaja sie glupoty

czyżbym był skazany na wyświetlanie pojedynczych danych (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował mateuszpi 25.07.2008, 13:59:23
Go to the top of the page
+Quote Post

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: 14.09.2025 - 20:50