Přidání hlasu v anketě do tabulky MySQL
Nejde mi přidat hlas v anketě. Mám
$druh = intval($druh);
$vys = mysql_query ("SELECT * FROM anketa_st_druhy WHERE `druh` = '$druh'");
while($zaznam = mysql_fetch_array($vys))
{
$hlas = $zaznam['hlasy'] + 1;
echo "<b>$hlas</b>";
$sql = "UPDATE `anketa_st_druhy` SET `hlasy` = '$hlas' WHERE `druh` = '$druh' ";
$vyslede = mysql_query($sql);
if (!$vyslede) die(mysql_error());
}
a nevypíše se mi ani to echo $hlas. Slibuji, že až bufdu velký, tak se to naučím lépe.
Co mám teď špatně?
V riadku
by mal byt namiesto 'hlasy' cislo. Ak mate trebars v tabulke stlpce: id, meno, hlasy, tak tam bude spravne:
, pretoze sa pocita od nuly, takze 0 - id, 1 - meno, 2 - hlasy
Není pravda, funkce mysql_fetch_array() vrací jak asociativní, tak numerické pole. Takže bude fungovat i $zaznam['hlasy'], pokud existuje v dané tabulce sloupec hlasy.
Tabulka která se má updatovat je takto
-- Struktura tabulky `anketa_st_druhy`
--
CREATE TABLE `anketa_st_druhy` (
`id` int(3) NOT NULL auto_increment,
`druh` text collate cp1250_czech_cs NOT NULL,
`hlasy` text collate cp1250_czech_cs NOT NULL,
`obrazek` text collate cp1250_czech_cs NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs AUTO_INCREMENT=4 ;
Vdaka za poupravenie.
A samotné $zaznam['hlasy'] něco vypíše? Pokud ne, je třeba hledat chybu v SQL dotazu, resp. struktuře tabulky.
echo $zaznam['hlasy']; nevypsalo nic mrška.
Je v proměnné $druh správná hodnota a vrátí dotaz $vys nějaké výsledky?
Pod řádek $vys = mysql_query... dej toto:
Zobrazí ti to, kolik záznamů v DB odpovídá tvému dotazu.
Jo chybka byde v tom dotazu. Když dám
vypíše se. A když dám echo za něj, tak se nevypíše.
Co máš za data v té proměnné $druh? Předpokládám, že to bude nějaký integer, když používáš intval().
Je tam text
a) běžící text
b) vyskakovací titulky
c) rolující titulky
V tom případě vyhoď ten řádek:
Jupí. Děkuji ti dobrá vílo. Až to hodím na web, pošlu link na to veledílo.
Budu se těšit. A teď jdu spát.