Navýšení čísla v databázi o hodnotu $_POST[hlasovat]
Zdravím
Mám takovýto skript pro výpis obrázků z databáze:
<?php
$query = "SELECT image, thumb, tags, number, id, hlasovat FROM images";
$result = mysql_query($query);
while(list($image, $thumb, $tags, $number, $id, $hlasovat) = mysql_fetch_array($result)){
echo '<tr>
<td>
<h1>'.$number.'</h>
</td>
<td>
<a class="vlightbox1" href="'.$image.'">
<img src="'.$thumb.'" >
</a>
</td>
<td>
<input type=text name="hlasovat">
</td>
</tr>';
}
echo '<table>
<input type="submit">';
?>
A já potřebuji skript, který navýší číslo ve sloupci hlasovat o počet $_POST[hlasovat].
Prosím o pomoc s kódem. Předem díky
UPDATE images SET hlasovat = hlasovat + 1 where id = $id;
Zkoušel jsem různě upravovat, ovšem bezúspěšně.
jak? ten update co uvedl je dobře.
Tak že to číslo v db se prostě nenavýší
A dal si to ako SQL query alebo co s tym robis?
A píše to nějakou chybu nebo to zarytě mlčí?
a commit nepotřebuješ? MYSQL to snad má podle toho v jakym jsi enginu.
Dal jsem to tam takto:
A proč jsi nenapsal, co ti napsal on?
UPDATE images SET hlasovat = hlasovat + $_POST[hlasovat] where number - neni validni SQL příkaz.
UPDATE images SET hlasovat= hlasovat + $_POST[hlasovat] WHERE number = number - provede se nad všema anketama
UPDATE images SET hlasovat= hlasovat + $_POST[hlasovat]"; - provede se nad všema anketama a co mas vubec v tom POST(hlasovat) i kdyby tam byla jednička, tak tim umožnuješ hlasovat třeba 1000x, když někdo otevře haf.php?hlasovat=1000
tak to si dal uplne blbo. Mas ponatia o tom co robis?
Tak jsem po dlouhém zamyšlení použil tento příkaz, ale problém je ten, že se číslo z proměnné přičte jen u posledního záznamu a u ostatních zůstává stejné
preco to chces updatovat podla number a ne podla id, a co mas v premennej $number?
V proměnnné number mám id čísla těch fotek stejné jak v db
v premennej $number moze byt jedno cislo jednej fotky a tu fotku ti to updatne.
Změnil jsem to na id a stále nic:
Soubory:
images.txt
zpracovat.txt
pozri si v databaze ze ktora polozka ma jake number a jake ID, a potom ked zavolas to zpracovat so spravnum number (alebo ID podla toho jaky das SQl prikaz) tak ti to updatne tie polozky ktore maju stejny number (alebo ID) jak si zadal. Takze ked "stale nic" tak budes muset napisat jake number a ID mas v databaze a jake number si zadal a co ti to zmenilo a co nezmenilo.
... a do kolonky hlasovat musis napisat nejake cislo pred odoslanim. Alebo z troho SQL prikazu vyhod POST[hlasovat] a namiesto toho tam napis cislicu 1
Vždy vyplňuji kolonky všechny libovolným číslem. Ale jen u toho posledního se to aktualizuje
ano viz nizsie (mas tam X-krat input s rovnakym nazvom, pri submite to zobere len ten posledny)
A jde to teda nějak vyřešit?
Ale ja neviem co chces resit (co chces dosiahnut a preco). Normalny clovek by urobil u kazdeho riadku buttony alebo linky "+1", "+2" apod, a tym odoslal request na update jedneho itemu. Ked chce niekto hlasovat na viacerych tak klikne na viac roznych buttonov (linkov).
Inac ak to chces mat nejak super interaktivne tak by mozno bolo lepsie pouzit AJAX apod, na to ale sa mna nepytaj ja s ajaxom nerobim nic, mozno ked sem zavita napr. los tak sa mozno vyjadri k AJAXu...
Ked to chces vsetko jednym requestom tak by si musel odoslat X premennych s roznymi nazvami alebo nejake pole (ani to neviem ci je mozne) a cele pole spracovat v cykle.
ano, pole je samozrjme mozne.
A este mam pocit ze jednym submitom chces poslat nejaky multi request? Tak to nejde ani nahodou.
v mysql je defaultne autocommit
A takto by to šlo?
A mám takovýto kód, který funguje, ale já bych potřeboval aby byl v té jedné stránce a po odeslání skrýt formulář do refreše. Jde to nějak?