Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]Mnożenie rekordów
eurosoft
post
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Witam,
mam tablicę o takiej sktrukturze:
ID_rek | nazwa | ilość | cena | nazwa1 | ilość1 | cena1 |

po zapise danych w rekordzie chciałbym utworzyć widok tabeli pokazujący mi poszczególne rekordy w pojedyńczych sztukach (bo może być taka sytuacja że rekord będzie wyglądał tak:
1 | masło | 2 | 3,9 | kawa | 1 | 15,4

a wynik tak:
1 | masło | 1 | 3,9
1 | masło | 1 | 3,9
1 | kawa | 1 | 15,4

proszę o pomoc
M.
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Nie umiesz wyświetlać danych z mysql lub używać pętli ? Bo rozwiązanie Twojego problemu to 10 sek "główkowania"
Go to the top of the page
+Quote Post
eurosoft
post
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Cytat(CuteOne @ 9.07.2012, 20:05:49 ) *
Nie umiesz wyświetlać danych z mysql lub używać pętli ? Bo rozwiązanie Twojego problemu to 10 sek "główkowania"

Jeśli tak wszystkim pomagasz to wielkie gratulacje... Jak nie masz ochoty to po co wogóle odpisujesz?
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Widzisz gdybyś chwilę pomyślał nad swoim problemem i jeszcze raz przeczytał mój post doszedł byś do prostego wniosku - w pytaniu jest odpowiedź.

  1.  
  2. function createRow($name) {
  3.  
  4. return '<li>'.$name.'</li>';
  5. }
  6.  
  7. function multiRow($row) {
  8.  
  9. $html = '';
  10.  
  11. for($i=1;$i<=$row['count'];$i++) {
  12.  
  13. $html .= createRow($row['name']);
  14. }
  15.  
  16. return $html;
  17. }
  18.  
  19. $html = '';
  20.  
  21. while($row = mysql_fetch_assoc($query)) {
  22.  
  23. if($row['count'] > 1) {
  24.  
  25. $html .= multiRow($row);
  26. }
  27. else {
  28.  
  29. $html .= createRow($row['name']);
  30. }
  31. }
  32.  
  33. echo '<ul>'.$html.'</ul>';


Ten post edytował CuteOne 10.07.2012, 02:54:48
Go to the top of the page
+Quote Post
eurosoft
post
Post #5





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 5.11.2010

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


Bardzo dziękuję za odpowiedź, ale w sumie szukałem czegoś innego (chyba), w każdym razie udało mi się to zrobić, ale problem pojawił się nowy. Rekordy ładnie mi się zapisują do kolejnych (rozmnożonych) za pomocą poniższego zapytania (oczywiście późniejszej pętli)

  1. $pozyskanie = "SELECT * FROM (
  2. SELECT
  3. book.id_book AS id_book,
  4. book.imie_nazwisko,
  5. book.nr_od,
  6. book.nr_ob,
  7. book.start,
  8. book.zb,
  9. shot.animals,
  10. shot.ilosc,
  11. ksiega.zatwierdz_l,
  12. ksiega.zatwierdz_s,
  13. ksiega.id_ksiega,
  14. ksiega.forma,
  15. ksiega.masa,
  16. ksiega.cena,
  17. ksiega.zwrot,
  18. ksiega.waluta,
  19. ksiega.przeznaczenie,
  20. 0 AS num,
  21. rekordy.n
  22. FROM rekordy, book LEFT JOIN shot ON book.id_book=shot.id_book LEFT JOIN ksiega ON book.id_book=ksiega.id_book WHERE shot.ilosc>'0' and book.nr_ob='{$formData['nr_ob']}' and rekordy.n BETWEEN 1 AND shot.ilosc
  23. UNION
  24. SELECT
  25. book.id_book AS id_book,
  26. book.imie_nazwisko,
  27. book.nr_od,
  28. book.nr_ob,
  29. book.start,
  30. book.zb,
  31. shot.animals1,
  32. shot.ilosc1,
  33. ksiega.zatwierdz_l,
  34. ksiega.zatwierdz_s,
  35. ksiega.id_ksiega,
  36. ksiega.forma1,
  37. ksiega.masa1,
  38. ksiega.cena1,
  39. ksiega.zwrot1,
  40. ksiega.waluta1,
  41. ksiega.przeznaczenie1,
  42. 1,
  43. rekordy.n
  44. FROM rekordy, book LEFT JOIN shot ON book.id_book=shot.id_book LEFT JOIN ksiega ON book.id_book=ksiega.id_book WHERE shot.ilosc1>'0' and book.nr_ob='{$formData['nr_ob']}' and rekordy.n BETWEEN 1 AND shot.ilosc1
  45. ) ksiega ORDER BY id_book,num LIMIT $from, $ileNaStronie";

mam juz wylistowane rekordy z każdej ewentualnie mnogiej pozycji, teraz mam możliwość zmiany wartości w polach cena i zwrot, jednak przy zapisie zmiana dokonywana jest wyłącznie do pierwszego rekordu. Prawdopodobnie powinienem wykorzystać podczas zapisu moje wirtualne pole 'num' ale niestety nie wiem jak.....
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 Aktualny czas: 19.08.2025 - 08:47