Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql]problem z działaniem "poprawnego skryptu", Nie wiedziałem jak nazwać ten problem, gdzieś jest błąd i nie mogę go
$liwa
post 28.07.2007, 23:05:24
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 19.07.2006

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


Szukam tego błędu od prawie dwóch godzin i nic, pewnie rozwiązanie jak zawsze jest banalne, ale ja już nie mogę go znaleźć.
  1. <?php
  2. if($_GET['Nr_pracy'])
  3. {
  4. if(ereg("([0-9]){3}-P", $sId = $_GET['Nr_pracy'])) 
  5. {
  6. $r_resultGET = mysql_query("SELECT * FROM pracedyplomowe WHERE 'Nr_pracy=".$sId."'", $r_sql); 
  7. var_dump($r_resultGET);
  8. $r_rowGET = mysql_fetch_array($r_resultGET);
  9. var_dump($r_rowGET);
  10. echo "Wydział: ".$r_rowGET['wydzial']."(...)";
  11. mysql_free_result($r_resultGET);
  12. }
  13. else echo "Błąd";
  14. }
  15. ?>

var_dump($r_resultGET); zwraca wartość: resource(5) of type (mysql result)
var_dump($r_rowGET); bool(false)

Może coś przegapiłem, proszę o pomoc i z góry wszystkim dziękuję.

Ten post edytował $liwa 28.07.2007, 23:18:30
Go to the top of the page
+Quote Post
kosmowariat
post 28.07.2007, 23:14:01
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

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


zauważ że nawet na forum Ci źle składnie podświetla. w linijce nr 10 brakuje cudzysłowa ;p to błąd który znalazłem na pierwszy rzut oka niestety konkretnie nie określiłeś jakiego typu masz błąd ...
a to poprawiona 10 linijka

  1. <?php
  2. echo "Wydział: ".$r_rowGET['wydzial']."(...)";
  3. ?>
Go to the top of the page
+Quote Post
$liwa
post 28.07.2007, 23:17:42
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 19.07.2006

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


to (...) oznaczało dalszą mało ważna część skryptu, więc nie tutaj jest błąd.
Błąd polega na tym, że jest: var_dump($r_rowGET); bool(false) i nie wykonuje dalej skryptu nie wyświetlając pola $r_rowGET['wydzial']
Go to the top of the page
+Quote Post
kossa
post 29.07.2007, 00:24:13
Post #4





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


nie możesz wywołując funkcję w jej parametrach nadawać zmiennej wartości:

Cytat
if(ereg("([0-9]){3}-P", $sId = $_GET['Nr_pracy']))


  1. <?php
  2. $sId = $_GET['Nr_pracy'];
  3. if(ereg("([0-9]){3}-P", $sId))
  4. ?>


Łukasz


--------------------
Go to the top of the page
+Quote Post
$liwa
post 29.07.2007, 11:02:23
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 19.07.2006

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


Chyba jednak można, bo tutaj skrypt działa jak najbardziej poprawnie...
Go to the top of the page
+Quote Post
Athlan
post 29.07.2007, 13:09:01
Post #6





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Cytat
nie możesz wywołując funkcję w jej parametrach nadawać zmiennej wartości:

@kossa, To ja mu podpowiedziałem o takim zastosowaniu kodu. Absolutnie można, zanim coś napiszesz poczytaj podstawy manuala w rozdziale Zmienne i ich przypisaniu smile.gif

Moim zdaniem baza źle zwraca wynik, a co za tym stoi, błąd. Spowodowany jest najprawdopodobniej tym:
WHERE 'Nr_pracy=".$sId."'.
Zamiast powyższej linijki spróbuj:
WHERE Nr_pracy=".$sId."
Przy typie integer (liczby) nie musisz wartości w zapytaniu dawać w cudzysłowie. Ale tu nie o to chodzi. Jak możesz dać pole bazy danych razem z porównaniem wartości w jedno cudzysłowie ? smile.gif

Oczywiście mogę się mylić tak jak kolega @kossa ;]

Popraw i powiedz czy zadziała smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
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: 24.05.2024 - 10:52