| Autor | Zpráva | ||
|---|---|---|---|
| Magnus123 Profil |
Zdravím,
měl bych dva dotazy. když hodím v jednom souboru data do databáze pomocí mysql_query("UPDATE tabulka SET cislo = cislo + '10' WHERE user='$user'");v jiném dám $query = mysql_query("SELECT * FROM tabulka WHERE user='$user'"); // $user je registrovaný uživatel
while ($vysledek = mysql_fetch_array($query))
{
$cislo = $vysledek['cislo'];
}
echo $cislo;Tak mi vždy hodí dvojnásobek toho, co jsem chtěl přičíst. Takže když cislo v databázi bude 50, tak mi to pak nevypíše 60, ale 70. Jaká je v tom chyba ? Druhý dotaz je, když zadám $cislo = rand(10,20);
mysql_query("UPDATE tabulka SET cislo = $cislo WHERE user='$user");opět v jiném souboru zadám $query = mysql_query("SELECT * FROM tabulka WHERE user='$user'");
while ($vysledek = mysql_fetch_array($query))
{
$cislo = $vysledek['cislo'];
}
echo $cislo;Tak se má vypsat to číslo, které se mi náhodně vygenerovalo v té proměnné $cislo = rand(10,20) ? Pardon, jsem začátečník a nemám na to moc času. :D Moderátor Majkl578: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na
). |
||
| Keeehi Profil |
#2 · Zasláno: 4. 10. 2010, 21:47:15
K prvnímu. Máš tam někde chybu v cyklu nebo podmínkách, prostě se kód mysql_query("UPDATE tabulka SET cislo = cislo + '10' WHERE user='$user'"); provede vícekrát, než čekáš
$query = mysql_query("SELECT * FROM tabulka WHERE user='$user'");
$vysledek = mysql_fetch_array($query);
echo $vysledek['cislo'];
mysql_query("UPDATE tabulka SET cislo = cislo + '10' WHERE user='$user'");
$query = mysql_query("SELECT * FROM tabulka WHERE user='$user'");
$vysledek = mysql_fetch_array($query);
echo $vysledek['cislo'];Tento kód musí vypsat druhé číslo o 10 větší než první. Čímž chci demonstrovat, že kód mysql_query("UPDATE tabulka SET cislo = cislo + '10' WHERE user='$user'"); funguje správně, jen se provádí i když nemá.
K druhému. Proč, když už to máš napsané (kód), proč ho i nezkusíš? Ano,mělo by to tak fungovat. Ještě rada: Naučil ses jeden způsob, jak získávat data z databáze. Ta konstrukce while($promenna=mysql_fetch_array($query)) se použije, když se z databáze vrací více jak jeden řádek. Pokud očekáváš jen jeden řádek (jako je to v tvém případě) stačí použít $vysledek = mysql_fetch_array($query); echo $vysledek['cislo']; |
||
|
Časová prodleva: 16 let
|
|||
0
).