Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]/[SQL] skrypt urodziny
Forum PHP.pl > Forum > Przedszkole
faxsilver
Witam , problem na dzis jest taki otoz znalazlem na necie skrypt do wyswietlania urodzin i perzerobilem go podlug struktury mojej bazy danych,
skrypt ma za zadanie pobieranie danych z 2 tabel, tabele maja zdefiniowane klucze, ale niestety wyskakuje blad:-(

Cytat
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/k/l/klienci/index3.php on line 19.


  1. <?php
  2.  
  3.  
  4. require_once ('mysql_connect.php');
  5. session_name('IDTwojejSesji');
  6. ini_set('session.use_cookies', 0);
  7.  
  8.  
  9. if (!isset($_SESSION['agent']) OR ($_SESSION['agent'] != md5($_SERVER['HTTP_USER_AGENT'])) )
  10.  
  11.  
  12.  
  13. $day = date('day');
  14. $month = date('month');
  15.  
  16. $query= "SELECT Nazwisko_klienta FROM klienci, bdays WHERE id = Klient_ID AND 'day'='$day','month'='$month'";
  17. $result=mysql_query($query);
  18. $num=mysql_numrows($result);
  19.  
  20.  
  21. $i=0;
  22. while ($i < $num) {
  23.  
  24. $name=mysql_result($result,$i."Nazwisko_klienta");
  25.  
  26. echo "<strong>". $name ."</strong><br>";
  27.  
  28. $i++;
  29. }
  30.  
  31. if ($i == 0) {
  32. echo "Nikt sie dzis kuzwa nie urodzil. ";
  33. }
  34.  
  35. ?>
  36. </p>
  37. <p align="center" class="style7"><a href="bday_add.php" class="style6">Want to feel wanted? Then have your birthday celebrated here!</a></p>
  38. <p align="center">Thanks! <a href="mailto:callum.jones@gmail.com"><strong>Callum Jones</strong></a></p>


mozliwe sa bledy skladni ale staralem sie wyeliminowac je poprzez rozne wersje:_)
dzieki za ewentualna pomoc
pozdawiam
siemakuba
Linia 17:
  1. <?php
  2. $query= "SELECT Nazwisko_klienta FROM klienci, bdays WHERE id = Klient_ID AND 'day'='$day','month'='$month'";
  3. ?>


co to jest klienci, bdays? Masz taką tabelę, czy została po przerabianu? Tak czy inaczej nie wykorzystujesz jej więc możesz wywalić.

Dalej, AND 'day'='$day','month'='$month' - takie nazwy pól są zdaje się zastrzeżone w MySQL. Próbujesz to obejść prawie poprawnie. Musisz ująć je w odwrotne ciapki (`) zamiast apostrofów.

Ten sam fragment, 'day'='$day','month'='$month' - jak łączymy warunki w zapytaniu MySQL? Za pomocą przecinka czy AND?

Do poprawy to co napisałem, dalej powinno być z górki ;)

pozdr.
faxsilver
klienci i bdays to sa dwie tabele, te apostrofy tez zmienilem i nadal wyskakuje ten sam blad
siemakuba
po tej linii:
  1. <?php
  2. $result=mysql_query($query);
  3. ?>

dodaj:
  1. <?php
  2. ?>

i pokaż treść błędu (co powinieneś zrobić na samym początku).

pozdr.
faxsilver
oto tresc bledu:
Cytat
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/k/l/klienci/index3.php on line 19
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND `month`=11o113003' at line 1
siemakuba
  1. <?php
  2. $query= 'SELECT Nazwisko_klienta FROM klienci, bdays WHERE id = "'.$Klient_ID.'" AND `day`="'.$day.'" AND `month`="'.$month.'"';
  3. ?>


P.S. czytaj dokładnie, co piszemy. Nie piszemy tego do siebie.

pozdr.
faxsilver
ok pozmieniałem , sprawa wyglada tak:
mam 2 tabele jedna nazywa sie klienci a druga bdays. W tabeli klienci
zdefiniowany jest primary key dla Klient_ID a w tabeli bdays primedy key jest id a klucz obcy to
data. kod pliku php wyglada tak
  1. <?php
  2.  
  3.  
  4. require_once ('mysql_connect.php');
  5. session_name('IDTwojejSesji');
  6. ini_set('session.use_cookies', 0);
  7.  
  8.  
  9. if (!isset($_SESSION['agent']) OR ($_SESSION['agent'] != md5($_SERVER['HTTP_USER_AGENT'])) )
  10.  
  11.  
  12.  
  13. $day = date('day');
  14. $month = date('month');
  15. $query= 'SELECT Nazwisko_klienta FROM klienci, bdays WHERE data = "'.$Klient_ID.'" AND `day`="'.$day.'" AND `month`="'.$month.'"';
  16. $result=mysql_query($query);
  17. $num=mysql_numrows($result);
  18.  
  19. $i=0;
  20. while ($i < $num) {
  21.  
  22. $name=mysql_result($result,$i."tekst");
  23.  
  24. echo "<strong>". $name ."</strong><br>";
  25.  
  26. $i++;
  27. }
  28.  
  29. if ($i == 0) {
  30. echo "Nikt sie dzis kuzwa nie urodzil. ";
  31. }
  32.  
  33. ?>
  34. </p>
  35. <p align="center" class="style7"><a href="bday_add.php" class="style6">Want to feel wanted? Then have your birthday celebrated here!</a></p>
  36. <p align="center">Thanks! <a href="mailto:callum.jones@gmail.com"><strong>Callum Jones</strong></a></p>



chcialbym zeby wyswietlalo mi kto ma urodziny z tabeli klienci, ale nic nie wyswietla ani bledu ani komunikatu zawartego w kolumnie 'tekst' z tabeli bdays, tylko komunikat ""Nikt sie dzis kuzwa nie urodzil".
gdzie jest blad?questionmark.gifquestionmark.gif:-)
nospor
pierwszy blad jaki sie rzuca w oczy:
  1. <?php
  2. $num=mysql_numrows($result);
  3. ?>

I sprawdz sobie w manuala czy taka funkcja istnieje, a potem jak sie dowiesz ze nie, to znajdz podobną do niej.
Reszty kodu nie analizowalem

edit: pozatym mysql_close(); to chyba na koncu powinno byc
siemakuba
Cytat
pierwszy blad jaki sie rzuca w oczy:
:) nosporze, wpadka :)

Cytat
Note:
For downward compatibility, the following deprecated alias may be used: mysql_numrows()


Chociaż deprecated, to jednak may be used ;>

pozdr.
nospor
Cytat
Chociaż deprecated
Musi byc bardzo deprecated, bo w manualu ani slowa o tej funkcji nie ma. ale dzieki cynk smile.gif
I tak sie zastanawialem czy oby napewno nie ma, gdy zobaczylem ten komunikat:
Cytat
Warning: mysql_numrows(): supplied argument is
Oznaczalo to, iż php jednak widzi te funkcje. ale to doczytalem juz po poscie winksmiley.jpg
faxsilver
hmmm po przerobieniu nadal wyskakuje komunikat,:
  1. <?php
  2. if ($i == 0) {
  3. echo "Nikt sie dzis kuzwa nie urodzil. "
  4. ?>


dziala tak jakby pomijalo zapytanie i porownanie daty z bazy danych z serwerowa
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.