Autor Zpráva
Komár
Profil *
Zdravím, potřebuju udělat počítadlo, které funguje na následujícím principu: Objeví se formulář, do kterého se vypíše číslo. Číslo se pak nahraje do databáze a přičte k již uloženému předchozímu údaji. (S přibývajícími údaji tedy bude číslo narůstat.) O PHP nemám skoro ani páru, ale něco jsem poskládal, nicméně se nečekaně objevila chyba a já nevím proč, ale záznam se nepřičítá. (Z databáze to však čte, důkazem toho budiž konečná hláška. Záměrně jsem totiž při zakládání tabulky vytvořil nenulový údaj, takže mi to vypisuje Již máme zaznamenáno 5 přístupů.

SQL zápis:
create table pocitadlo (pocet int);
insert into pocitadlo (pocet) values(0);


Samotný php skript

<?
 if($_GET["odeslano"])
{
mysql_connect(localhost, mysql, blablabla);
  mysql_select_db(mysql);
  mysql_query("update pocitadlo set pocet = pocet+$_GET");
  $vysledek=mysql_query("select pocet from pocitadlo");
  $zaznam=mysql_fetch_array($vysledek);
  $celkem=$zaznam["pocet"];
  echo "Již máme zaznamenáno $celkem přístupů!!!"; 
}
else
{?>
<form action="<?print $_SERVER["PHP_SELF"]?>">
<input type="text" name="soubor">
<input type="hidden" name="odeslano" value="1">
<input type="submit">
</form>
<?}?>
Tori
Profil
Na ř.6 posíláte do databáze celé pole místo čísla.
Komár
Profil *
Pořád si s tím nevím rady, samozřejmě jsem pochopil že $_GET je špatně, nicméně, co odeslat místo toho?
Komár
Profil *
Respektive se mi z formuláře nepřenese opravdová hodnota čísla, nýbrž jen jedna. Takže pořád přičítám po jedné, ikdyž zadám do formuláře třeba 60.
Tori
Profil
Komár:
Máte ve formuláři dvě pole, tak asi ukládáte to skryté. Btw ještě mi tam chybí aspoň základní ošetření toho, co posíláte do databáze:
mysql_query("update pocitadlo set pocet = pocet+".intval($_GET['soubor']));

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