Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Php+mysql problem z zapytaniem SQL
Forum PHP.pl > Forum > Przedszkole
Ertai
Niestety nie mam zielonego pojecie gdzie tutaj jest blad w tym zapytaniu wysylanym do bazy danych:

  1. <?php
  2. $zapytanie = &#092;"insert into daymio (nick, e-mail, zloto, poziom_kopalni, honor, dworzanie, gornicy, poziom_swiatyn, murarze,
  3. robotnicy, sila_max, sila_tymczasowa, poziom_wojska, himitsu, naku, toga, ludnos
  4. _wolna, liczba_domow, klan, haslo)
  5.  
  6.  values ($nick, $email, 10000, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 100, 100, $klan, $haslo);&#092;";
  7.  
  8. mysql_query($zapytanie) or die(mysql_error());
  9. ?>


w kazdym razie serwer zwraca mi blad w postaci: 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 '-mail, zloto, poziom_kopalni, honor, dworzanie, gornicy, poziom

Pomozcie! Z gory dzieki
sztosz
Nie założę się ale masz chyba rzeczywiscie tak jak opis błędu mówi błąd w składni.

Dokładnie chodzi o pole e-mail. Jeżeli dobrze to wszystko rozumiem pole nie moze zawierac nazw z myslnikiem. Sprawdź z inna nazwą pola czy działa.

Jeśli sie mylę to przepraszam.
Ertai
Pomoglo ale wyskoczyl wtedy taki blad: 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 '@o2.pl, 10000, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 100, 100,

zmienilem wtedy te value na taki kod: values ($nick, '$email', 10000, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 100, 100, $klan, $haslo);"; i wtedy wywalil blad: No Database Selected.

Caly kod wyglada tak:
  1. <?php
  2.  
  3. if ($haslo != $phaslo) {
  4. echo 'Haslo sie nie zgadza';
  5. }
  6.  
  7. $db=mysql_connect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: ' . mysql_error());
  8.  
  9. mysql_select_db('ertai_phpbb1');
  10.  
  11. $zapytanie=&#092;"select nick from daymio where nick=$nick\";
  12.  
  13. $wynik=mysql_query($zapytanie);
  14.  
  15. if($wynik) {
  16. echo 'Taki nick juz istnieje';
  17. }
  18.  
  19. $zapytanie=&#092;"select e-mail from daymio where email=$email\";
  20. $wynik=mysql_query($zapytanie);
  21.  
  22. if($wynik)
  23. {
  24. echo 'Konto zostalo juz zalozone na ten email';
  25. }
  26.  
  27.  
  28. $zapytanie = &#092;"insert into daymio (nick, email, zloto, poziom_kopalni, honor, dworzanie, gornicy, poziom_swiat
    y
  29. , murarze, robotnicy, sila_max, sila_tymczasowa, poziom_wojska, himitsu, naku, t
  30. ga, ludnosc_wolna, liczba_domow, klan, haslo)
  31.  
  32.  values ($nick, '$email', 10000, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 100, 100, $klan, $haslo);&#092;";
  33.  
  34. mysql_query($zapytanie) or die(mysql_error());
  35. echo ' DONE';
  36. ?>


POMOCY!!!!
sztosz
Primo:

  1. <?php
  2.  
  3. $zapytanie=&#092;"select e-mail from daymio where email=$email\";
  4.  
  5. //powinno wyglądać chyb tak:
  6.  
  7. $zapytanie=&#092;"select email from daymio where email=$email\";
  8.  
  9. ?>


A z tym No Database selected to czy to wywala php czy MySQL?
Opisz dokładnie bład tzn. podaj dokładnie to co ci się wyświetla.

Na razie nie wiem dlaczego tak sie może dziać.
Ertai
Poprawilem tamto co napisales. Niestety dalej nie dziala. Ten blad chyba generuje SQL i wlasnie dokladna jego tresc brzmi: No Database Selected. Nie wiem co zrobic :|
dr_bonzo
Moze po prostu nie wybrales bazy danych albo nie zostala ana wybrana. Sprawdz co zwraca funkcja
  1. <?php
  2. mysql_select_db('ertai_phpbb1');
  3. ?>
