Autor Zpráva
pito
Profil
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
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 *
ninja
Nebo prebyvaji na zacatku:-)

pito
Presmerovani lze udelat efektivneji v PHP: header('Location: http://.../profil.php');[/i]
pito
Profil
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
Zkus kolem vsech jmen sloupcu napsat `user`, `jmeno`, `prijemni` atd.
Andre
Profil
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
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
nemáš třeba špatnou session?
yFang
Profil
pito
Ale tady v tom poslednim nic neměníš.
Zkus si vypsat mysql_error() a uvidíš, co ti to napíše.
pito
Profil
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
pito
No vidíš, řekl bych, že by to mělo být tak, jak psal Andre.
BetaCam
Profil
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
BetaCam
Kde tam je nějaké id v uvozovkách?
Andre
Profil
Nikde sem ale neviděl že by si měl něco uložené v $_SESSION["ID"]
pito
Profil
to nic neresi pomozte jak na to aby mi to prepsalo data v db.
yFang
Profil
Nemělo by být na začátku skriptu
session_start();
Champion
Profil
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();

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: