Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie danych w tabeli HTML z bazy MySQL, Kolejny temat.
KrzysiekKCN
post 5.06.2011, 02:30:20
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 4.08.2009
Skąd: Poznań

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


Witam, dziś na forum znalazłem skrypt który dzielił rekordy na 4 kolumny, co można powiedzieć skończyło moje męczarnie z wymyślaniem pętli, instrukcji itp.
Jednak jest w tym jakiś haczyk którego nie mogę znaleźć.

Na np. 26 rekordów chciał bym po 12 w rzędzie.
niestety wyświetla się z luką:


Mój kod:
  1. <?php
  2. error_reporting(E_ALL);
  3. ini_set('display_errors','1');
  4. require_once('sql.php');
  5. $zapytanie = "select * from `realizacje`";
  6. $wynik = mysqli_query($mysql, $zapytanie);
  7. $ilosc_wierszy = mysqli_num_rows(mysqli_query($mysql, $zapytanie));
  8. echo 'wierszy:'.$ilosc_wierszy;
  9. $i = 1;
  10. while ($wiersz = mysqli_fetch_array($wynik)) {
  11. $i++;
  12. if($i%12 == 1)
  13. echo '<tr>';
  14.  
  15. echo'<td style="height: 68px; width: 68px; background: url(\'images/rel_bg.png\') no-repeat center;">
  16. <center><a href="#" style="border: 0px;"><img src="realizacje/market/small_logo.png" class="rel"></a></center>
  17. </td>';
  18.  
  19. if($i%12 == 0)
  20. echo '</tr>';
  21. }
  22.  
  23. ?>


Proszę o pomoc, wskazówki cokolwiek ^^ I z góry dzięki.

P.S. Jeżeli zrobię %4 to pierwsze 3 kolumny są dobrze, a ostatnia ma 5 wyświetleń, tylko jak to zrobić żeby obrócić to na wyświetlanie rzędami.
Go to the top of the page
+Quote Post
mortus
post 5.06.2011, 07:30:14
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Po pierwsze w linii 7 robisz głupotę, bo drugi raz wykonujesz zapytanie, które wykonałeś linijkę wyżej. Powinno być:
  1. $wynik = mysql_query($zapytanie);
  2. $ilosc_wierszy = mysql_num_rows($wynik);

Co do braku wypełnienia tabeli zauważ, że najpierw zmiennej $i nadajesz wartość 1 (linia 9), po to żeby zaraz na początku pętli while zwiększyć wartość tej zmiennej o 1 (linia 11). Po prostu w złym miejscu zwiększasz wartość zmiennej $i.
Dodatkowo wyświetl znaczniki <table> i </table> przed rozpoczęciem pętli while i po jej zakończeniu.
Nie będzie to wtedy jeszcze dobre rozwiązanie, bo w przypadku ostatniego wiersza zostaną utworzone dwie kolumny (<td></td>), a powinno ich być też 12, przy czym 10 pustych.
Przeszukaj lepiej forum, bo zdaje mi się, że kiedyś umieściłem tutaj cały skrypt do generowania tabeli o określonej liczbie kolumn.
Go to the top of the page
+Quote Post
bastard13
post 5.06.2011, 07:41:45
Post #3





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Tak na szybko:
  1. echo '<table><tr>';
  2. $i=0;
  3. while ($wiersz = mysqli_fetch_array($wynik)) {
  4. if ($i > 0 && $i % 12 === 0)
  5. echo '</tr><tr>';
  6. echo '<td>' . $wiersz . '</td>';
  7. $i++;
  8. }
  9. echo '</table>';


--------------------
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 Wersja Lo-Fi Aktualny czas: 23.05.2025 - 12:40