Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]podział wyswietlanych danych z bazy na dwie kolumny
Forum PHP.pl > Forum > Przedszkole
shreker
Witam !
Mam mały problem. Mam dane zapisane w bazie SQL i wyświetlane są w postaci pętli jak poniżej:
Kod
echo '<table>';

$czytaj_dane = db_query('wyswietl_dane');
    
while ($wiersz = db_fetch_array($czytaj_dane))
    {
        $id = $wiersz['id'];
        $nazwa = $wiersz['nazwa'];
        $nazwa2 = $wiersz['nazwa2'];
        $nazwa3 = $wiersz['nazwa3'];
        $nazwa4 = $wiersz['nazwa4'];
        $nazwa5 = $wiersz['nazwa5'];

echo '<tr><td>'. $nazwa .'</td></tr>';

    }

echo '</table>';


Jak mogę to przerobić aby wyświetlane dane były dzielone na dwie równe kolumny (obecnie są wyświetlane w jednej).
barthpl
Taka zmiana powinna wystarczyć:
  1. <?php
  2. echo '<div style="width: 600px">';
  3.  
  4. $czytaj_dane = db_query('wyswietl_dane');
  5. while ($wiersz = db_fetch_array($czytaj_dane))
  6. {
  7. // nie czaje po co deklarujesz zmienne, których nie używasz questionmark.gif
  8. // $id = $wiersz['id'];
  9. $nazwa = $wiersz['nazwa'];
  10. // $nazwa2 = $wiersz['nazwa2'];
  11. // $nazwa3 = $wiersz['nazwa3'];
  12. // $nazwa4 = $wiersz['nazwa4'];
  13. // $nazwa5 = $wiersz['nazwa5'];
  14.  
  15. // szerokość tego div'a powinna stanowić 0.5 szerokości elementu nadrzędnego
  16. // jeżeli chcesz mieć 3 to 0.33 i tak dalej ;)
  17. echo sprintf( '<div style="width: 300px; float: left">%s</div>', $nazwa );
  18. }
  19.  
  20. echo '</div>';
  21. ?>
shreker
Dzięki ! Pomogło
Mam tylko jeszcze jeden problem.
Mianowicie dane są wyświetlane w ten sposób:

1 | 2
3 | 4
5 | 6
itd ....

zamiast:

1 | 4
2 | 5
3 | 6

jak można to zmienić?
barthpl
No to zdecydowanie w inny sposób.
  1. <?php
  2. // pobierz dane do tabeli;
  3. $czytaj_dane = db_query('wyswietl_dane');
  4. $data = db_fetch_array($czytaj_dane)
  5.  
  6. // policz ile w kolumnie;
  7. $inRow = (int)($dataLength / $columnsNo);
  8. if( $inRow * $columnsNo < $dataLength )
  9. $inRow ++;
  10.  
  11. // podziel na kolumny;
  12. $columnsNo = 0; $array = array();
  13. for( $i = 0; $i < $dataLength; $i++ ) {
  14. if( $i % inRow == 0 )
  15. $columnsNo++;
  16. $array[$columnsNo][] = sprintf( '<div style="width: 300px; float: left">%s</div>', $nazwa );
  17. }
  18.  
  19. // wyświetl kolumny
  20. echo '<div style="width: 600px">';
  21. foreach( $array as $val) {
  22. echo sprintf( '<div style="width: 300px; float: left">%s</div>', $val);
  23. }
  24. echo '</div>';
  25. ?>

Powinno działać ale przyznam że nie sprawdzałem.
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.