Autor Zpráva
Petr94
Profil
Prosím o radu,
jak vložit PHP proměnou do MySQL příkazu?

$i = 1;

while($i<=60)
{
$pricist = $i/60;
$objekt_vysledku = mysqli_query ($db_spojeni,'UPDATE hraci SET sklady=sklady+$pricist WHERE produkce=$i;');

++$i;
}


Error: Unknown column '$i' in 'where clause'

Díky
Jan Tvrdík
Profil
Petr94:
Třeba takto:
$objekt_vysledku = mysqli_query ($db_spojeni,'UPDATE hraci SET sklady=sklady+' . $pricist . ' WHERE produkce=' . $i);

nebo takto:
$objekt_vysledku = mysqli_query ($db_spojeni,"UPDATE hraci SET sklady=sklady+$pricist WHERE produkce=$i");
Jan Tvrdík
Profil
Nešlo by to zkrátit na jeden SQL dotaz?:
mysqli_query ($db_spojeni, "UPDATE hraci SET sklady = (sklady + produkce / 60);");
Petr94
Profil
V prvních dvou způsobech to hází chybu.

Třetí způsob funguje ještě to budu muset trochu rošířit a uvidí se..=)
Moc ste mi pomohl, moc díky.
Zdravím, Petr
Petr94
Profil
Né... nefunguje to k sklady se přičte produkce nevydělená 60ti... nedělí to.. co s tím?
denCo
Profil
nemá to byť čistou náhodou takto?
$i++;
Petr94
Profil
U ostatní programovacích jazyků co znám ano, ale PHP je vyjímka
$++i;
AM_
Profil
Nebylo by lepší produkci uchovávat rovnou vydělenou šedesáti? Sice ted nevidím, proč to nejde, ale pokud máš "sklady" celočíselný typ, tak to stejně bude fungovat kostrbatě (produkce 20/hod přičte každou hodinu 1/3, což je po zaokrouhlení 0, takže se vlastně nepřičte nikdy nic)
Jan Tvrdík
Profil
Petr94:
V prvních dvou způsobech to hází chybu.
V tom prvním tam byl středník navíc (opraveno), ten druhý vypadá v pořádku.

nefunguje to k sklady se přičte produkce nevydělená 60ti... nedělí to.. co s tím?
Používej interpunkci, špatně se mi to bez ní čte. Jinak ta produkce se tam dělí 60, takže by to mělo určitě fungovat.


denCo:
Ne, použitý zápis (++$i;) by měl být dokonce rychlejší.

Petr94:
U ostatní programovacích jazyků co znám ano
Neznám programovací jazyk, kde preinkrementace nefunguje.
Petr94
Profil
AM:
Nebylo by lepší produkci uchovávat rovnou vydělenou šedesáti?
Ano už em to tak udělal

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: