Autor | Zpráva | ||
---|---|---|---|
HolyDday Profil * |
#1 · Zasláno: 22. 8. 2007, 13:20:48
Sice se může zdát, že se téma týká spíše databáze, není to tak. Chybu budu mít nejspíše v PHP kódu. Našel jsem problém s updatováním jedné položky v databázi. Zatím nikdy jsem podobný problém neměl, a to postupuji stejně jako u updatování jiných položek databáze. Pro lepší představu kód:
<script> Soubor, který data zpracovává: <? Má se změnit template, který používá registrovaný a přihlášený uživatel. Má se změnit číslo v databázi (design(int,2)), které určuje číslo používaného templatu. Problém je v tom, že se položku podaří updatovat často až napodruhé. Někdy se neupdatuje vůbec, někdy se updatuje, ale do DB se zapíše 0. Napodruhé už to bývá v pořádku. Díky za případné rady :) |
||
Apostolus Profil |
#2 · Zasláno: 22. 8. 2007, 13:37:21
Nelíbí se mi $update5, nemělo by to být:
$update5 = "UPDATE rs_uzivatele SET design = '$design' WHERE uzivatel = '$jmeno'"; a ne : $update5 = "UPDATE rs_uzivatele SET design = '$design' WHERE uzivatel like '$jmeno'"; ? |
||
Alphard Profil |
#3 · Zasláno: 22. 8. 2007, 13:43:50 · Upravil/a: Alphard
ani jsem to nečetl celé, takže pro začátek
nevidím session_start(); <? doporučuji nahradit za <?php (záleží to na nastavení, může to fungovat, ale nemusí, při změně hostingu by seto mohlo hodit) WHERE uzivatel LIKE '$jmeno' proč to like? $update = "..."; $update2 = "..."; $update3 = "..."; $update4 = "..."; $update5 = "UPDATE rs_uzivatele SET design = '$design' WHERE uzivatel LIKE '$jmeno'"; MySQL_Query($update); MySQL_Query($update2); WTF? kde bereš $jmeno, atd.? |
||
HolyDday Profil * |
#4 · Zasláno: 22. 8. 2007, 13:44:31
Mno myslel jsem, že u řetězců se používá LIKE, u čísel =. Každopádně u $update2,3,4 mám taky LIKE a funguje to správně.
|
||
HolyDday Profil * |
#5 · Zasláno: 22. 8. 2007, 13:46:03
$jmeno je z formuláře. Vím, že by to mělo být $_POST["jmeno"], ale všechny proměnné mi fungují, takže jsem neviděl důvod je přepisovat do podoby $_POST["..."]
|
||
HolyDday Profil * |
#6 · Zasláno: 22. 8. 2007, 13:49:38
session_start(); tam je, jen trochu složitěji. Tento soubor je součástí souboru index.php, do kterého je includován soubor zajišťující přihlašování a odhlašování, to funguje. V tomhle problém není.
|
||
HolyDday Profil * |
#7 · Zasláno: 22. 8. 2007, 13:53:16
Sice mi to vždy fungovalo, ale zkusím tedy nahradit LIKE a pak napíšu. Díky za rady.
|
||
HolyDday Profil * |
#8 · Zasláno: 22. 8. 2007, 14:03:56
Tak už jsem chvilku myslel, že to pomohlo, ale opět jsem našel v databázi hodnotu 0. V jednu chvíli jsem změnil ve formuláři metodu odeílání na GET. Data se odeslala vždy správně, žádná 0, takže tady by problém být neměl.
|
||
Apostolus Profil |
#9 · Zasláno: 22. 8. 2007, 16:06:32
mno tak si můžeš přepsat $jmeno = $_POST['jmeno']; takže i tak bych to udělal...
pak mi příjde tahle konstrukce dost neohrabaná, takže bych hledal chybu tady...
Mohl by si udělal kontrolu nejdřív a pak všechno updatovat najednou... $update = "UPDATE rs_uzivatele SET neco = neco_jineho, neco1 = neco_jineho1 WHERE uzivatel = '$jmeno'"; |
||
HolyDday Profil |
#10 · Zasláno: 22. 8. 2007, 16:33:27
S tím $_POST['jmeno']; máš asi pravdu. Jenom je zajímavý, že ten skript občas funguje, občas ne.
|
||
Apostolus Profil |
#11 · Zasláno: 22. 8. 2007, 18:27:44 · Upravil/a: Apostolus
Takže to funguje?
pokud ne, kde bereš proměnný $*_zmenit? |
||
HolyDday Profil |
#12 · Zasláno: 22. 8. 2007, 19:13:32
Asi bude lepší, když vypíšu kompletní formulář:
<form action="<? echo $sekce; ?>-profil-uprav2" method="post" ENCTYPE="multipart/form-data" onsubmit="return kontrolaDat(this)"> |
||
HolyDday Profil |
#13 · Zasláno: 22. 8. 2007, 19:15:10
Není to tu celé, takže pokračování
<tr><td>Váš web: </td><td><input type="text" name="web" size="20" maxlength="40" value="<?echo $zaznam["web"];?>"></td><td> (max. 40 znaků)</td></tr> |
||
Apostolus Profil |
#14 · Zasláno: 22. 8. 2007, 19:30:49
to bude těžký, je tam spousta nepotřebných věcí jako je javascript a člověk se v tom ztrácí. dej mi ICQ, proberem to na něm, takhle to nepůjde
|
||
HolyDday Profil |
#15 · Zasláno: 22. 8. 2007, 21:06:34
341266304
|
||
HolyDday Profil |
#16 · Zasláno: 22. 8. 2007, 21:10:02
btw můžete si to ozkoušet na webu http://gothic.herniweb.cz -> Registrace. vaše profily pak klidně smažu
|
||
Časová prodleva: 17 let
|
0