Autor | Zpráva | ||
---|---|---|---|
Adam501 Profil |
#1 · Zasláno: 23. 7. 2012, 13:04:01
Ahoj.
Mám na stránkách formulář, do kterého se zadává 8 znaků. <input type="text" name="'.$vypis['cislo'].'" size="8" maxlength="8"> Potom ho chci zapsat do databáze, ale místo 8 znaků se zapíše pouze první z nich. Mám nastaveno varchar(8). mysql_query("UPDATE jky SET vysledek=".$_GET['1']." WHERE cislo='1'"); Proč se nezapíše celý řetězec? Díky, Adam. |
||
ShiraNai7 Profil |
#2 · Zasláno: 23. 7. 2012, 13:17:19
Adam501:
A jsi si jistý, že „$_GET['1']“ má stejnou hodnotu jako „.$vypis['cislo']“? |
||
Adam501 Profil |
#3 · Zasláno: 23. 7. 2012, 13:35:04
ShiraNai7:
$vypis zadává do formuláře name, má hodnotu 1. Je vybíráno z databáze. |
||
ShiraNai7 Profil |
#4 · Zasláno: 23. 7. 2012, 13:40:20
Adam501:
Ale v dotazu máš natvrdo "1", takže na to nemá hodnota $vypis['cislo'] vůbec vliv. Nebude to tím? Taky nevidím, že bys používal v dotazu uvozovky a řádné escapování vstupu. |
||
Adam501 Profil |
ShiraNai7:
$vypis uloží inputu name 1, který potom zapíšu $_GET[1] $_GET[1] je tedy to co se má zapsat a tou jedničkou natvrdo jenom říkám do kterého řádku. Má se stát, že to co je v proměnné se zapíše do sloupce vysledek, který je v řádku s cislo=1 |
||
Keeehi Profil |
#6 · Zasláno: 23. 7. 2012, 13:51:29
$dotaz = "UPDATE jky SET vysledek='".$_GET['1']."' WHERE cislo='1'"; echo $dotaz; mysql_query($dotaz); Vypíše se dotaz tak jak má být? A v databázi se objeví pak jen jeden znak? |
||
Adam501 Profil |
#7 · Zasláno: 23. 7. 2012, 13:59:07
Teď to funguje. A dotaz se taky vypíše správně.
Takže celé co chybělo byly dva apostrofy? |
||
pcmanik Profil |
#8 · Zasláno: 23. 7. 2012, 14:03:44
Adam501:
Ano, lebo bez apostrofov sa to sprava ako cislo. Co znamena ze aj cislo = '1' je lepsie zapisat ako cislo = 1. Databaza to potom nemusi zbytocne pretypovat. |
||
Adam501 Profil |
#9 · Zasláno: 23. 7. 2012, 14:05:25
pcmanik:
Áha. To jsem nevěděl. Právě jsem to kopíroval z jiné stránky, kdy zapisuju číslo a tam to fungovalo, takže mi to připadalo divný. Díky. |
||
Časová prodleva: 12 let
|
0