Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd : Warning: mysql_fetch_array() ?
Forum PHP.pl > Forum > Przedszkole
Tec
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
sf
Najlepiej odpalić mysql z konsoli. Zobaczyć czy wszystkie tabele są. Następnie testować kod... aż do momentu kiedy będzie poprawny rezultat.
harmag
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.
Tec
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
sf
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ć.
scanner
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. ?>
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.