Ertai
Czy moze byc taki kod do sprawdzenia tego?

  1. <?php
  2.  
  3. $db=mysql_pconnect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: ' . mysql_error());
  4.  
  5. $dziwka=mysql_select_db('ertai_phpbb1');
  6. if(!$dziwka) echo 'NIE DZIALA';
  7.  
  8. ?>


Bo jezeli tak to niestety ale nie dziala. Ktos wie dlaczego? sad.gif
Zepco
Cytat(Ertai @ 2004-07-02 13:00:55)
Niestety nie mam zielonego pojecie gdzie tutaj jest blad w tym zapytaniu wysylanym do bazy danych:

  1. <?php
  2. $zapytanie = &#092;"insert into daymio (nick, e-mail, zloto, poziom_kopalni, honor, dworzanie, gornicy, poziom_swiatyn, murarze,
  3. robotnicy, sila_max, sila_tymczasowa, poziom_wojska, himitsu, naku, toga, ludnos
  4. _wolna, liczba_domow, klan, haslo)
  5.  
  6.  values ($nick, $email, 10000, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 100, 100, $klan, $haslo);&#092;";
  7.  
  8. mysql_query($zapytanie) or die(mysql_error());
  9. ?>


w kazdym razie serwer zwraca mi blad w postaci: 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 '-mail, zloto, poziom_kopalni, honor, dworzanie, gornicy, poziom

Pomozcie! Z gory dzieki

Spróbuj:
  1. <?php
  2. $zapytanie = &#092;"insert into daymio (nick, e-mail, zloto, poziom_kopalni, honor, dworzanie, gornicy, poziom_swiatyn, murarze,
  3. robotnicy, sila_max, sila_tymczasowa, poziom_wojska, himitsu, naku, toga, ludnos
  4. _wolna, liczba_domow, klan, haslo)
  5.  
  6.  values ('$nick', '$email', 10000, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 100, 100, '$klan', '$haslo');&#092;";
  7.  
  8. mysql_query($zapytanie) or die(mysql_error());
  9. ?>


Chyba, że zamiast e-mail ma być e_mail
dr_bonzo
  1. <?php
  2. $db=mysql_pconnect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: ' . mysql_error());
  3. $dziwka=mysql_select_db('ertai_phpbb1', $db); // dodaj $db
  4. if(!$dziwka) echo 'NIE DZIALA';
  5. ?>


albo nie masz takiej bazy danych
Ertai
Niestety po urzyciu takiego kodu sprawdzajacego
  1. <?php
  2.  
  3. $db=mysql_connect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: ' . mysql_error());
  4.   
  5. $sprawdzacz=mysql_select_db('ertai_phpbb1,$db');
  6. if(!$sprawdzacz) echo 'Nie dziala :(';
  7.  
  8. ?>


Dalej wyskakuje, ze Nie dziala sad.gif. Admini mojego konta na webd pisza, ze z serwem wszystko w porzadku (dodaja tez ze kod rowniez wyglada poprawnie, chodzi o poprzedni kod). Jak macie jeszcze jakies pomysly to walcie! Taka baze danych mam napewno gdyz zakladalem forum na phpbb o loginie ertai!
Zepco
Nie powinno być tak?

  1. <?php
  2. $sprawdzacz=mysql_select_db('ertai_phpbb1',$db);
  3. ?>
FiDO
Upewnij sie ze istnieje taka baza sam: mysql_list_dbs" title="Zobacz w manualu PHP" target="_manual
Ertai
Mam taki kod programu sprawdzajacego
  1. <?php
  2.  
  3. $db=mysql_connect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: ' . mysql_error());
  4.  
  5. $sprawdzacz=mysql_select_db('ertai_phpbb1');
  6. if(!$sprawdzacz) echo 'Nie dziala :(';
  7.  
  8. $db_list = mysql_list_dbs($db);
  9.  
  10. while ($row = mysql_fetch_object($db_list)) {
  11.  echo $row->Database . &#092;"n\";
  12.  
  13. }
  14.  
  15.  
  16.  
  17. ?>


