Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Rozpoznanie ostatniego rekordu tablicy
Forum PHP.pl > Forum > Przedszkole
pawelt
Witam serdecznie..
Mój problem jest banalny, ale nie wiem jak powinienem go rozwiązać.
Chodzi o to, że za każdym razem pobieram z bazy danych różną ilość rekordów w pętli while.
Po każdym imieniu dodaję przecinek i spację ', '
Problem pojawia się wraz z ostatnim rekordem, gdyż jak wiadomo zestaw znaków ', ' także się pojawia.

Niestety nie wiem jak rozpoznać, kiedy pobierany jest ostatni rekord - wtedy mógłbym napisać instrukcję if, aby wykluczyć wywoływanie dla niego zbędnych znaków.
Ale zapewne są też lepsze sposoby.
Proszę o poradę..


  1. if(mysqli_num_rows($result) > 0) {
  2. echo '(IMIONA: ';
  3. while($row = mysqli_fetch_array($result)) {
  4. echo $row['imie'] . ', ';
  5. }
  6. echo ')';
  7. }
blooregard
Policz, ile masz zwracanych rekordów, zapisz to do zmiennej np. 'ilość rekordów' i zamiast while() użyj for() dla zakresu od 1 do 'ilość rekordów-1' (i tam doklejaj przecinek), a rekord 'ilość rekordów' wyświetl już poza for(), bez przecinka smile.gif
abort
Albo inaczej: pierwszy rekord pobierać i wyświetlać normalnie, a przed wyświetleniem następnych doklejać przecinek ze spacją.
Można jeszcze pętlę while wstawić do if'a (żeby się wykonała "if(mysqli_num_rows($result) > 1)"). Generalnie widziałbym to tak:

  1. $rows=mysqli_num_rows($result);
  2. if( $rows > 0) {
  3. echo '(IMIONA: ');
  4. $row = mysqli_fetch_array($result);
  5. echo $row['imie'];
  6. if ($rows>1) {
  7. while($row = mysqli_fetch_array($result)) {
  8. echo ', ' . $row['imie'];
  9. }
  10. echo ')';
  11. }
sannin
Najłatwiej za pętlą while daj:
Kod
$rest = substr("abcdef", 0, -2);  // returns "abcd"
nospor
Rety, a po co takie kombinacje alpejskie?
  1. $first = true;
  2. while($row = mysqli_fetch_array($result)) {
  3. if (!$first) echo ', ';
  4. $first = false;
  5. echo $row['imie'];
  6. }
abort
A na to nie wpadłem smile.gif Proste i skuteczne, by nie powiedzeć genialne 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.