Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]Pobieranie danych z bazy php
Vion
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 2
Dołączył: 27.06.2008

Ostrzeżenie: (0%)
-----


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/
Go to the top of the page
+Quote Post
Daiquiri
post
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




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.
Powód edycji: [Daiquiri]:
Go to the top of the page
+Quote Post
Vion
post
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 2
Dołączył: 27.06.2008

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
Daiquiri
post
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Nie bardzo rozumiem co ma być po prawej stronie.
Go to the top of the page
+Quote Post
Vion
post
Post #5





Grupa: Zarejestrowani
Postów: 112
Pomógł: 2
Dołączył: 27.06.2008

Ostrzeżenie: (0%)
-----


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. };


Ten post edytował Vion 11.02.2011, 13:04:01
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 05:19