Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z petla
Forum PHP.pl > Forum > Przedszkole
-Arkadiusz-
Witam, chciałbym zrobić skrypt który sprawdza czy są nowe wiadomości jak tak to żeby pokazało napis SA NOWE WIADOMOSCI a jak nie ma ich to żeby pokazało napis że ich nie ma...

no i tak, wiadomości mam wrzucone do jednej tabeli, kazda wiadomość ma user_id i status, status służy do rozpoznania czy wiadomość została już przeczytana, 0 odpowiada przeczytaniu, 1 że wiadomość nie została jeszcze przeczytana, user_id jest po to by sprawdzić do jakiego użytkownika przypisany jest dana wiadomość.
I teraz napisałem coś takiego:



  1. <?php
  2. $result = $dbase->get_query("
  3. SELECT status FROM wiadomosci
  4. where user_id = ".$_SESSION['id']."
  5. ");
  6.  
  7.  
  8.  
  9.  
  10.  
  11. foreach ($result as $record)
  12. {
  13. if ($record['status'] > 0)
  14. {
  15.  
  16. $page->assign['logowanie'] .= "Masz nową wiadomość<br>";
  17.  
  18. }
  19. else $page->assign['logowanie'] .= "nie masz<br>";
  20. }
  21. ?>





i teraz w skrzynce mam trzy wiadomości
i wynik jest
nie masz
nie masz
Masz nową wiadomość

mógłbym wykasować else i by nawet to mogło być ale jak ktoś miał by 2 nowe msg to już napis sie powiela,

czy mógłby ktoś mi powiedzieć jak sprawdzić czy choć jeden rekord w tabeli jest równy 1 jeśli tak to: napis , jeśli nie to: napis2,
jestem b. początkujący i trochę nie mam pomysłu jak to zrobić.... :/
John
zmienna pomocnicza wewnątrz pętli ?
  1. <?php
  2. $h = 0;
  3. forach($result as $record) {
  4. if($record['status'] > 0) {
  5. $h +=1;
  6. }
  7. }
  8.  
  9. if($h > 0) {
  10. $page->assign['logowanie'] = "Masz wiadomosc";
  11. } else {
  12. $page->assign['logowanie'] = "Brak wiadomosci";
  13. }
  14.  
  15. // i wsio
  16. ?>
Arkadiusz2
Wlasnie nadtym myslalem i wpadlem na podobny pomysł

dzieki wielkie bo ja pewnie bym troche nadtym musial pracowac zanim by to zadzialalo
nevt
dlaczego robicie to dookoła? wystarczą 2 linijki kodu:
  1. <?php
  2. $result = $dbase->get_query('SELECT status FROM wiadomosci WHERE user_id = '.$_SESSION['id'].' AND status > 0;');
  3. $page->assign['logowanie'] .= (count($result) > 0 ? "Masz nową wiadomość<br>" : "nie masz<br>");
  4. ?>
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.