![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
Mam tabelę WERSJA. Posiada ona wiersze id, name, itd. Wyciągam z niej dane przy pomocą funkcji drukuj z parametrami określającymi, jakie wersje dany produkt posiada:
Mogę whilem wydrukować każdą wersję jedna pod drugą:
Ale to będą dwie tabele jedna pod drugą. Co mogę zrobić, aby tabela była jedna? A wersje ze sobą zestawione w poziomie? Dzięki za pomoc (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 19 Dołączył: 27.04.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie twórz w pętli kolejnych tabeli (daj <table> i </table> poza pętlę).
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Ale za każdym razem wydrukuje mi np. "Wersja". Tego chciałbym uniknąć... <tr>Tworzy kolejne wiersze, nie kolumny. Można to ominąć i w CSS dać floata="left" i umieść tabelę obok tabeli.
Zastanawiam się nad UNION... Ten post edytował espera 27.03.2015, 14:39:59 |
|
|
![]()
Post
#4
|
|
Grupa: Nieautoryzowani Postów: 50 Pomógł: 2 Dołączył: 28.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Co tak właściwie chcesz osiągnąć? Rozrysuj tabelę i pokaż nam jak ma to wyglądać (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Wyobrażam sobie to w taki sposób:
------------------------ Wersja | AR48 | DG64 ------------------------ Napięcie | 5V | 12V ------------------------ Oświetl | LED | LED ------------------------ itd. Ten post edytował espera 27.03.2015, 20:43:18 |
|
|
![]()
Post
#6
|
|
Grupa: Nieautoryzowani Postów: 50 Pomógł: 2 Dołączył: 28.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Prawie taki sam efekt osiągniesz w ten sposób. Nie wiem tylko skąd chcesz pobrać "Oświetl" - jest to zapisane w bazie? Ten post edytował zidek 27.03.2015, 20:56:34 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Ładnie, ale wynik miałem taki sam wcześniej.
W tej chwili mamy takie coś: -------------------------- Wersja | - -------------------------- Napiecie | 5V -------------------------- Oświetlenie | LED -------------------------- Napiecie | 12V -------------------------- Oświetlenie | LED -------------------------- Napiecie | 9V -------------------------- Oświetlenie | LED Nie wiem tylko skąd chcesz pobrać "Oświetl" - jest to zapisane w bazie? W bazie mam więcej danych, nie wrzucam wszystkiego, bo zrobiło się nie czytlene... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
to powinno Ci rozwiązać problem ... tylko dopasuj sobie wygląd tabeli
Kod $result=mysql_query("SELECT name, napiecie_znamionowe from wersja where name IN ('{$wersja1}', '{$wersja2}', '{$wersja3}')"); $data = []; while($row=mysql_fetch_array($result)){ $data[] = [ 'name'=> $row['name'] , 'v' => $row['napiecie_znamionowe'], 'l' => $row['oswietlenie'] ]; } echo ' <table> <tr><td>Wersja</td><td>'.( implode('</td><td>', array_column($data,'name')) ).'</td></tr> <tr><td>Napiecie</td><td>'.( implode('</td><td>', array_column($data,'v')) ).'</td></tr> <tr><td>Oświetlenie</td><td>'.( implode('</td><td>', array_column($data,'l')) ).'</td></tr> </table> '; a minimum to PHP 5.5 Ten post edytował ctom 27.03.2015, 21:52:39 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
PHP Version 5.2.17 (IMG:style_emoticons/default/sad.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
za chwilę kończy się wspieranie 5.4 a Ty wciąż męczysz 5.2 (IMG:style_emoticons/default/questionmark.gif)
Kod /* uproszczona wersja tej funkcji */ if (!function_exists('array_column')) { function array_column($arr, $val) { $results = array(); foreach( (array)$arr as $row ) { if( array_key_exists($val, (array)$row) ) { $results[] = $row[ $val ]; } } return $results; } } $result=mysql_query("SELECT name, napiecie_znamionowe from wersja where name IN ('{$wersja1}', '{$wersja2}', '{$wersja3}')"); $data = array(); while($rotary=mysql_fetch_array($result)){ $data[] = array( 'name'=> $row['name'] , 'v' => $row['napiecie_znamionowe'], 'l' => $row['oswietlenie'] ); } echo ' <table> <tr><td>Wersja</td><td>'.( implode('</td><td>', array_column($data,'name')) ).'</td></tr> <tr><td>Napiecie</td><td>'.( implode('</td><td>', array_column($data,'v')) ).'</td></tr> <tr><td>Oświetlenie</td><td>'.( implode('</td><td>', array_column($data,'l')) ).'</td></tr> </table> '; |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Może byś tak użył funkcji agregującej w zapytaniu (o ile dobrze zrozumiałem Twój problem)? Tj.
Wtedy nie będziesz musiał męczyć się z tymi tabelkami. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
za chwilę kończy się wspieranie 5.4 a Ty wciąż męczysz 5.2 (IMG:style_emoticons/default/questionmark.gif) Zainstalowałem wersję 5.4.26 (IMG:style_emoticons/default/smile.gif) Musiałem trochę dostosować do 5.4: Kod if (!function_exists('array_column')){ function array_column($arr, $val) { $results = []; foreach($arr as $row) { if( array_key_exists($val, (array)$row) ) { $results[] = $row[$val]; } } return $results; } } $data = []; while($rotary=mysql_fetch_array($result)){ $data[] = ['name'=> $rotary['name'] , 'napiecie_znamionowe' => $rotary['napiecie_znamionowe'], 'maksymalny_pobor_pradu' => $rotary['maksymalny_pobor_pradu'], ]; } echo ' <table> <tr class="alt"><th>Wersja</th><td>'.( implode('</td><td>', array_column($data,'name')) ).'</td></tr> <tr><th>Napięcie znamionowe</th><td>'.( implode('</td><td>', array_column($data,'napiecie_znamionowe')) ).'</td></tr> <tr class="alt"><th>Maksymalny pobór prądu (bez obciążenia)</th><td>'.( implode('</td><td>', array_column($data,'maksymalny_pobor_pradu')) ).'</td></tr> </table> '; mysql_free_result($result); Pomogło (IMG:style_emoticons/default/smile.gif) Dzięki ctom Ten post edytował espera 30.03.2015, 12:23:44 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 01:21 |