Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Dane z bazy, while, <hr> po rekordzie
Forum PHP.pl > Forum > Przedszkole
in5ane
Elo, jak zrobić, że jak wyciągam dane z bazy za pomocą while'a i po kazdym rekordzie mam <hr> (pozioma kreskę), to żeby nie było po ostatnim rekordzie tej kreski?

Oto mój kod:
  1. <?php
  2. $query = "SELECT * FROM page_news WHERE status = '2' ORDER BY id DESC LIMIT 10";
  3. $result = mysql_query($query);
  4. while($row = mysql_fetch_array($result)) {
  5. echo '<p style="font-size: 10px; font-weight: bold;">'.$row[tytul].'</p><p style="font-size: 10px;">('.$row[data_dodania].')</p><hr style="border: none; width: 15%; height: 1px; background-color: #6e7a7b;" />';
  6. }
  7. echo '<br />';
  8. ?>


Z góry dziękuję za pomoc smile.gif
kossa
1. sprawdź przed pętlą ile masz rekordów w bazie

2. przed pętlą zainicjuj zmienną $i=1;

3. w pętli (na końcu przed } ) dokonaj iteracji zmiennej $i++;

4. w pętli przed <hr> sprawdzaj za pomocą if czy ilość rekordów jest równa $i - jeśli jest różna to wyświetlaj <hr> przeciwnym wypadku nie wyświetlaj linii i problem rozwiązany


Łukasz
Daimos
mozna tez tak, bez zliczania calkowitej liczby rekordow
  1. <?
  2. $tablica = array('a', 'b', 'c');
  3. for($i=0; $i<count($tablica); $i++){
  4. $rozdzielnik = ($i==0) ? '' : '<hr>';
  5. echo $rozdzielnik.$tablica[$i];
  6. }
  7. ?>
z biegu pisane, ale tak to mniej wiecej powinno wygladac, wystarczy tylko zastosowac to w Twoim wypadku
vip3r
A moglibyście to zrobić już na przykładzie Insane'a. Byście to zrobili, bo ja też bym sobie to wykorzystał.
atomek4
  1. <?php
  2. $query = "SELECT * FROM page_news WHERE status = '2' ORDER BY id DESC LIMIT 10";
  3. $result = mysql_query($query);
  4. $num_rows = mysql_num_rows($result); 
  5. $i=1;
  6. while($row = mysql_fetch_array($result)) {
  7. echo '<p style="font-size: 10px; font-weight: bold;">'.$row[tytul].'</p><p style="font-size: 10px;">('.$row[data_dodania].')</p><hr style="border: none; width: 15%; height: 1px; background-color: #6e7a7b;" />';
  8. echo '<br />';  
  9. if($i< $num_rows) echo '<hr/>';
  10. $i++;
  11. }
  12. ?>


O coś takiego chodzi?

edit: @vip3r - co się dzieje? Bo mogłem się pomylić.
vip3r
Coś mi to nie chodzi.
atomek4
@vip3r - co się dzieje? Sprawdziłem wszystko działa, tylko że ja dodałem swoją dodatkową linię. Natomiast jeśli to miała być tylko ta, co już jest w kodzie to wystarczy to zamienić. Zamiast tego mojego <hr/> wstawić to, co już jest w kodzie.
in5ane
Dzięki wam za pomoc. Skorzystałem z pomocy kossy.
A więc vip3r, dla Ciebie specjalnie kod:
  1. <?php
  2. $query = "SELECT * FROM page_news WHERE status = '2' ORDER BY id DESC LIMIT 10";
  3. $result = mysql_query($query);
  4. $num_rows = mysql_num_rows($result);
  5. $i=1;
  6. while($row = mysql_fetch_array($result)) {
  7. echo '<p style="font-size: 10px; font-weight: bold;">'.$row[tytul].'</p><p style="font-size: 10px;">('.$row[data_dodania].')</p>';
  8. if ($num_rows != $i) {
  9. echo '<hr style="border: none; width: 15%; height: 1px; background-color: #6e7a7b;" />';
  10. }
  11. $i++;
  12. }
  13. echo '<br />';
  14. ?>
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.