Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]Pobieranie danych z bazy php
Forum PHP.pl > Forum > Przedszkole
Vion
Witam
Mam taki problem, mam o to taki zapytanie które pobiera dane z bazy.
  1. $wynik = mysql_query("SELECT * FROM notice where notice_is_published='1' ORDER BY RAND() LIMIT 5");
  2. while($row = mysql_fetch_assoc($wynik)) {?>
  3. <div class="p_szary"> <span class="s1"> <?php echo $row['notice_title'];?></span></div>
  4. <div class="p_bialy"><span class="s1"> <?php echo $row['notice_title'];?> </span></div>
  5. <?php } ?>


Chciałbym uzyskać taki wynik jak po prawej, czyli pięć wierszy( raz szary raz biały) i żaden się nie powtarza, lecz moim wynikiem jest to co po lewej(powtarzające się wyniki). Jak uzyskać żeby każdy wynik był tyko raz.

  1. http://img96.imageshack.us/i/forum8.gif/
Daiquiri
Przede wszystkich usuń jeden div z $row['notice_title']. Naprzemienność możesz uzyskać dodając licznik i warunek, np.
  1. $i = 1;
  2. while($row = mysql_fetch_assoc($wynik)) {
  3. if ($i%2 == 0) // tutaj wyświetlasz zawartość w <div class="p_szary"> </div>
  4. else // a tutaj wyświetlasz zawartość w <div class="p_bialy"> </div>
  5. ++$i;
  6. }


$i będzie się zwiększało z każdym "przejechaniem" while. Zatem warunek dzielenia przez 2 będzie się spełniał naprzemiennie.
Vion
Działa. A jak zrobić żeby po prawej stronie było to samo( taka samo koncepcja) ale z prawej i lewej inne wyniki. Wtedy trzeba pobrać 10 danych z bazy, ale nie wiem co dalej.

  1. <div class="k1"><?php
  2. $wynik = mysql_query("SELECT * FROM notice where notice_is_published='1' ORDER BY RAND() LIMIT 5");
  3. $i = 1;
  4. while($row = mysql_fetch_assoc($wynik)) {
  5. if ($i%2 == 0) { ?> <div class="p_szary"> <span class="s1"> <?php echo $row['notice_title'];?></span></div><?php }
  6. else { ?> <div class="p_bialy"><span class="s1"> <?php echo $row['notice_title'];?> </span></div><?php }
  7. ++$i;
  8. } ?>
  9. </div>
  10. <div class="k1" style="margin-right:0px;">
  11. <div class="p_szary"> <span class="s1"> Nunc sit ament purus blandit sapien varus bibendum sed </span></div>
  12. <div class="p_bialy"> <span class="s1"> Nunc sit ament purus blandit sapien varus bibendum sed </span> </div>
  13. </div>
Daiquiri
Nie bardzo rozumiem co ma być po prawej stronie.
Vion
Mam taki kod, ale czasami wyniki po prawej i lewej się powtarzają. Jak tego uniknąć ?
  1. <div class="k1"><?php
  2. $wynik = mysql_query("SELECT * FROM notice where notice_is_published='1' ORDER BY RAND() LIMIT 5");
  3. $i = 1;
  4. while($row = mysql_fetch_array($wynik)) {
  5. if ($i%2 == 0) { ?> <div class="p_szary"> <span class="s1"> <?php echo $row['notice_title'];?></span></div><?php }
  6. else { ?> <div class="p_bialy"><span class="s1"> <?php echo $row['notice_title'];?> </span></div><?php }
  7. ++$i;
  8. };
  9.  
  10. ?>
  11. </div>
  12. <div class="k1" style="margin-right:0px;">
  13. <?php
  14. $wynik = mysql_query("SELECT * FROM notice where notice_is_published='1' ORDER BY RAND() LIMIT 5");
  15. $i = 1;
  16. while($row = mysql_fetch_assoc($wynik)) {
  17. if ($i%2 == 0) { ?> <div class="p_szary"> <span class="s1"> <?php echo $row['notice_title'];?></span></div><?php }
  18. else { ?> <div class="p_bialy"><span class="s1"> <?php echo $row['notice_title'];?> </span></div><?php }
  19. ++$i;
  20. };
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.