I jak zwykle niestety ale nie dziala. Tak znaczy nic sie nie wyswietla sad.gif poza napisem nie dziala. Co jest nie tak tutaj? Mozecie podac poprawny kod sprawdzajacy te bazy danych?
AlekOpole
Wiem że to może głupie (bo pisze to o 1AM) ale może powód jest bardziej prozaiczny, może gdzieś pomyliłeś "L" z "1" które w małych literkach w niektórych edytorach wyglądają bardzo podobnie. Jeżeli nie masz innego pomysłu to może sprawdź czy twoja baza nazywa się "ertai_phpbb1" czy "ertai_phpbbl", może trafisz na coś co cię olśni (ja tak rozwiązuje większość problemów z bazą).

P.S. Nie krzyczcie na mnie.
sztosz
Jeśli masz konto na "webd" to masz dostep do Cpanelu sprawdz tam jak wygląda twoja baza danych (nazwy itp.) a jak w cpanelu nie możesz się połapać to wejdz w ikone bazy MySQL (czy coś takiego) i spróbuj otworzyć phpMyAdmin (albo coś takiego niepamiętam nazwy sad.gif ) i tam znajdziesz dane o bazach itp.
Ertai
Wlasnie korzystalem z myadmina i tam tworzylem te wszystkie tabele dlatego baza danych napewno nazywa sie ertai_phpbb1. I to jeden jest jeden a nie niestety l poniewaz sami patrzcie: ertai_phpbbl (to jest z l) ertai_phpbb1 (a to jest kopiowane ctrl+c potem ctrl+v z php my admina). Powiedzcie jak napisac ten program sprawdzajacy bo jak bede mial nazwy baz danych w zmiennej to sprobuje z inne strony napisac ten skrypt z dodawaniem rekordow. Powiedzcie jak ma wygladac ten sprawdzacz jakie sa bazy danych.
sztosz
JA bym spróbował tak:
  1. <?php
  2.  
  3.  
  4. $polaczenie = mysql_pconnect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: ' . mysql_error());
  5.  
  6. $wykaz_baz_danych = mysql_list_dbs($db);
  7. echo &#092;"Błąd w znajdowaniu baz:\".$mysql_error();
  8.  
  9. $ile = mysql_count_rows($wykaz_baz_danych);
  10.  
  11. for ($i=0; $i<$ile; $i++)
  12. {
  13. $wiersz = mysql_fetch_array ($wykaz_baz_danych);
  14. echo &#092;"baza : \".$wiersz[1].\"<BR />\";
  15. echo $wiersz[2].&#092;"<BR />\";
  16. }
  17. ?>


Ale mogłem coś poknocić
Ertai
Niestety podany skrypt zwracal nastepujace bledy


Notice: Undefined variable: db in /home/ertai/public_html/GRA/test.php on line 7

Warning: mysql_list_dbs(): supplied argument is not a valid MySQL-Link resource in /home/ertai/public_html/GRA/test.php on line 7

Notice: Undefined variable: mysql_error in /home/ertai/public_html/GRA/test.php on line 8

Fatal error: Call to undefined function: () in /home/ertai/public_html/GRA/test.php on line 8

Dlatego poprawilem go na taki:
  1. <?php
  2.  
  3.  
  4. $db = mysql_pconnect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: ' . mysql_error());
  5.  
  6. $wykaz_baz_danych = mysql_list_dbs($db) or die ('NIe znalazlem baz: '.mysql_error());
  7.  
  8.  
  9.  
  10. $ile = mysql_count_rows($wykaz_baz_danych);
  11.  
  12. for ($i=0; $i<$ile; $i++)
  13. {
  14. $wiersz = mysql_fetch_array ($wykaz_baz_danych);
  15. echo &#092;"baza : \".$wiersz[1].\"<BR />\";
  16. echo $wiersz[2].&#092;"<BR />\";
  17. }
  18. ?>


