Autor | Zpráva | ||
---|---|---|---|
zdenek Profil |
ahoj, mám problém. nevíte kde mám chybu?
if ($kontrola==****) { mysql_connect("localhost", "root", "****"); mysql_select_db("root"); mysql_query("set names utf8"); $sql = mysql_query("UPDATE hlavni SET text=$text WHERE autor=´$id´"); předem děkuju za odpověď. Moderátor Davex: Doplnění původního titulku „editace záznamů v databázi“.
|
||
Webotikon Profil |
#2 · Zasláno: 30. 10. 2010, 12:01:40
|
||
quiet_user Profil |
#3 · Zasláno: 30. 10. 2010, 12:02:23
Pokud se přihlasuješ do localhostu, tak bez hesla, takže místo "****" nechat jen ""
PS: Pokud to tím není, napiš co Ti to píše za chybu. |
||
panther Profil |
#4 · Zasláno: 30. 10. 2010, 12:02:57
zdenek:
a co to dělá/nedělá a dělat/nedělat by mělo? Příště buď, prosím, konkrétnější. Vypiš si mysql_error(), máš syntaktickou chybu v dotazu. |
||
zdenek Profil |
#5 · Zasláno: 30. 10. 2010, 12:05:45
Webotikon:
„Vypíš si mysql_error () a zistíš sám. :-)“ to tam mám, ale zobrazí mi to jen práznou stránku. |
||
Webotikon Profil |
#6 · Zasláno: 30. 10. 2010, 12:06:16 · Upravil/a: Webotikon
zdenek:
„to tam mám, ale zobrazí mi to jen práznou stránku.“ Blbosť, ako si to zapísal? Pre istotu si zapni vypisovanie všetkých chybových hlášok: error_reporting (E_ALL); |
||
quiet_user Profil |
#7 · Zasláno: 30. 10. 2010, 12:08:15
if ($kontrola==****) { má dělat co? taky bys mohl říct kam se připojuješ a je nesmysl, aby ti mysql_error() nic nevypsalo |
||
zdenek Profil |
#8 · Zasláno: 30. 10. 2010, 12:09:44
Webotikon:
„Blbosť, ako si to zapísal?“ takhle: if ($kontrola==****) { mysql_connect("localhost", "root", "****"); mysql_select_db("root"); mysql_query("set names utf8"); $sql = mysql_query("UPDATE hlavni SET text=$text WHERE autor=´$id´"); if ($sql){ echo ("Text byl úspěšně vložen. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } else print(.mysql_error()); } |
||
zdenek Profil |
#9 · Zasláno: 30. 10. 2010, 12:12:31
quiet_user:
„má dělat co?“ posílám si kontrolu od admina, abych si ověřil, zda je to opravdu admin. jestli se $kontrola==můj kód, připoj se do databáze a updatuj záznam, kde se id=$id. |
||
Webotikon Profil |
#10 · Zasláno: 30. 10. 2010, 12:14:41
A toto ti čo vypíše?
$sql = mysql_query("UPDATE hlavni SET text=$text WHERE autor=´$id´") or die (mysql_error ()); |
||
Keeehi Profil |
#11 · Zasláno: 30. 10. 2010, 12:31:40 · Upravil/a: Keeehi
zdenek:
Máš tam chyby, jak v PHP, tak i SQL dotazu. if ($kontrola=="****") { else print(mysql_error()); Když tohle opravíš, měla by se ti konečně zobrazit chyba v SQL. Doufám, že víš, že místo hvězdiček tam má být přihlašovaní jméno. V té podmínce nevím co má být, ale ty by jsi to měl vědět. |
||
zdenek Profil |
#12 · Zasláno: 30. 10. 2010, 12:32:53
takhle vypadá celý zdrojový kód:
<?php $id = trim($_GET['id'];); $autor=$_POST['autor']; $text=$_POST['text']; $kontrola=$_POST['kontrola']; if (empty($autor)) { echo("Musíte vyplnit pole autor. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } elseif (empty($text)){ echo("Musíte vyplnit pole text. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } elseif (empty($kontrola)){ echo("Musíte vyplnit pole kontrola. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } else { if ($kontrola==****) { mysql_connect("localhost", "root", "*****"); mysql_select_db("root"); mysql_query("set names utf8"); $sql = mysql_query("UPDATE hlavni SET text=$text WHERE id=´$id´") or die (mysql_error ()); if ($sql){ echo ("Text byl úspěšně vložen. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } else echo (Vyskytla se chyba.); } else echo "Kontrola byla špatně zadána. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"; } ?> kde mám chybu? |
||
Keeehi Profil |
#13 · Zasláno: 30. 10. 2010, 12:35:31
řádky 21(PHP), 25(SQL), 31(PHP)
|
||
zdenek Profil |
#14 · Zasláno: 30. 10. 2010, 12:36:49
Keeehi:
„Když tohle opravíš, měla by se ti konečně zobrazit chyba v SQL.“ opět nic.... já fakt nevím... |
||
zdenek Profil |
#15 · Zasláno: 30. 10. 2010, 12:37:24
co mám na řádku 25?
|
||
Keeehi Profil |
#16 · Zasláno: 30. 10. 2010, 12:42:07
Tam je ta chyba v tom dotazu. Zatím mi to však přijde, že se ho to nepokusilo zatím ani jednou provést, neboť to vždy selže na úrovni PHP (syntax error).
|
||
zdenek Profil |
#17 · Zasláno: 30. 10. 2010, 12:44:11
a nevíš co s tím?
|
||
Keeehi Profil |
#18 · Zasláno: 30. 10. 2010, 12:46:37 · Upravil/a: Keeehi
Vím, ale mohl by jsi zkusit na to přijít sám.Nápověda: Jak se liší řetězec od čísla? Resp. co je potřeba navíc, když chci zapsat text, než když chci zapsat "jen" číslo?
Pokud máš na mysli ty chyba v php, tak je opravit. Vlastně všechny chyby (Jak PHP tak i v SQL) jsou ty, že si nedáváš pozor při zapisování řetězců. |
||
zdenek Profil |
#19 · Zasláno: 30. 10. 2010, 12:55:37
já se omlouvám, ale opravdu nevím. jsem zoufalý, prosím o pomoc..
|
||
zdenek Profil |
#20 · Zasláno: 30. 10. 2010, 14:03:04
mohl bych vás požádat o alespoň část kódu? pracuju na tom už asi 3 měsíce, a nevím si s tím rady...
|
||
zdenek Profil |
#21 · Zasláno: 30. 10. 2010, 17:32:57
ještě připomínka. v kódu
if ($kontrola=="4321") { mysql_connect("localhost", "root", "****"); mysql_select_db("root"); mysql_query("set names utf8"); $sql ="UPDATE hlavni SET text=$text WHERE id=´$id´"; $result = mysql_query($sql); or die (mysql_error ()); je u té kontroly součíslí :4321. je nějaký rozdíl, mezi tím, jestli tam bude text, nebo čísla? |
||
panther Profil |
#22 · Zasláno: 30. 10. 2010, 17:46:26
zdenek:
ta chybová hlášení PHP ignoruješ schválně? Na 6. řádku máš další z řady syntaktických chyb. A ta v tom dotazu stále trvá. „je nějaký rozdíl, mezi tím, jestli tam bude text, nebo čísla?“ zkus si, jaký je rozdíl mezi echo 1234; echo text; |
||
zdenek Profil |
#23 · Zasláno: 30. 10. 2010, 17:56:12
panther:
„ta chybová hlášení PHP ignoruješ schválně? Na 6. řádku máš další z řady syntaktických chyb. A ta v tom dotazu stále trvá.“ já bych rád to změnil, pomocí nějakých vypsaných chyb, ale mě se žádný nezobrazujou... tam je ten problém |
||
panther Profil |
#24 · Zasláno: 30. 10. 2010, 18:04:42
zdenek:
tak minimálně nečteš, co je ti tu razeno. Už to tu jedno padlo. [#6] |
||
zdenek Profil |
#25 · Zasláno: 30. 10. 2010, 19:15:26
a kam se má vložit error_reporting (E_ALL);??
|
||
panther Profil |
#26 · Zasláno: 30. 10. 2010, 19:28:16
zdenek:
na začátek souboru. |
||
zdenek Profil |
#27 · Zasláno: 30. 10. 2010, 19:47:09
a má tam být echo??
|
||
panther Profil |
#28 · Zasláno: 30. 10. 2010, 19:49:33
zdenek:
podívej se do manuálu, jak se ta funkce používá. Mě fakt nebaví pořád dokola odpovídat na základní věci, které si můžeš zkusit nebo vyčíst z manuálu. Kdyby tam echo mělo být, bylo by zmíněno i v [#6]; |
||
zdenek Profil |
#29 · Zasláno: 30. 10. 2010, 20:01:22
sice budu vypadat jako magor, ale zase se mi nic nezobrazilo. já už opravdu nevím.
|
||
panther Profil |
#30 · Zasláno: 30. 10. 2010, 20:06:17 · Upravil/a: panther
zdenek:
<?php error_reporting(E_ALL); $id = trim($_GET['id'];); $autor=$_POST['autor']; $text=$_POST['text']; $kontrola=$_POST['kontrola']; if (empty($autor)) { echo("Musíte vyplnit pole autor. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } elseif (empty($text)){ echo("Musíte vyplnit pole text. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } elseif (empty($kontrola)){ echo("Musíte vyplnit pole kontrola. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } else { if ($kontrola=='****') { mysql_connect("localhost", "root", "*****"); mysql_select_db("root"); mysql_query("set names utf8"); $sql = mysql_query("UPDATE hlavni SET text='$text' WHERE id=" . (int)$id) or die (mysql_error ()); if ($sql){ echo ("Text byl úspěšně vložen. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"); } else echo ('Vyskytla se chyba.'); } else echo "Kontrola byla špatně zadána. Vraťte se <a href=javascript:self.history.back(-1); style=color:black>zpět</a>"; } ?> U echa jsou ty závorky zbytečné, staší uvozovky/apostrofy. Textový vstup do DB by měl být ošetřen, tedy mysql_real_escape_string() pro řetězce, (int) pro čísla.
|
||
Téma pokračuje na další straně.
|
0