| Autor | Zpráva | ||
|---|---|---|---|
| merlinok Profil |
#1 · Zasláno: 4. 8. 2008, 16:22:36
Dobrý den,
včera jsem jen tak něco zkoušel a pořád nemůžu přijít na to kde je chyba.... píše mi to tohle.... Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in X:\xxx\test.php on line 33 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 'character WHERE name=mordor' at line 1 můj kód: $name = $login;
$info = "SELECT * FROM character WHERE name=$name";
$cid = mysql_connect("localhost","root","xxxx") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$retid = mysql_query($info);
$row = mysql_fetch_array($retid);
echo $row['job'];
echo MySQL_Error();a $login = mordor |
||
| Marek_k Profil * |
#2 · Zasláno: 4. 8. 2008, 16:27:59
echo $row[0]['job']; ???
|
||
| merlinok Profil |
#3 · Zasláno: 4. 8. 2008, 16:31:14
Tak jsem to zkusil, ale nejde to... asi bude chyba někde jinde :(
|
||
| Marek_k Profil * |
#4 · Zasláno: 4. 8. 2008, 16:33:24
chyba ve spojení, co je řádek 33?
Zkus dát to name do apostrofů `name` |
||
| Joker Profil |
#5 · Zasláno: 4. 8. 2008, 16:34:52
Chybí tam uvozovky.
Dále "character" je rezervované slovo, takže by za prvé mělo být ve zpětných apostrofech a za druhé bylo lepší se mu vyhnout při pojmenovávání tabulek $info = 'SELECT * FROM `character` WHERE name="'.$name.'"'; |
||
| Marek_k Profil * |
#6 · Zasláno: 4. 8. 2008, 16:35:04
Zkus
$info = " SELECT * FROM `character` WHERE `name`=".$name." "; |
||
| merlinok Profil |
#7 · Zasláno: 4. 8. 2008, 16:37:54 · Upravil/a: merlinok
Tak jsem to zkusil, a teď mi to píše další chybu.
Unknown column 'mordor' in 'where clause' řádek 33 je $row = mysql_fetch_array($retid); PS: Nikdy sem neviděl stránku kde by odepsali na můj dotaz do 10 minut ... |
||
| Joker Profil |
#8 · Zasláno: 4. 8. 2008, 16:38:03
Mimochodem, to je názorná ukázka toho, jaké výhody přináší u databáze s anglickými rezervovanými slovy pojmenovávat sloupce a tabulky česky.
|
||
| Marek_k Profil * |
#9 · Zasláno: 4. 8. 2008, 16:41:11
patrně máš register_globals na ON, bejt tebou tak proměnnou $name nepoužiju, nechám ten $login a jak říká Joker, plně bych přejmenoval sloupec character.
|
||
| merlinok Profil |
#10 · Zasláno: 4. 8. 2008, 16:42:49
tak už jsem to přejmenoval a ty register_globals... někde jsem to už viděl ale nevim jak to vypnout (jestliže je to zapnutý)
|
||
| Marek_k Profil * |
#11 · Zasláno: 4. 8. 2008, 16:43:48
To je nastavení serveru, který ty asi moc neovlivníš. Funguje to?
|
||
| merlinok Profil |
#12 · Zasláno: 4. 8. 2008, 16:47:17
tak jsem zjistil že mám register_globals zapnutý... ale jinak to nefunguje... a kdybyste poradily jak je vypnout budu rád...
|
||
| Marek_k Profil * |
#13 · Zasláno: 4. 8. 2008, 16:48:03
napiš sem, jak jsi přesně napsal ten příkaz $info = ...
|
||
| Marek_k Profil * |
#14 · Zasláno: 4. 8. 2008, 16:49:16
V tomhle případě asi na vině register_globals nebudou, asi jsi nedal všechny zpětný apostrofy, ale obecně se doporučuje mít register_globals vypnutý. Musíš zažádat správce serveru.
|
||
| merlinok Profil |
#15 · Zasláno: 4. 8. 2008, 16:49:42
" SELECT * FROM `charakter` WHERE `name`=".$login." "; |
||
| merlinok Profil |
#16 · Zasláno: 4. 8. 2008, 16:51:05
já bych správce serveru požádal... ale já to prostě nevim... PS: já jsem správce :(
|
||
| Marek_k Profil * |
#17 · Zasláno: 4. 8. 2008, 16:51:17
Napiš to opačně, jak psal Joker
' SELECT * FROM `charakter` WHERE `name`='.$login.''; Kdyby to nepomohlo, hol sem musíš dát celej script |
||
| merlinok Profil |
#18 · Zasláno: 4. 8. 2008, 16:56:54
můj celej skript je tohle:
$info = ' SELECT * FROM `charakter` WHERE `name`='.$login.'';
$cid = mysql_connect("localhost","root","petrpetr") or die(mysql_error());
mysql_select_db("testgame") or die(mysql_error());
$retid = mysql_query($info);
$row = mysql_fetch_array($retid);
echo MySQL_Error();
a chybová hláška se vůbec nezměnila... ani potom co jsem změnil to $info |
||
| Alphard Profil |
#19 · Zasláno: 4. 8. 2008, 16:58:14
u Jokera jste asi nepostřehli apostrofy kolem hodnoty za where
napiš to takhle: $info = "SELECT * FROM `character` WHERE name='".$name."'"; |
||
| Marek_k Profil * |
#20 · Zasláno: 4. 8. 2008, 16:59:27
Předtím $infem máš co nahoře?
Hlášku to píše pořád tuhle? Unknown column 'mordor' in 'where clause' |
||
| Marek_k Profil * |
#21 · Zasláno: 4. 8. 2008, 17:00:18
u Jokera jste asi nepostřehli apostrofy kolem hodnoty za where
napiš to takhle: $info = "SELECT * FROM `character` WHERE name='".$name."'"; Pravda |
||
| merlinok Profil |
#22 · Zasláno: 4. 8. 2008, 17:01:00
před tím infem mám už jen samý HTML a
$cfgProgDir = 'phpSecurePages/'; include($cfgProgDir . "secure.php"); |
||
| merlinok Profil |
#23 · Zasláno: 4. 8. 2008, 17:02:19
Tak mockrát vám děkuji, moc moc, už to funguje... njn apostrofy :D
|
||
|
Časová prodleva: 17 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0