Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MSSQL] Budowanie tabeli z danych
Forum PHP.pl > Forum > Przedszkole
Kshyhoo
Mógłby mnie ktoś naprowadzić, jak z takich danych:
  1. nazwa r1 r2 r3 r4 r5 t icr ibt ml
  2. ----------------------------------------------------------------------------
  3. a 30 50 3 5 1 69 30 15 30
  4. b 50 10 20 5 1 69 30 15 30
  5. c 50 10 20 5 1 100 30 15 30
  6. d 60 10 10 30 1 120 30 15 30
  7. e 30 20 5 10 1 55 20 15 40
  8. f 100 80 30 0 1 130 45 25 50
  9. g 160 30 40 100 5 346 0 0 1
  10. h 500 400 150 300 50 3246 15 10 10
  11. i 330 270 450 300 10 3244 35 15 10
  12. j 670 146 500 890 30 4567 35 15 10
  13. k 770 450 1320 100 1 1870 45 30 5
  14. l 10 1500 5 5 10 8935 0 0 1
  15. m 0 3000 5000 0 0 12837 0 0 1

zbudować taką tabelę:
  1. nazwa a:
  2. nr r1 r2 r3 r4 r5 t icr ibt
  3. --------------------------------------------------------------------
  4. 1 30 50 3 5 1 69 30 15
  5. 2 60 100 6 10 2 138 60 30
  6. 3 90 150 9 15 3 207 90 45
  7. ...
  8. 29 870 1450 27 145 29 2001 870 420
  9. 30 900 1500 30 150 30 2070 900 450
  10.  
  11. nazwa b:
  12. nr r1 r2 r3 r4 r5 t icr ibt
  13. --------------------------------------------------------------------
  14. 1 50 10 20 5 1 69 30 15
  15. 2 100 20 40 10 2 138 60 30
  16. 3 150 30 60 15 3 207 90 45
  17. ...
  18. 29 1200 290 580 145 29 2001 870 420
  19. 30 1500 300 600 150 30 2070 900 450

czyli z każdego wiersza chcę zrobić osobną tabelkę o liczbie wierszy z ostatniej kolumny (ml) a każdy wiersz ma się powiększać o icr dla danych z r i o ibt dla danych z t. Kombinuję i kombinuję a coraz gorzej mi idzie.
  1. $l = $pdo->query("SELECT nazwa, r1, r2, r3, r4, r5, t, icr, ibt, ml FROM tabela");
  2. while($row = $l->fetch()) {
  3. // questionmark.gif
  4. }
nospor
  1. $l = $pdo->query("SELECT nazwa, r1, r2, r3, r4, r5, t, icr, ibt, ml FROM tabela");
  2.  
  3. while($row = $l->fetch()) {
  4.  
  5. echo '<table>';
  6. for ($i=0;$i<$row['ml'];$i++){
  7. echo '<tr>';
  8. echo '<td>'.($row['r1']+$i*$row['icr']).'</td>';
  9. //... itd
  10. echo '</tr>';
  11. }
  12. echo '</table>';
  13.  
  14. }

reszte mysle juz sobie sam uzupelnisz.
Kshyhoo
Dlaczego robi mi jedną kolumnę?
nospor
Bo w kodzie dalem jedną kolumne? Czy
// .... itd
nic ci nie mowi? Np. to ze masz dopisac sam kolejne kolumny?
Kshyhoo
Aaaaaa, dzięki, paczę smile.gif

Heh, poradziłem sobie nawet z liczbą porządkową:
  1. echo '<td>'.($i + 1).'</td>';

ale mam jeszcze jedno pytanko. Chodzi o dane:
  1. echo '<td>'.($row['bt'] + $i * $row['ibt']).'</td>';

Wszystko działa, ale chciałbym to przekonwertować z sekund na czas. Konwertowałem tak:
  1. if($row['bt'] < 3600)
  2. $row['bt'] = date("00:i:s", $row['bt']);
  3. else
  4. $row['bt'] = date("h:i:s", $row['bt'] - 3600);

Jak to wpleść taką tabelę? Dostaję komunikat: Notice: A non well formed numeric value encountered in...
Co robię źle?
Kshyhoo
Trochę nie to osiągnąłem, co bym chciał. Zapomniałem dodać, że icr i ibt to %, że Mianowicie, chciałbym z tego:
  1. nazwa r1 r2 r3 r4 r5 t icr ibt ml
  2. ----------------------------------------------------------------------------
  3. a 30 50 3 5 1 69 30 15 30

chcę mieć tak (dla r1):
  1. 1 r1
  2. 2 to z 1 + icr
  3. 3 to z 2 + icr
  4. ...
  5. 30 to z 29 + icr

czyli powinno być tak:
  1. lp r1 r2 r3 r4 r5
  2. --------------------------------------------
  3. 1 30 50 3 5 1
  4. 2 39 65 4 7 1
  5. 3 51 85 5 9 1

Z MySQL nie mam problemów, bo przemnażam przez 1,3 i zapisuję tak:
  1. r1 = r1 * ((100 + icr) / 100)

ale wyświetlić chcę te dane jako tabelę:
  1. for ($i=0;$i<$row['ml'];$i++) {
  2. echo '<tr align="right">';
  3. echo '<td>'.($i + 1).'</td>';
  4. echo '<td>'.($row['r1'] * ((100 + $row['icr']) / 100)).'</td>'; // brak $i, ale gdzie?
  5. echo '</tr>';
  6. }

Jak to sklecić?
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.