Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Błąd : Warning: mysql_fetch_array() ?
Tec
post 14.12.2004, 20:46:35
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 11.12.2004

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


Witam

Mam prosty skrypt przeszukujący bazę. Miałem go na serwerze, na którym jest baza i wszystko było OK. Musiłem przenieśc skrypt na drugi serwer i pojawia się błąd - a TYLKO wtedy, gdy nic nie wpiszę do formularza. Gdy wpiszę cokolwiek - błędu nie ma.

Oto komunikat bazy :

Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/boxer-motor/web/mototec/epc/cennik bmw.php on line 57
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 '' at line 1


A oto skrypt :
  1. <?php
  2.  
  3. require './epcdata.inc.php';
  4.  
  5. mysql_connect ($db_server, $db_username,$db_password);
  6. mysql_select_db ($db_name);
  7.  
  8. if($stan=='kliknij') {
  9.  
  10. $zapytanie = &#092;"SELECT * FROM `epc` WHERE epc_nr=$znajdz\";
  11. $rezultat = mysql_query ($zapytanie);
  12. $rekord=mysql_fetch_array($rezultat) or Die(mysql_error());
  13. echo&#092;"<tr><td align=left valign=top class=th>Nr ETK: <font color=blue>$rekord[epc_nr]</font><br>Cena z VAT: <font color=red>$rekord[epc_CC] zł</font> </td></tr>\";
  14. echo &#092;"<tr><td align=center><form method=get action=cennik.php><br><input type=text name=znajdz MAXLENGTH=11 maxlenght=11><br><input type=submit value=kliknij name=stan></form></td></tr></table>\";
  15. }
  16.  
  17. else {
  18. echo &#092;"<table><tr><td align=center><form method=get action=cennik.php>wpisz numer katalogowy bez odstępów w formacie xxxxxxxxxxx<br><input type=text name=znajdz MAXLENGTH=11><br><input type=submit value=kliknij name=stan></form></td></tr></table>\";
  19. }
  20. ?>


Tracę czas na przeszukiwaniu forum i poszukiwaniu rozwiązania - i nic...
Help me.
Pozdr. WO
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sf
post 14.12.2004, 20:57:36
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Najlepiej odpalić mysql z konsoli. Zobaczyć czy wszystkie tabele są. Następnie testować kod... aż do momentu kiedy będzie poprawny rezultat.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
harmag
post 14.12.2004, 21:15:12
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 17.08.2004

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


upewnij sie ze nazwa bazy danych jaka wybierasz podczas laczenia sie z baza przy pomocy mysql_select_db" title="Zobacz w manualu PHP" target="_manual jest dokladnie taka sama na jednym jak i na drugim serwerze.
Go to the top of the page
+Quote Post
Tec
post 14.12.2004, 22:53:54
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 11.12.2004

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


Hi,

Baza jest banalna, ma dwie tabele, z czego skrypt przeszukuje tylko jedną (choć dużą), składającą się zaledwie z dwóch kolumn. Baza jest ciągle na tym samym serwerze, przeniosłem tylko skrypt (i dane do logowania) na inny serwer. Ostatnim moim pomyslem jest dołaczenie javascript, żeby sprawdzać czy cokolwiek jest wpisane w formularz.

P.S.
mysql z konsoli nie odpalę, bo nie wiem - jak.

WO
Go to the top of the page
+Quote Post
sf
post 15.12.2004, 10:04:00
Post #5





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


No to masz problem. Tylko czemu nawet obsługi błędów nie masz zrobinej? Sprawdź czy jest połączenie. Sprawdź czy udaje się wybrać bazę danych. Wyświetl zapytanie sql poprzez echo (głównie chodzi o zmienną $znajdz). Zresztą pisze jak wół, że masz bład w składni sql. Spróbuj tak "SELECT * FROM epc";. Próbuj, próbuj, zmieniaj, sprawdzaj, wyświetlaj jakie masz tabele i szukaj błedu. Bo tak na pierwszy rzut oka jest OK. Więc trzeba szukać, szukać, szukać. Kombinować.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
scanner
post 15.12.2004, 13:01:00
Post #6





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Jak dla mnie zmienna $znajdz jest pusta...
Dlaczego?
Bo a starym serwerze miales register_globals na on a na nowym masz off, a nie jesteś na bierząco ze sprawami bezpieczeństwa i technologii naszego ulubionego jezyka...

Przenoszę: MySQL => php Początkujacy


Update: dla ułatwienia podam, że dobrze by było:
  1. <?php
  2. //zamienić
  3. $zapytanie = &#092;"SELECT * FROM `epc` WHERE epc_nr=$znajdz\";
  4. // na
  5. $zapytanie = &#092;"SELECT * FROM `epc` WHERE epc_nr='\".$_POST['znajdz'].\"'\";
  6. ?>


--------------------
scanner.info
Warto pamiętać: KISS, DRY
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.07.2025 - 17:04