Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] łamanie kolumny
Forum PHP.pl > Forum > Przedszkole
molesta
Witam ma pytanko:
Chciałbym aby wyniki były wyświetlane w równych kolumnach po 5 rekordów.
  1. <?php
  2. echo "<center><div style='width:770px;height:70px;border:solid;'";
  3. $limit = 10;
  4.  
  5.  
  6. $query = mysql_query('SELECT * FROM `testy` ORDER BY `ile` DESC LIMIT ' . $limit);
  7.  
  8.  
  9. while($row = mysql_fetch_assoc($query))
  10. {
  11. echo '<a href="http://www.szukacz.bunet.pl/index.htm?q='.$row['fraza'].'&enc=iso-8859-2">'.$row['fraza'].'</a></br>';
  12. }
  13. echo "</div></center>";
  14. ?>

Tak wyglada czesc kodu odpowiedzialna za wyświetlanie wyników
W tej chwili wyświetla tak:
1
2
3
4
5
6
7
8
9
10 itd
A chciałbym aby było tak:

1    |    6
2    |    7
3    |    8
4    |    9
5    |    10

Czyli w dwóch kolumnach
Ni jak niewiem jak to zrobić.....
czy moge prosić o pomoc ?
Pozdrawiam
Wieviór
Ja bym to zrobił tak, robisz <div class="container" style="float: left;">.

  1. <?php
  2. echo container start
  3. while (leca rekordy)
  4. { 
  5. $liczba=1;
  6. if ($liczba podzielna przez 5) { echo container end, container start }
  7. echo div zwykly z zawartoscia jednego rekordu.
  8. $liczba++;
  9. }
  10. if ($liczba nie podzielna przez 5) { echo container end }
  11. ?>
molesta
nie kumam....możesz to przedstawić na jakimś realnym przykładie albo jak to zaadoptowac do mojego skryptu?
nic z tego nie rozumiem biggrin.gif
Wieviór
Masz tu "funkcję", która wyświetla normalnie rekordy, każdy w divie, co pięć rekordów stwierdza, że trzeba przejść od nowej kolumny, więc kończy jeden kontener i zaczyna następny, które mają float: left, więc będą koło siebie.

Jak zaadoptować do twojego kodu? Po prostu w ten sposób zbuduj while.
molesta
niewiem co z tym zrobić:/
Wieviór
A próbowałeś? Pokaż co zrobiłeś to Ci coś podpowiem.

Na gotowca nie licz.
molesta
Witam, napisałem taki skrypt:
  1. <?php
  2. $polaczenie = @mysql_connect('localhost', 'xxx', 'xxx')
  3. or die('Brak polaczenia z serwerem mysql. Blad: '.mysql_error());
  4.  
  5. $db = @mysql_select_db('xxx', $polaczenie)
  6. or die('Nie moge polaczyc sie z baza danych. Blad: '.mysql_error());
  7.  
  8.  
  9. $fraza = mysql_real_escape_string($_POST['fraza']);
  10.  
  11. $query = mysql_query('SELECT ile FROM testy WHERE fraza = \"' . $fraza . '\"');
  12.  
  13. if(mysql_num_rows($query))
  14. {
  15. $query = mysql_fetch_assoc($query);
  16. mysql_query('UPDATE testy SET ile = ' . ($query['ile'] + 1) . '
  17.  WHERE fraza = \"' . $fraza . '\"');
  18. }
  19. else
  20. {
  21. mysql_query('INSERT INTO testy VALUES(\"' . $fraza . '\", 1)');
  22. }
  23. echo '<div style="\"background-color:#ffffff;width:770px;height:146px;border-style:solid;border-width:1px;border-color:#E3F1FE\"">
  24. <div style="\"width:100%;height:23px;background:#E3F1FE;margin-botton:5px;text-align:left;text-valign:middle;\""> &nbsp;&nbsp;&nbsp;
  25. <font color="\"#173868\"">Top 20 - najpopularniejsze tematy w Szukaczu';
  26. $i = 0;
  27. $limit = 20;
  28.  
  29.  
  30. $query = mysql_query('SELECT * FROM `testy` ORDER BY `ile` DESC LIMIT ' . $limit);
  31. $miejsce=1;
  32.  
  33. while($row = mysql_fetch_assoc($query))
  34. {
  35.  if ($i == 4)
  36. {
  37.  echo '';
  38.  $i = 0;
  39. }
  40.  if ($i == 0)
  41. echo '';
  42. $i++;
  43.  
  44. echo '<font color="\"#919191\"">'.$miejsce++.
  45. <a style="\"text-decoration:none;\" href=\"http://www.szukacz.bunet.pl/index.htm?q='.$row['fraza'].'&enc=iso-8859-2\"title=\"'.$row['fraza'].'\""><font color="\"#173868\"">';
  46. echo substr($row['fraza'], 0, 25);
  47. echo '...';
  48. }
  49. if ($i != 0)
  50. echo '';
  51.  
  52. echo '';
  53. ?>


w tej chwili wyniki są wyświetlane tak: http://www.pangram.pl/szukane/szukane.php

czyli wierszami od lewej

Chciałbym aby były wyświetlane

w czterech kolumnach po 5 rekordów np tak
1 6
2 7
3 8
4 9
5 10

walczyłem z tym całą noc i zabrakło mi pomysłów
Brdzo prosze o pomoc

pozdrawiam
c0cr0ach
Spróbuj wyświetlać według takiego schematu:
  1. <?php
  2. echo '<div style="width: 100%">'; // ten div zawiera wszystkie wyniki zapytania
  3. echo '<div style="float: left; margin-right: 50px;">';
  4. while ($row = mysql_fetch_array($query)) {
  5. $i++;
  6. if ($i == 6) {
  7. echo '</div>';
  8. echo '<div style="float: left; margin-right: 50px;">'; // w tym div'ie jest kolumna z pięciu rekordów
  9. $i = 1;
  10. }
  11. echo $row['jakies_pole'];
  12. }
  13. echo '</div></div>';
  14. ?>

To tylko fragment kodu. Reszta powinna zostać bez zmian.
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.