Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Warunki
Forum PHP.pl > Forum > Przedszkole
Nostromo
Witam

Mam problem z warunkami kod wygląda tak

  1. <?php
  2.  
  3. mysql_connect('localhost', 'root', 'krasnal') or
  4.  die('Nie można się połączyć');
  5.  
  6. $query = "SELECT * FROM News ORDER BY id ";
  7.  
  8. $result = mysql_query($query);
  9.  
  10. ini_set('display_errors', 1);
  11.  
  12. while ($AFR = mysql_fetch_assoc($result)) 
  13. {
  14. if ( $AFR["Data"] = $AFR["Datat"] )
  15. print("Brak aktywnych zdarzen" );
  16.  
  17.  
  18. }
  19. ?>


Wyskakuje mi taki błąd

Notice: Undefined index: Datat in c:\usr\krasnal\www\cos\test.php on line 16

Jeżeli zamiast $AFR["Datat"] dam np.10 to działa idealnie ,ale jezeli dam zamiast 10 zmienna datat to się kraczy :/ Ktoś może mi wskazać błąd ?
nospor
proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole


a masz w tabeli News pole Datat ? Bo raczej nie masz.

pozatym porownanie robi sie przez == a nie przez =
Nostromo
heh właśnie dopiero to zauważyłem smile.gif Ciamajda ze mnie tongue.gif


Pozdrawiam !

kurde zmieniłem na cos takie i ciagle sie kraczy ,a robie to zgodnie z ksiazka mad.gif

  1. <?php
  2.  
  3. mysql_connect('localhost', 'root', 'krasnal') or
  4.  die('Nie można się połšczyć');
  5.  
  6. $query = "SELECT * FROM News ORDER BY id ";
  7.  
  8. $result = mysql_query($query);
  9.  
  10. ini_set('display_errors', 1);
  11.  
  12. $czas = date("m.d.y", time());
  13.  
  14. print("Dzisiaj<br>" ); 
  15.  
  16. while ($AFR = mysql_fetch_assoc($result)) 
  17. {
  18. if ( $AFR["Data"] == $czas ) 
  19. print("<br>" );
  20. print("Sš zdarzenia" );
  21. }
  22. {
  23. elseif ( $AFR["Data"] != $czas ) 
  24. print("brak aktywnych zdarzeń" );
  25. } 
  26. ?>


Chodzi mi o prosty warunek jeżeli $Data jest == bieżącemu czasu ,czyli przykładowo 10.02.06 to wyświetlaj ,jezeli jest != pokaz napis brak zdarzeń ...
nospor
a w jakiej postaci masz dane date w bazie? walnij se:
  1. <?php
  2. while ($AFR = mysql_fetch_assoc($result)) 
  3. {
  4. echo 'z bazy: '.$AFR["Data"].' - z php :'.$czas.'<br />';
  5. //....
  6. }
  7. ?>

i bedzie wszystko jasne. ale takie rzeczy to samemu trzeba sprawdzac.
Nostromo
W takiej samej postaci sprawdzałem to już na początku .

Parse error: parse error in c:\usr\krasnal\www\cos\test2.php on line 25

A klamry mam identycznie zrobione jak w kompendium php sad.gif Przynajmniej tak mi się wydaje...
nospor
Cytat
W takiej samej postaci sprawdzałem to już na początku .
No to skoro w takiej samej postaci, to co ci nie dziala w warunku?

Cytat
Parse error: parse error in c:\usr\krasnal\www\cos\test2.php on line 25
A czego to ma sie tyczyc? kawalek co napisalem nie powinien wywalac bledu.
Nostromo
Dokładnie błąd mi wywale w linijce elseif ,jezeli usune tą linijke działa idealnie ,ale co z tego ,że działa ,jeżeli nie tak jak powinno sadsmiley02.gif
nospor
Masz bardzo duuuuze problemy z opisywanie problemow. popracuj nad tym.

Masz blad skaldni. poprawka
  1. <?php
  2. while ($AFR = mysql_fetch_assoc($result)) 
  3. {
  4. if ( $AFR["Data"] == $czas ){
  5.  print("<br>" );
  6.  print("Sš zdarzenia" );
  7. }
  8. else
  9. print("brak aktywnych zdarzeń" );
  10. }
  11. ?>

Na przyszlosc rob wciecia w kodzie, to moze wylukasz blad
Nostromo
Okej dzięki Ci wielkie.

Mam jeszcze takie małe pytanie dlaczego ,jeżeli mam naprzykład 100 rekordów ,a zaden nie będzie pasował do wybranych kryteriów ,czyli $AFR['data'] == $czas to pokaże mi 100 razy napis brak wydarzeń ? I jak to ograniczyć ? Takie troche głupie pytanie ,ale naprawde nie wiem jak to zrobić i za co się złapać sadsmiley02.gif
nospor
Cytat
Mam jeszcze takie małe pytanie dlaczego ,jeżeli mam naprzykład 100 rekordów ,a zaden nie będzie pasował do wybranych kryteriów ,czyli $AFR['data'] == $czas to pokaże mi 100 razy napis brak wydarzeń ?

Jak to dlaczego? Bo 100 razy sprawdzasz to w petli i za kazdym razem wypisujesz ...

Cytat
I jak to ograniczyć
Ale co ty chcesz zrobic? cchesz pobrac tylko te rekordy dla ktorych jest zdarzenie aktywne? To daj warunek w zapytaniu nato, to pobierze ci tylko aktywne rekordy.
Nostromo
Mozesz to rozwinąć tongue.gif Przetłumaczyć z języka programistycznego na ludzki smile.gif
Jak pobrać te aktywne rekordy ? Moge tak zrobić ,by pobierało ,tylko równe i nie sprawdzało innych (tzn.sprawdzalo tylko ==) ,ale czy jest to dobre rozwiązanie ? O to mniejwiecej chodzi ?

Moge tak to zrobić ?

Sprawdzając czy pierwszy warunek da mi 1 (czyli istnieje).Jeżeli da mi zero to wyświetla brak zdarzeń ? Dobrze kombinuje ?
nospor
Cytat
Jak pobrać te aktywne rekordy

  1. <?php
  2. $czas = date("m.d.y", time());
  3. $query = "SELECT * FROM News where Data='$czas' ORDER BY id ";
  4. //....
  5. ?>

i juz. teraz zostana ci zwrocone tylko aktywne rekordy

a czy oto ci chodzi to juz ty powinienes wiedziec
Nostromo
Dokładnie o to mi chodziło smile.gif

Dzięki Ci wielkie
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.