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
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'];

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:

0