I teraz zwraca tylko jeden smile.gif mianowicie: Fatal error: Call to undefined function: mysql_count_rows() in /home/ertai/public_html/GRA/test.php on line 11.

Niestety nie wiem jak moge to poprawic aby dzialalo. Prosze o dalsza pomoc...
sztosz
Ojej dałem straszną plamę. Bardzo cie przepraszam bo nawe nie przejżałem kodu po wklepaniu. Przepraszam
  1. <?php
  2.  
  3. $ile = mysql_count_rows ($wykaz_baz_danych);
  4.  
  5. ?>


Zamień na mysql_num_rows
  1. <?php
  2. $ile = mysql_num_rows ($wykaz_baz_danych);
  3. ?>


I powinno zadziałać. Sorry za te babole sad.gif
Ertai
Poprawilem skrypt tak jak mowiles i dziala... znaczy sie no prawie kod jest nastepujacy:
  1. <?php
  2.  
  3.  
  4. $db = mysql_pconnect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: ' . mysql_error());
  5.  
  6. $wykaz_baz_danych = mysql_list_dbs($db) or die ('NIe znalazlem baz: '.mysql_error());
  7.  
  8.  
  9.  
  10. $ile = mysql_num_rows($wykaz_baz_danych);
  11.  
  12. if (!$ile) echo 'Zmienna ile nie istnieje';
  13.  
  14. for ($i=0; $i<$ile; $i++)
  15. {
  16. $wiersz = mysql_fetch_array ($wykaz_baz_danych);
  17. echo &#092;"baza : \".$wiersz[1].\"<BR />\";
  18. echo $wiersz[2].&#092;"<BR />\";
  19. }
  20. ?>


I wyskakuje ze zmienna ile nie istnieje. Co to oznacza? Ze wogole nie ma baz danych? Czy jest jakis inne tego powod? Jezeli ktos mialby czas to moge podac mu na gg albo mailem login i haslo na to konto na webd i zeby zobaczyl wszystko na zywca jak jest zrobione.
sztosz
  1. <?php
  2.  
  3. if ($haslo != $phaslo) {
  4. echo 'Haslo sie nie zgadza';
  5. }
  6.  
  7. $db=mysql_pconnect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: '. mysql_error());
  8.  
  9. $kurwa=mysql_selectdb(&#092;"ertai_phpbb1\");
  10. echo $kurwa;
  11.  
  12.  
  13. $zapytanie=&#092;"select nick from daymio where nick=$nick\";
  14.  
  15. $wynik=mysql_query($zapytanie);
  16.  
  17. if($wynik) {
  18. echo 'Taki nick juz istnieje';
  19. }
  20.  
  21. $zapytanie=&#092;"select e-mail from daymio where email=$email\";
  22. $wynik=mysql_query($zapytanie);
  23.  
  24. if($wynik)
  25. {
  26. echo 'Konto zostalo juz zalozone na ten email';
  27. }
  28.  
  29.  
  30.  
  31. $zapytanie = &#092;"insert into daymio (nick, email, zloto, poziom_kopalni, honor, dworzanie, gornicy, poziom_swiat
    y
  32. , murarze, robotnicy, sila_max, sila_tymczasowa, poziom_wojska, himitsu, naku, t
  33. ga, ludnosc_wolna, liczba_domow, klan, haslo)
  34.  
  35.  values ('$nick', '$email', 10000, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 100, 100, '$klan', '$haslo')&#092;";
  36. //Właśnie w następnej linijce wywala ten błąd a ja nie mam pojęcia dlaczego
  37. //Błąd to \"NO DATABASE SELECTED\";
  38. //sprawdzałem tak jek ertai, wszystko istnieje i baza danych i login i nick i tabe
  39. a sa poprawne.
  40. mysql_query($zapytanie); or die(mysql_error());
  41. echo ' DONE';
  42. ?>


Próbowałem z tym pogrzebać , błąd wywala tam gdzie komentarz. Co jest nie tak?
Ertai
Dzieki wielkie juz wszystko dziala smile.gif
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.