Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyświetlanie danych z sql i w wierszach i w kolumnach
Forum PHP.pl > Forum > PHP
dragon7
Chodzi o to, że chcę by na mojej stronie galeria wyświetlana była w sposób po 4 galerie w jednej linii, a następnie przejście do nowej itd., aż do wyświetlenia wszystkich rekordów. Nie wiem jak mam to napisać, czy skorzystać z pętli for czy z funkcji if, no po prostu nie mam pojęcia. Głowię się nad tym już sporo i nic nie mogę wymyślić. Nawet nie wiem jak mam to nazwać szukając w googlach, dlatego postanowiłem napisać na forum i czekać na wasze odpowiedzi
marcio
Petla for i reszta z dzielenia, dziel przez 4 jesli masz reszte dodaj <tr>
CuteOne
dla jasności:

  1.  
  2. echo '<table><tr>';
  3.  
  4. for($i=0;$i<count($row_mysql);$i++) {
  5.  
  6. echo '<td>ddwd</td>';
  7.  
  8. if($i%4 == 1) { //juz nie pamiętam czy trzeba wstawić 1 czy 3 ^-^
  9.  
  10. echo '</tr><tr>';
  11. }
  12. }
  13. echo '</tr></table>'
dragon7
średnio działa, prawie wszystko ok jak jest 5 galerii to wyświetla po 4 te same, jak mniej to wszystko w jednej linii i to po 3, 2 razy te same a powyżej 5 galerii to w ogóle już hardcor totalny, w zależności od ilości 6 i więcej, zawsze chyba mniej o 1 niż ilość galerii, jak rozwiązać ten problem?? Cały skrypt wygląda tak:
  1. <?php
  2. $conn = mysql_connect("127.0.0.1","root","krasnal");
  3. mysql_select_db("liceum");
  4. $zapytanie = "SELECT * FROM galeria ORDER BY id DESC LIMIT 5;" ;
  5. $wynik = mysql_query($zapytanie);
  6. echo "<table border='0' cellspacing='0' cellpadding='2'><tr>";
  7. while($wpis = mysql_fetch_assoc($wynik)) {
  8. $id=$wpis['id'];
  9. $nazwa=$wpis['nazwa'];
  10. $zdjecie=$wpis['zdjecie'];
  11. $photo = mysql_num_rows($wynik);
  12. for($i=1;$i<$photo;$i++) {
  13. echo "<td width='140' align='left'><b><a href='gal.php?id=$id'>".$nazwa."</a></b><br /><a href='gal.php?id=$id'><img src=".$zdjecie." /></a></td>";
  14. if($i%4 == 0) {
  15. echo '</tr><tr>';
  16. }}}
  17. echo "</tr></table>";
  18. mysql_close($conn);
  19. ?>

andycole
  1. <?php
  2. $conn = mysql_connect("127.0.0.1","root","krasnal");
  3. mysql_select_db("liceum");
  4. $zapytanie = "SELECT * FROM galeria ORDER BY id DESC" ;
  5. $wynik = mysql_query($zapytanie);
  6. echo "<table border='0' cellspacing='0' cellpadding='2'><tr>";
  7. $licznik = 0;
  8. while($wpis = mysql_fetch_assoc($wynik)){
  9. $licznik++;
  10. $id=$wpis['id'];
  11. $nazwa=$wpis['nazwa'];
  12. $zdjecie=$wpis['zdjecie'];
  13. echo "<td width='140' align='left'><b><a href='gal.php?id=$id'>".$nazwa."</a></b><br /><a href='gal.php?id=$id'><img src=".$zdjecie." /></a></td>";
  14. if($licznik%4 == 0) {
  15. echo '</tr><tr>';
  16. }
  17. }
  18. echo "</tr></table>";
  19. mysql_close($conn);
  20. ?>
dragon7
dzięki wielkie, działa tak jak trzeba:D a limit musiałem zostawić, to będzie strona szkolna, więc w pewnym momencie będzie tyle galerii, że się nie będą mieścićsmile.gif
PiterosWeb
A nie było by łatwiej to zrobić na divach questionmark.gif
Robiłem coś takiego i mi to działa fajnie i nie musiałem martwić się o kolejną linię bo gdy mi się nie mieściło to przerzucało mi mi danego diva niżej.
Wystarczyło ustwić odpowiednio diva nadać mu odpowiednie atrybuty i wrzucić to w pętlę np. while i wszystko świetnie gra ;D
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.