Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapytanie problem
breaked
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


Witam,
mam problem z wykonaniem zapytania.

oto fragment kodu pliku install.php
  1. print "Tworzenie bazy danych...";
  2. require '../db/db.php';
  3. $sqlfilename = "../install/mysql.sql";
  4. $sqlfile = fopen($sqlfilename, "r");
  5. $sqltext = fread($sqlfile, filesize($sqlfilename));
  6. fclose($sqlfile);
  7. dbconnection();
  8. $query = mysql_query($sqltext) or die ("Bład: Nie można wyprowadzić zapytania do bazy danych");
  9. print "Zakończone<br/>";


plik db.php
  1. <?php
  2.  
  3. require '../includes/config.php';
  4.  
  5. function dbconnection()
  6. {
  7. $db_connect = mysql_connect($_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass']) or die ("Błąd: Nie można nawiązać połączenia z bazą danych!");
  8. $db_select = mysql_select_db($_POST['dbname']) or die ("Błąd: Nie można wybrać schematu bazy danych!");
  9. }
  10.  
  11. ?>


plik mysql.sql
  1. CREATE TABLE `aktywacja` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `user` varchar(15) NOT NULL DEFAULT '',
  4. `email` varchar(60) NOT NULL DEFAULT '',
  5. `pass` varchar(32) NOT NULL DEFAULT '',
  6. `aktyw` int(11) NOT NULL DEFAULT '0',
  7. `refs` int(11) NOT NULL DEFAULT '0',
  8. `ip` varchar(50) NOT NULL DEFAULT '',
  9. `data` date NOT NULL DEFAULT '0000-00-00',
  10. `lang` varchar(3) NOT NULL DEFAULT 'pl',
  11. PRIMARY KEY (`id`),
  12. KEY `user` (`user`)
  13. ) TYPE=MyISAM;
  14.  
  15. CREATE TABLE `players` (
  16. `id` int(11) NOT NULL AUTO_INCREMENT,
  17. `user` varchar(20) NOT NULL DEFAULT '',
  18. `email` varchar(60) NOT NULL DEFAULT '',
  19. `pass` varchar(32) NOT NULL DEFAULT '',
  20. `rank` varchar(20) NOT NULL DEFAULT '',
  21. KEY `user` (`user`),
  22. KEY `email` (`email`),
  23. KEY `id` (`id`)
  24. ) TYPE=MyISAM;


a w pliku config.php znajduje się host, użytkownik, hasło do bazy danych i nazwa.

przy włączaniu pliku install w trakcie wpisywania zapytanie wyskakuje błąd Nie można wyprowadzić zapytania do bazy danych"
coś nie tak jest z wprowadzeniem zapytania, bo łączy się dobrze...

Ten post edytował breaked 20.10.2010, 13:48:30
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




Masz blad zapytania. Wyswietl go sobie a dowiesz sie co nie pasuje twojej bazie.
Tu masz napisane jak wyswietlic blad zapytania:
Temat: Jak poprawnie zada pytanie
Go to the top of the page
+Quote Post
breaked
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


taki błąd wyskakuje:


Tworzenie bazy danych...BŁĄD: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 'CREATE TABLE `aktywacja` ( `id` int(11) NOT NULL auto_increment, `user`' at line 1

