Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]/[SQL] skrypt urodziny
faxsilver
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 29.10.2006

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


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
Go to the top of the page
+Quote Post
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


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.
Go to the top of the page
+Quote Post
faxsilver
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 29.10.2006

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


klienci i bdays to sa dwie tabele, te apostrofy tez zmienilem i nadal wyskakuje ten sam blad
Go to the top of the page
+Quote Post
siemakuba
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


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.
Go to the top of the page
+Quote Post
faxsilver
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 29.10.2006

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


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
Go to the top of the page
+Quote Post
siemakuba
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


  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.
Go to the top of the page
+Quote Post
faxsilver
post
Post #7





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 29.10.2006

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


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:-)
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




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


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
siemakuba
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


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.
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




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


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
faxsilver
post
Post #11





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 29.10.2006

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


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
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 Aktualny czas: 19.08.2025 - 19:04