Autor | Zpráva | ||
---|---|---|---|
pito Profil |
#1 · Zasláno: 6. 10. 2008, 12:38:11
zdravim,
Mam problem.Kdyz se uzivatel prihlasi tak mu najede menu je tam nastaveni kde si muze zmenit udajeý,ale v tom je ten problem vubec mi to nefunkuje. Zde je zmena osobnich udaju: account.php <? require "db.php"; $vyber = MySQL_Query("SELECT * FROM user WHERE id = " . $_SESSION['id']) or die(mysql_error()); while ($zaznam2=MySQL_Fetch_Array($vyber)): echo "<form action='account_zpracuj.php' method='post'> <input type='hidden' name='sent' value=''/>"; echo "<table class='table_profil' align='center' WIDTH='400'>"; echo "<tr><td class='zvyraznit' width=100px >Přezdívka:</td> <td><b><input type='text' name='login' value='".$zaznam2['login']."' disabled></b></td> </tr> <td class='zvyraznit'>Jméno:</td> <td><input type='text' name='jmeno' value='".$zaznam2['jmeno']."'></td> </tr> <tr> <td class='zvyraznit'>Příjmení:</td> <td><input type='text' name='prijmeni' value='".$zaznam2['prijmeni']."'></td> </tr> <tr> <td class='zvyraznit'>Národnost:</th> <td><img src='tip-liga_soubory/flags/".$zaznam2['zem'].".png'></td> </tr> <tr> <td class='zvyraznit'>Datum narození:</td> <td><input type='text' name='den' value='".$zaznam2['den']."' size='5'>.<input type='text' name='mesic' value='".$zaznam2['mesic']."' size='5'>.<input type='text' name='rok' value='".$zaznam2['rok']."' size='10'></td> </tr> <tr> <td class='zvyraznit'>Bydliště</td> <td><input type='text' name='bydliste' value='".$zaznam2['bydliste']."'></td> </tr> <tr> <td class='zvyraznit'>ICQ:</td> <td><input type='text' name='icq' value='".$zaznam2['icq']."'></td> </tr> <tr> <td class='zvyraznit'>Oblíbeny sport:</td> <td><input type='text' name='sport' value='".$zaznam2['sport']."' size='40'></td> </tr> <tr> <td class='zvyraznit'>Datum registrace:</td> <td>".$zaznam2['last_login']."</td> </tr>"; echo "</table>"; echo "<br><center><input type='submit' name='send' value='Změnit údaje'/></center> </form>"; endwhile; ?> a zde je script ktery to zpracuje: account_zpracuj.php <?php if(isset($_POST['sent'])) { $jmeno = htmlspecialchars($_POST['jmeno']); $prijmeni = htmlspecialchars($_POST['prijmeni']); $den = htmlspecialchars($_POST['den']); $mesic = htmlspecialchars($_POST['mesic']); $rok = htmlspecialchars($_POST['rok']); $bydliste = htmlspecialchars($_POST['bydliste']); $icq = htmlspecialchars($_POST['icq']); $sport = htmlspecialchars($_POST['sport']); $result=mysql_query("UPDATE user set jmeno='".$jmeno."', prijmeni='".$prijmeni."', den='".$den."', mesic='".$mesic."', rok='".$rok."', bydliste='".$bydliste."', icq='".$icq."', sport='".$sport."' WHERE id ='".$_SESSION['id']); //zapíšeme nové údaje do řádku podle ID $result=mysql_query($vloz); //a přesměrujeme na zobrazení článků echo '<script type="text/javascript" for="window" event="onLoad()"> <!-- window.location.href="profil.php" // --> </script>'; } ?> no a pise mi to chybu: 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 '' at line 1 nevim si rady co muze byt spatne. |
||
ninja Profil |
#2 · Zasláno: 6. 10. 2008, 12:40:45
Co asi tak muze byt spatne? Preci SQL dotaz. Zkuste si jej vypsat pres echo a uvidite, ze na konci chybeji uvozovky:
... WHERE id ='".$_SESSION['id']); |
||
Sicario Profil * |
#3 · Zasláno: 6. 10. 2008, 12:50:01
ninja
Nebo prebyvaji na zacatku:-) pito Presmerovani lze udelat efektivneji v PHP: header('Location: http://.../profil.php');[/i] |
||
pito Profil |
#4 · Zasláno: 6. 10. 2008, 13:00:28
tak jsem to udelal takhle
<?php require "db.php"; if(isset($_POST['sent'])) { $jmeno = htmlspecialchars($_POST['jmeno']); $prijmeni = htmlspecialchars($_POST['prijmeni']); $den = htmlspecialchars($_POST['den']); $mesic = htmlspecialchars($_POST['mesic']); $rok = htmlspecialchars($_POST['rok']); $bydliste = htmlspecialchars($_POST['bydliste']); $icq = htmlspecialchars($_POST['icq']); $sport = htmlspecialchars($_POST['sport']); $result=mysql_query("UPDATE user set jmeno='".$jmeno."', prijmeni='".$prijmeni."', den='".$den."', mesic='".$mesic."', rok='".$rok."', bydliste='".$bydliste."', icq='".$icq."', sport='".$sport."' WHERE (id=".$_SESSION['id'].")"); //zapíšeme nové údaje do řádku podle ID $result=mysql_query($vloz); //a přesměrujeme na zobrazení článků header ("Location: index.php?id=profil"); } ?> chybu uz to nepise ale nechce to prepsat v db |
||
Perry Profil |
#5 · Zasláno: 6. 10. 2008, 15:58:28
Zkus kolem vsech jmen sloupcu napsat `user`, `jmeno`, `prijemni` atd.
|
||
Andre Profil |
#6 · Zasláno: 6. 10. 2008, 19:09:18
Zkus jenom napsat
mysql_query("UPDATE user set jmeno='".$jmeno."', prijmeni='".$prijmeni."', den='".$den."', mesic='".$mesic."', rok='".$rok."', bydliste='".$bydliste."', icq='".$icq."', sport='".$sport."' WHERE id='".$_SESSION['id']."'"); |
||
pito Profil |
#7 · Zasláno: 6. 10. 2008, 21:11:59
napsal jsem:
$result=mysql_query("UPDATE user set 'jmeno', 'prijmeni', 'den', 'mesic', 'rok', 'bydliste', 'icq', 'sport' WHERE (id=".$_SESSION['id'].")"); a porad nic furt stejne nechce to prepsat |
||
Amunak Profil |
#8 · Zasláno: 6. 10. 2008, 21:30:22
nemáš třeba špatnou session?
|
||
yFang Profil |
#9 · Zasláno: 6. 10. 2008, 21:32:29
pito
Ale tady v tom poslednim nic neměníš. Zkus si vypsat mysql_error() a uvidíš, co ti to napíše. |
||
pito Profil |
#10 · Zasláno: 6. 10. 2008, 22:11:26
vypsalo to:
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 ''jmeno', 'prijmeni', 'den', 'mesic', 'rok', 'bydliste', 'icq', ' |
||
yFang Profil |
#11 · Zasláno: 7. 10. 2008, 09:53:18
pito
No vidíš, řekl bych, že by to mělo být tak, jak psal Andre. |
||
BetaCam Profil |
#12 · Zasláno: 7. 10. 2008, 10:02:55
yFang
„No vidíš, řekl bych, že by to mělo být tak, jak psal Andre.“ Ano až nato, ID bude s velkou pravděpodobností integer a proto by nemělo být v uvozovkách. |
||
yFang Profil |
#13 · Zasláno: 7. 10. 2008, 10:29:06
BetaCam
Kde tam je nějaké id v uvozovkách? |
||
Andre Profil |
#14 · Zasláno: 7. 10. 2008, 15:58:51
Nikde sem ale neviděl že by si měl něco uložené v $_SESSION["ID"]
|
||
pito Profil |
#15 · Zasláno: 7. 10. 2008, 16:54:02
to nic neresi pomozte jak na to aby mi to prepsalo data v db.
|
||
yFang Profil |
#16 · Zasláno: 7. 10. 2008, 21:31:49
Nemělo by být na začátku skriptu
session_start(); |
||
Champion Profil |
#17 · Zasláno: 9. 10. 2008, 15:13:16 · Upravil/a: Champion
Skus takto:)
$result = mysql_query("UPDATE `user` SET `jmeno`='$jmeno', `prijmeni`='$prijmeni', `den`='$den', `mesic`='$mesic', `rok`='$rok', `bydliste`='$bydliste', `icq`='$icq', `sport`='$sport"' WHERE `id`='".$_SESSION['id']."); a samozrejme na začiatku to session_start(); |
||
Časová prodleva: 16 let
|
0