Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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ě?

Předmět Autor Datum
V riadku $hlas = $zaznam['hlasy'] + 1; by mal byt namiesto 'hlasy' cislo. Ak mate trebars v tabulk…
2laak 21.04.2009 23:27
2laak
Není pravda, funkce mysql_fetch_array() vrací jak asociativní, tak numerické pole. Takže bude fungov…
Marvin 21.04.2009 23:32
Marvin
Tabulka která se má updatovat je takto -- Struktura tabulky `anketa_st_druhy` -- CREATE TABLE `ank… nový
Kráťa 21.04.2009 23:35
Kráťa
Vdaka za poupravenie. :-) poslední
2laak 22.04.2009 00:39
2laak
A samotné $zaznam['hlasy'] něco vypíše? Pokud ne, je třeba hledat chybu v SQL dotazu, resp. struktuř… nový
Marvin 21.04.2009 23:34
Marvin
echo $zaznam['hlasy']; nevypsalo nic mrška. nový
Kráťa 21.04.2009 23:37
Kráťa
Je v proměnné $druh správná hodnota a vrátí dotaz $vys nějaké výsledky? Pod řádek $vys = mysql_query… nový
Marvin 21.04.2009 23:40
Marvin
Jo chybka byde v tom dotazu. Když dám echo $druh; $druh = intval($druh); $vys = mysql_query ("SELEC… nový
Kráťa 21.04.2009 23:48
Kráťa
Co máš za data v té proměnné $druh? Předpokládám, že to bude nějaký integer, když používáš intval(). nový
Marvin 21.04.2009 23:50
Marvin
Je tam text a) běžící text b) vyskakovací titulky c) rolující titulky nový
Kráťa 21.04.2009 23:55
Kráťa
:-) V tom případě vyhoď ten řádek: $druh = intval($druh); nový
Marvin 21.04.2009 23:56
Marvin
Jupí. Děkuji ti dobrá vílo. Až to hodím na web, pošlu link na to veledílo. nový
Kráťa 22.04.2009 00:00
Kráťa
Budu se těšit. A teď jdu spát. ;-) nový
Marvin 22.04.2009 00:00
Marvin

V riadku

$hlas = $zaznam['hlasy'] + 1;

by mal byt namiesto 'hlasy' cislo. Ak mate trebars v tabulke stlpce: id, meno, hlasy, tak tam bude spravne:

$hlas = $zaznam['2'] + 1;

, pretoze sa pocita od nuly, takze 0 - id, 1 - meno, 2 - 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 ;

Jo chybka byde v tom dotazu. Když dám

echo $druh;
$druh = intval($druh);
$vys = mysql_query ("SELECT * FROM anketa_st_druhy WHERE `druh` = '$druh'");
while($zaznam = mysql_fetch_array($vys))
{

vypíše se. A když dám echo za něj, tak se nevypíše.

Zpět do poradny Odpovědět na původní otázku Nahoru