znam ang, ale tego nie moge ogarnąć ;P
pomóżcie (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




W linku co ci podałem miałeś też napisane, ze masz wyswietlic sobie te zapytanie i zobaczyc jak wygląda a jesli tobie to nic nie mowi to nam moze coś powie.
Pokaz nam wiec jak wyglada to zapytanie, które próbujesz wykonac

edit: ale moja wróżka podpowiada mi ze ty w pliku masz kilka zapytan i próbujesz je wykonac wszystkie na raz przy pomocy jednego mysql_query(). A tak nie mozna.... (IMG:style_emoticons/default/smile.gif)

edit2:
a już widzę treśc zapytania.... wykonujesz kilka zapytan przy pomocy mysql_query a tak nie mozna

edit3:
a co to za "\" na początku pliku mysql.sql ?
Go to the top of the page
+Quote Post
breaked
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


te "\" pojawiło się niechcący podczas kopiowania pliku na forum, zaraz poprawię (IMG:style_emoticons/default/winksmiley.jpg)

to w takim razie jak podzielić te zapytania ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




Ten plik mysql.sql to ty tworzysz? To odzielaj w nim zapytania np. linią
######################
a następnie rob explode() na zawartosci pliku po tej linii i w tablicy otrzymasz pojednyczne zapytania. Nastepnie kazde z tych zapytan wykonaj przy pomocy mysql_query
Go to the top of the page
+Quote Post
breaked
post
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


  1. print "Tworzenie bazy danych...";
  2. require '../db/db.php';
  3. $sqlfilename = "../install/mysql.sql";
  4. $sqlfile = fopen($sqlfilename, "r");
  5. $sqltext = fread($sqlfile, filesize($sqlfilename));
  6. fclose($sqlfile);
  7. dbconnection();
  8. $table = explode("#", $sqltext);
  9. $query = count($table);
  10. for ($q = 0; $q < $query; $q++)
  11. {
  12. mysql_query($table[$q]) or die ('BŁAD:'.mysql_error());
  13. }
  14. print "Zakończone<br/>";


czyli coś takiego ? pytam, bo się już pogubiłem.

Ten post edytował breaked 20.10.2010, 19:39:34
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




Cytat
czyli coś takiego ?
No jeśli zapytania oddzielasz tylko jednym znakiem # to tak, coś takiego.
Cytat
pytam, bo się już pogubiłem (IMG:style_emoticons/default/tongue.gif)
I niby czemu ma służyć ten język na koncu? Nie mówię oczywiście o chamstwie/lekcewazeniu z Twojej strony bo to dość oczywiste (temu przecież służy język pokazywany osobie, która próbuje ci pomóc). Jest jeszcze jakis inny powód?
Go to the top of the page
+Quote Post
breaked
post
Post #9





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


Tego emotka piszę z przyzwyczajenia, bo często go stawiam (IMG:style_emoticons/default/winksmiley.jpg)
Wybacz, jeżeli Cię to uraziło.
I dziękuję za pomoc (IMG:style_emoticons/default/smile.gif)

nadal się ten sam błąd pojawia. co robię źle ? ;/

Ten post edytował breaked 20.10.2010, 19:52:56
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




  1. for ($q = 0; $q < $query; $q++)
  2. {
  3. echo $table[$q];
  4. mysql_query($table[$q]) or die ('BŁAD:'.mysql_error());
  5. }

Co się wyswietla?
Go to the top of the page
+Quote Post
breaked
post
Post #11





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


Kod
Tworzenie bazy danych...??CREATE TABLE `aktywacja` ( `id` int(11) NOT NULL auto_increment, `user` varchar(15) NOT NULL default '', `email` varchar(60) NOT NULL default '', `pass` varchar(32) NOT NULL default '', `aktyw` int(11) NOT NULL default '0', `refs` int(11) NOT NULL default '0', `ip` varchar(50) NOT NULL default '', `data` datetime NOT NULL default '', `lang` varchar(3) NOT NULL default 'pl', PRIMARY KEY (`id`), KEY `user` (`user`) ) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=1; BŁAD: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 '?CREATE TABLE `aktywacja` ( `id` int(11) NOT NULL auto_increment, `user`' at line 1


edit:
do pliku mysql.sql dodałem na końcu zapytania PACK_KEYS=0 AUTO_INCREMENT=1 oraz zmieniłem date na datetime

edit2:
ogólnie zmieniłem lekko mysql.sql . zapytania ciągle są dwa. z grubsza jest podobny (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował breaked 20.10.2010, 20:48:59
Go to the top of the page
+Quote Post
nospor
post
Post #12





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




No nie widzisz ze przed zapytaniem pojawiają ci się znaki zapytania? To one teraz powodują błąd
Go to the top of the page
+Quote Post
breaked
post
Post #13





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


tylko nie wiem co je wyświetla. w oba plikach ich nie ma...
Go to the top of the page
+Quote Post
nospor
post
Post #14





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




Moze trim() pomoze
  1. for ($q = 0; $q < $query; $q++)
  2. {
  3. $zap = trim($table[$q]);
  4. echo $zap;
  5. mysql_query($zap) or die ('BŁAD:'.mysql_error());
  6. }
Go to the top of the page
+Quote Post
breaked
post
Post #15





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


Dalej to samo, tylko bez tych znaków zapytania.

Kod
Tworzenie bazy danych...??CREATE TABLE `aktywacja` ( `id` int(11) NOT NULL auto_increment, `user` varchar(15) NOT NULL default '', `email` varchar(60) NOT NULL default '', `pass` varchar(32) NOT NULL default '', `aktyw` int(11) NOT NULL default '0', `refs` int(11) NOT NULL default '0', `ip` varchar(50) NOT NULL default '', `data` datetime NOT NULL default '0000-00-00 00:00:00', `lang` varchar(3) NOT NULL default 'pl', PRIMARY KEY (`id`), KEY `user` (`user`) ) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=1;BŁAD: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 '?CREATE TABLE `aktywacja` ( `id` int(11) NOT NULL auto_increment, `user`' at line 1


edit:
ja to robię na localhoście. to może być przyczyną ? wg mnie nie, ale wole się upewnić.

Ten post edytował breaked 21.10.2010, 06:30:54
Go to the top of the page
+Quote Post
nospor
post
Post #16





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




Wygląda jakbyś miał tam jeszcze jakieś znaki, niewidoczne dla oka ludzkiego (IMG:style_emoticons/default/winksmiley.jpg)

Dla pewności wykonaj w mysql_query() z palucha to pierwsze zapytanie. Jeśli ci pójdzie to na 100% coś tam w tym pliku jeszczez jest. Może BOM?

nie, localhost nie ma tu nic do gadania
Go to the top of the page
+Quote Post
breaked
post
Post #17





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


jak wpisałem ręcznie do mysql_query to zaszło.
w pma pojawiło się to co trzeba (IMG:style_emoticons/default/winksmiley.jpg)
przedtem jeszcze konwertowałem na bez BOM'a. nic nie dało.
teraz lece do szkoły, potem jeszcze pokombinuje, chociaż wydaje mi się, że coś źle odczytuje ten plik...

edit:
już prawie działa (IMG:style_emoticons/default/smile.gif)
ale ciągle się pojawia że albo zapytanie jest puste, albo że ta tabela już jest..
jak wyświetliłem zawartość $query to 41 pokazał, nie jestem pewien, ale chyba powinno być 2 ? bo dwa zapytania mam...

edit2:
i tabela aktywacja się pojawia, ale ta druga nie...

edit3:
usunąłem wyświetlanie błędów i działa (IMG:style_emoticons/default/smile.gif)
konkretniej to wywaliłem or die

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


Nie chcę zakładać nowego tematu, tylko znowu napiszę tutaj. Mam problem może niekoniecznie z zapytaniem, ale z MySQL.

oto fragment pliku register.php
  1. else
  2. {
  3. $wynik = mysql_query("SELECT * FROM $tabela WHERE login='$login'");
  4. if (mysql_num_rows($wynik) <> 0) {
  5. $blad++;
  6. $smarty -> assign('error2', 'Podana nazwa użytkownika została już zajęta.');
  7. }
  8. }



i wyskakuje mi taki błąd:
mysql_num_rows(): supplied argument is not a valid MySQL result resource in [...]/register.php on line 37

nie wiem o co chodzi, kod jest na pewno poprawny.

Ten post edytował breaked 30.10.2010, 10:55:26
Go to the top of the page
+Quote Post
nospor
post
Post #18





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




masz blad zapytania. Wyswietl go. Jak wyswietlac bledy zapytania oraz same zapytania masz napisane tu:
Temat: Jak poprawnie zada pytanie
(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
breaked
post
Post #19





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.10.2010

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


ok. już mam.
zmienna $tabela była źle zdefiniowana (IMG:style_emoticons/default/smile.gif)

Ten post edytował breaked 30.10.2010, 13:11:16
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.08.2025 - 02:38