Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Funkcja if!+else
klavius
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 22.12.2010

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


Witam,
Otóż robię sobie stronkę z Panelem logowania etc, i mam mały problem.

Mam tabele (data/login/kod/akcja/saldo);

Chcę zrobić tak : Jeżeli w bazie danych w tabeli o nazwie 'history' będzie jaki kol wiek wpis gdzie w rekordzie login="?" to wyświetli rekord istnieje a jeśli nie to rekord nie istnieje.

  1.  
  2. while ($wywolaj = mysql_fetch_assoc($oki)) {
  3.  
  4. if (mysql_num_rows($oki) <> 0)
  5. echo 'rekord istnieje'.$wywolaj['data'].'';
  6. else
  7. echo 'rekord nieistnieje'.$wywolaj[login].'';
  8.  
  9.  
  10. }


napisałem coś takiego, lecz jeśli jest wpis to wyświetla się napis rekord istnieje , jeśli nie ma to nie pisze nic a powinno ..

proszę o pomoc;)

@Down
Thx; p

Ten post edytował klavius 22.12.2010, 20:16:47
Go to the top of the page
+Quote Post
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


  1. $q=mysql_query("SELECT * FROM `history` WHERE `login`='$login'");
  2. $num=mysql_num_rows($q);
  3. if($num>0){
  4. echo 'rekord istnieje';
  5. }else{
  6. echo 'rekord nie istnieje';
  7. }


PS Do wklejania kodu używaj BBCode bo Ci mod temat zamknie.

Ten post edytował sadistic_son 22.12.2010, 19:32:09
Go to the top of the page
+Quote Post
klavius
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 22.12.2010

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


No i mam taki kod:


  1. while ($wywolaj = mysql_fetch_assoc($oki)) {
  2.  
  3. if (mysql_num_rows($oki) <> 0)
  4. echo '
  5. <tr>
  6. <td>Data</td>
  7. <td>Kod</td>
  8. <td>Akcja</td>
  9. <td>Zmiana Salda</td>
  10. </tr>
  11.  
  12. <tr>
  13. <td> '.$wywolaj['data'].'</td>
  14. <td> '.$wywolaj['kod'].'</td>
  15. <td> '.$wywolaj['akcja'].'</td>
  16. <td> '.$wywolaj['saldo'].'</td>
  17. </tr>';
  18. else
  19. echo 'rekord nieistnieje';
  20.  
  21.  
  22. }


I co jest w nim źle? , Wiem ze jak usunę pętle to chodzi dobrze lecz wtedy nie wyświetlają się rekordy np" '.$wywolaj['kod'].'" , nie wiem o co chodzi;\

Może ktoś mi powiedzieć?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jak wszedl do petli to znaczy ze rekord jest. W Twojej petli ELSE nigdy nie bedzie mial miejsca
Go to the top of the page
+Quote Post
Webmasterr
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 7.08.2010

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


To co kolega @nospor powiedział, a poza tym...

Kolego!
Podstaw PHP!

Blok else, jeżeli jest wielolinijkowy potrzebuje ograniczników (!) w postaci { i }

A gotowca nie dam. Idź na kurs podstaw PHP.

Ten post edytował Webmasterr 22.12.2010, 20:54:11
Go to the top of the page
+Quote Post
sadistic_son
post
Post #6





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Kolego... a mój pierwszy post jest niewidzialny? Pozbądź się tego if/else z Twojego kodu, całą pętle while z Twojego post (bez if/else) przeklej do mojego if, w miejsce echo 'rekord istnieje'; i gotowe.
  1. $q=mysql_query("SELECT * FROM `history` WHERE `login`='$login'");
  2. $num=mysql_num_rows($q);
  3. if($num>0){
  4. echo ' <tr>
  5. <td>Data</td>
  6. <td>Kod</td>
  7. <td>Akcja</td>
  8. <td>Zmiana Salda</td>
  9. </tr>';
  10. while ($wywolaj = mysql_fetch_assoc($q)) {
  11.  
  12. <tr>
  13. <td> '.$wywolaj['data'].'</td>
  14. <td> '.$wywolaj['kod'].'</td>
  15. <td> '.$wywolaj['akcja'].'</td>
  16. <td> '.$wywolaj['saldo'].'</td>
  17. </tr>';
  18. }
  19. }else{
  20. echo 'rekord nie istnieje';
  21. }
Powyższy kod działa w następujący sposób: jeśli warunki zapytania $q są do spełnienia, czyli $num>0 wyświetl nagłowek tabeli (tylko raz), następnie wyświetlaj w pętli wszystkie rekordy spełniające zapytanie $q. Jeśli zapytanie $q nie zostanie spełnione czyli $num<0 to wyświetl 'brak rekordów'.

Ten post edytował sadistic_son 22.12.2010, 21:09:57
Go to the top of the page
+Quote Post
Webmasterr
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 7.08.2010

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


Cytat(klavius @ 22.12.2010, 20:55:27 ) *
Panowie! ja nie chce gotowca.... , jestem początkujący i chce się czegoś nauczyć i dlatego tu jestem!
po prostu chciałbym prosić o wskazówki nic więcej.


Wiem... I masz całkowitą rację, ale...
Przeczytaj Kurs Podstaw PHP, wtedy trochę pomyśl i zadaj pytanie.
Nawiasem mówiąc sam tak miałem, jak byłem początkujący ;\
Go to the top of the page
+Quote Post
klavius
post
Post #8





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 22.12.2010

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


Heh, Dzięki /up za odpowiedzi;d tak naprawdę banalny błąd popełniłem;d a kod zrobiłem mniej więcej tak;p dopiero teraz
zauważyłem;p


  1. if (mysql_num_rows($oki) <> 0) {
  2. while ($wywolaj = mysql_fetch_assoc($oki)) {
  3. echo '
  4. <tr>
  5. <td>Data</td>
  6. <td>Kod</td>
  7. <td>Akcja</td>
  8. <td>Zmiana Salda</td>
  9. </tr>
  10.  
  11. <tr>
  12. <td> '.$wywolaj['data'].'</td>
  13. <td> '.$wywolaj['kod'].'</td>
  14. <td> '.$wywolaj['akcja'].'</td>
  15. <td> '.$wywolaj['saldo'].'</td>
  16. </tr>';
  17.  
  18. }
  19. }
  20. else
  21. {
  22. echo 'rekord nieistnieje';
  23. }
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 - 07:55