Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]wyniki z bazy danych nakolumny
Forum PHP.pl > Forum > Przedszkole
weronika_n
Witam,
Szanowni fachowcy, nie mogę znaleźć informacji jak zrobić automat do dzielenia na kolumny wyników z tabeli bazy danych. Mamy dajmy na to jakąś ilość rekordów w tabeli i chcielibyśmy je wyświetlić w trzech równych kolumnach. Jak to zrobić? Jak stworzyć automat do takiego ich wyświetlania na stronie. Będę bardzo zobowiązana za odpowiedź :-)
cykcykacz
http://www.w3schools.com/php/php_mysql_select.asp

Tu masz przykład.
Użyj następnym razem google.
Andrzej.W.
Dajmy na to, że masz 3 kolumny w tabeli w bazie. Jeśli to miałby być w tabeli:
1. Łączysz się z bazą.
2. robisz zapytanie:
  1. $zapytanie=mysql_query("SELECT 'nazwa_kolumny1', 'nazwa_kolumny2', 'nazwa_kolumny3' FROM 'nazwa_tabeli'");

3. Wrzucasz wynik do tablicy i generujesz:
  1. echo '<table>';
  2.  
  3. while($row = mysql_fetch_row($zapytanie))
  4. {
  5. echo '<tr><td>'.$row['nazwa_kolumny1'] .'</td><td> '. $row['nazwa_kolumny2'].'</td><td> '.$row['nazwa_kolumny3'].'</td></tr>';
  6. }
  7. echo '</table>';


W ten sposób masz 3 równe kolumny.
Pozdrawiam.
Andrzej.

weronika_n
Witam, dziękuje za odpowiedzi i może odrobinę uściślę swój problem. Chodzi o to, że jak mamy np. tabelę z dwoma kolumnami: imię, nazwisko. Rekordów w tabeli mamy np. 11. Chodzi o to żeby na stronie wyświetlały się trzy kolumny w taki sposób:

1Imię Nazwisko 5Imię Nazwisko 9Imię Nazwisko
2Imię Nazwisko 6Imię Nazwisko 10Imię Nazwisko
3Imię Nazwisko 7Imię Nazwisko 11Imię Nazwisko
4mię Nazwisko 8Imię Nazwisko

I żeby takie kolumny tworzyły się automatycznie, niezależnie od ilości rekordów w bazie danych.
weronika_n
ha ha ha :-) a ja mam problem :-)
peter13135
  1.  
  2.  
  3. echo '<table>';
  4. $i = 0;
  5. foreach($dane as $d)//może być while, lub cokolwiek innego zależnie od potrzeby
  6. {
  7. if($i%3==0)
  8. {
  9. echo '<tr>';
  10. }
  11.  
  12. echo '<td>' . $d['imie'] . '</td>';
  13.  
  14. if($i%3==2)
  15. {
  16. echo '</tr>';
  17. }
  18. $i++;
  19. }
  20. echo '</table>';


Być może działa.
Andrzej.W.


  1. <?php
  2. $query="SELECT*FROM tabela";
  3. $link=mysql_connect('localhost', 'root', '#');
  4. $db=mysql_select_db('test', $link);
  5. $db_query=mysql_query($query);
  6.  
  7. $db_rows=mysql_num_rows($db_query);
  8. $table_rows=ceil($db_rows/3);
  9.  
  10.  
  11. if($db_rows > 3)
  12. {
  13. $i=0;
  14. echo '<table border=1>';
  15. while($row=mysql_fetch_array($db_query))
  16. {
  17. $new_array[$i]='<td>'.$row[0].'</td><td>'.$row[1].'</td>';
  18. $i++;
  19. }
  20.  
  21. if($db_rows % 3 == 1)
  22. {
  23.  
  24.  
  25. for($i=0;$i< $table_rows-1;$i++)
  26. {
  27. $c2=$i+$table_rows;
  28. $c3=2*$table_rows+$i-1;
  29. echo '<tr>';
  30. echo $new_array[$i];
  31. echo $new_array[$c2];
  32. echo $new_array[$c3];
  33. echo '</tr>';
  34. }
  35. echo '<tr>'.$new_array[$table_rows-1].'<td></td><td></td><td></td><td></td></tr>';
  36.  
  37. }else{
  38.  
  39.  
  40. for($i=0;$i< $table_rows;$i++)
  41. {
  42. $c2=$i+$table_rows;
  43. $c3=2*$table_rows+$i;
  44. echo '<tr>';
  45. echo $new_array[$i];
  46. echo $new_array[$c2];
  47. echo $new_array[$c3];
  48. echo '</tr>';
  49. } }
  50. echo '</table>';
  51. }else{
  52. if($db_rows<=3)
  53. {
  54. echo '<table border=1><tr>';
  55. while($row=mysql_fetch_array($db_query))
  56. {
  57. echo '<td>'.$row[0].'</td><td>'.$row[1].'</td>';
  58. }
  59. echo '</tr></table>';
  60. }}
  61.  
  62.  
  63. ?>


Bazę i dane do logowania sobie dopasujesz.
Parsowania nie umieszczałem, żeby nie zagmatwać kodu. smile.gif
Dzięki za fajną zagadkę. biggrin.gif
Pozdrawiam.
Andrzej.
-weronika_n-
Bardzo Wam wszystkim dzuiękuję.
-weronika_n-
Andrzeju, proste a genialne :-)
Andrzej.W.
Cóż piękno tkwi w prostocie hehe smile.gif
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.