Autor Zpráva
pogg
Profil
Zdravím,

napsal jsem script, který funguje ale i přes to vyhodí tuto hlašku:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/strojnet.com/subdomains/best/tapety-video.php on line 48

na 48 řádku je $dotaz = Mysql_query("SELECT * FROM videoklipy WHERE id=$id LIMIT 1");


Nevíte, kde by mohla být chyba? Script funguje bez problému ale ta hláška tam vadí:o)

script necelý pak už jsou jen echa:

url ze kterého beru $id a $jehodnoceno

http://xxx.xx.xx/xxx.php?id=1&hodnoceno=3

$id = $_GET["id"];
$jehodnoceno = $_GET["hodnoceno"];
$idje = $id;

$dotaz = Mysql_query("SELECT * FROM videoklipy WHERE id=$id LIMIT 1");
while($zaznam = MySQL_Fetch_Array($dotaz)){
$nazev = $zaznam["nazev"];
$video = $zaznam["video"];
$video_je = $zaznam["video_je"];
$celebrita = $zaznam["celebrita"];
$klik = $zaznam["klik"];
$autor = $zaznam["autor"];
$vlozeno = $zaznam["vlozeno"];
$hodnoceno = $zaznam["hodnoceno"];
$hodnoceno_vysledek = $zaznam["hodnoceno_vysledek"];
$hodnoceni_je = $zaznam["hodnoceni_je"];


if($jehodnoceno == 1){
$hodnoceno = $hodnoceno +1;
$hodnoceno_vysledek = $hodnoceno_vysledek +1;
$hodnoceni_je = $hodnoceno_vysledek / $hodnoceno;
$dotaz = Mysql_query("UPDATE videoklipy SET hodnoceno=$hodnoceno, hodnoceno_vysledek=$hodnoceno_vysledek, hodnoceni_je=$hodnoceni_je WHERE id = $id limit 1");
$hodnoceni_je = round($hodnoceni_je);
}

elseif($jehodnoceno == 2){
$hodnoceno = $hodnoceno +1;
$hodnoceno_vysledek = $hodnoceno_vysledek +2;
$hodnoceni_je = $hodnoceno_vysledek / $hodnoceno;
$dotaz = Mysql_query("UPDATE videoklipy SET hodnoceno=$hodnoceno, hodnoceno_vysledek=$hodnoceno_vysledek, hodnoceni_je=$hodnoceni_je WHERE id = $id limit 1");
$hodnoceni_je = round($hodnoceni_je);
}
elseif($jehodnoceno == 3){
$hodnoceno = $hodnoceno +1;
$hodnoceno_vysledek = $hodnoceno_vysledek +3;
$hodnoceni_je = $hodnoceno_vysledek / $hodnoceno;
$dotaz = Mysql_query("UPDATE videoklipy SET hodnoceno=$hodnoceno, hodnoceno_vysledek=$hodnoceno_vysledek, hodnoceni_je=$hodnoceni_je WHERE id = $id limit 1");
$hodnoceni_je = round($hodnoceni_je);
}
elseif($jehodnoceno == 4){
$hodnoceno = $hodnoceno +1;
$hodnoceno_vysledek = $hodnoceno_vysledek +4;
$hodnoceni_je = $hodnoceno_vysledek / $hodnoceno;
$dotaz = Mysql_query("UPDATE videoklipy SET hodnoceno=$hodnoceno, hodnoceno_vysledek=$hodnoceno_vysledek, hodnoceni_je=$hodnoceni_je WHERE id = $id limit 1");
$hodnoceni_je = round($hodnoceni_je);
}
elseif($jehodnoceno == 5){
$hodnoceno = $hodnoceno +1;
$hodnoceno_vysledek = $hodnoceno_vysledek +5;
$hodnoceni_je = $hodnoceno_vysledek / $hodnoceno;
$dotaz = Mysql_query("UPDATE videoklipy SET hodnoceno=$hodnoceno, hodnoceno_vysledek=$hodnoceno_vysledek, hodnoceni_je=$hodnoceni_je WHERE id = $id limit 1");
$hodnoceni_je = round($hodnoceni_je);
}

$znamkahodnoceni = $hodnoceni_je;
if($hodnoceni_je == 1){$hodnoceni_je = "width:30px";}
elseif($hodnoceni_je == 2){$hodnoceni_je = "width:60px";}
elseif($hodnoceni_je == 3){$hodnoceni_je = "width:90px";}
elseif($hodnoceni_je == 4){$hodnoceni_je = "width:120px";}
elseif($hodnoceni_je == 5){$hodnoceni_je = "width:150px";}

dale jen echa...

díky za pomoc všem....
Kajman_
Profil *
Nepřepisujete proměnnou $dotaz, unitř cyklu.
pogg
Profil
NE, žádnou proměnou dotaz tam nemám.

no funguje to tak že se nejdříve načte url jen s id kde se vypíše stránka, na ní se pak objeví hlasování

to jde vše v pohodě bez chyb.

Pak po kliku na hlasování se přidá do url konkrétní hodnota &hodnoceno=3

vyberuji $jehodnoceno = $_GET["hodnoceno"];

a pak se podle podmínek naplní další proměnné.

a to už vyhodí chybu...

zkoušel jsem odebrat to aktualizování DB

$dotaz = Mysql_query("UPDATE videoklipy SET hodnoceno=$hodnoceno, hodnoceno_vysledek=$hodnoceno_vysledek, hodnoceni_je=$hodnoceni_je WHERE id = $id limit 1");

a to mi chybu nevyhodilo. Proměnné se naplnily ale nezapsaly do DB.

Přitom script plně funguje i když je tam ta chyba?!?!?!?! jak to?!?!?!
Kajman_
Profil *
Chtěl jsem napsat "nepřepisujte".

while($zaznam = MySQL_Fetch_Array($dotaz)){ 

...

$dotaz = Mysql_query("UPDATE videoklipy SET hodnoceno=$hodnoceno, hodnoceno_vysledek=$hodnoceno_vysledek, hodnoceni_je=$hodnoceni_je WHERE id = $id limit 1"); 


Při druhém procházení while, se skript snaží získat data z updatu místo z původního selectu. Buď výsledek update neukládejte do proměnné, nebo ji nazvěte jinak než $dotaz.
pogg
Profil
jj díky už je to vyřešeno.... a jak to že to pracovalo i když tam byla ta chyba???
Kajman_
Profil *
Chyba nastala až při druhém průchodu, ale když tam byl limit 1, tak stejně se víc průchodů dělat nemělo.

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: