Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z petla
--Arkadiusz--
post 23.05.2008, 20:32:09
Post #1





Goście







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ć.... :/
Go to the top of the page
+Quote Post
John
post 23.05.2008, 23:02:18
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 11
Dołączył: 1.08.2007
Skąd: Poland,Warsaw

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


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. ?>


--------------------
Odpowiedź na wszystko : manual,appendix. Ulubiona książka : PHP 5 for Dummies.
Studia uh ? ;-).
Go to the top of the page
+Quote Post
-Arkadiusz2-
post 23.05.2008, 23:05:48
Post #3





Goście







Wlasnie nadtym myslalem i wpadlem na podobny pomysł

dzieki wielkie bo ja pewnie bym troche nadtym musial pracowac zanim by to zadzialalo
Go to the top of the page
+Quote Post
nevt
post 24.05.2008, 08:14:31
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


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. ?>


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 18:48