[ Conica @ 11.03.2005. 00:29 ] @
Postovanje

Imam sledeci kod:

Code:

$sql = MySql_Query("SELECT lt.translation, l.language_sign
            FROM language l, language_translation lt
            WHERE l.id = lt.id_language_translated
                AND lt.id_language_source = 
                    (SELECT id FROM language WHERE language_sign = '$language')") or die(mysql_error());
    $result = MySql_Fetch_Array($sql);
    $num_results = MySql_Num_Rows($result);


promenljiva $language nosi za ovaj primer predefinisanu vrednost "en". sql upit je testiran u bazi i vraca dva reda sa dva polja (language, sign):

english en
serbian sr

na echo $result je array

Javlja mi sledecu gresku:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

KAKO!!!!!

cheers
cony
[ Dejan Topalovic @ 11.03.2005. 01:36 ] @
Pogresan argument si zadala funkciji mysql_num_rows.

Vjerovatno si mislila uraditi ovako:
Code:

$sql = "SELECT lt.translation, l.language_sign
            FROM language l, language_translation lt
            WHERE l.id = lt.id_language_translated
                AND lt.id_language_source = 
                    (SELECT id FROM language WHERE language_sign = '$language')";

$result = @mysql_query($sql) or die(mysql_error());
$num_rows = @mysql_num_rows($result);


Inace, ova pitanja trebaju ici u PHP forum.


[ Conica @ 11.03.2005. 10:59 ] @
Ovako formulisani upiti funkcionisu kako treba na celom sajtu, tako da sumnjam da je u tome problem, ali probacu (doduse tek veceras). Jel ima jos neko ideju sta bi mogla biti greska?

Jel bi mogao neko od moderatora da premesti topic u php forum?

cheers
Cony
[ Dejan Topalovic @ 11.03.2005. 11:44 ] @
SQL query je vjerovatno dobro formulisan, ali nisi odgovarajuci argument proslijedila funkciji mysql_num_rows().

Rezultat upita se nalazi u varijabli $sql.
Niz sa vrijednostima iz tog rezultata spremas zatim u varijablu $result, ali ta varijabla nije tipa resource result, koji je potrebno proslijediti funkciji mysql_num_rows.
Da bi dobila broj redova, moras pisati:
$broj_redova = count($result);
ili
$broj_redova = @mysql_num_rows($sql);

Pogledaj malo pazljivije, pa ces vidjeti o cemu ti govorim.
[ Conica @ 11.03.2005. 11:51 ] @
hvala na objasnjenju, pomoglo je
pokusacu veceras

cheers
[ Conica @ 12.03.2005. 11:26 ] @
pokusala sam kako si mi rekao, ali mi nije proradilo. elem tek posle sam sa var_dump videla gde je greska...fetch_array je naravno imao za rezultat..sta? ..pa array..normalno da nije radilo.
Elem resila sam na sledeci nacin:
Code:

$sql = MySql_Query("SELECT language_translation.translation, language.language_sign
            FROM language, language_translation
            WHERE language.id = language_translation.id_language_translated
                AND language_translation.id_language_source = 
                    (SELECT id FROM language WHERE language_sign = '$language')") or die(mysql_error());
    while ($result = MySql_Fetch_Array($sql))
        {
            $language_links .= '<li id="paneLeftMenuItem"><a href="index.php?lang='.$result['language_sign'].'" class="paneLeftMenuItem">'.$result['translation'].'</a></li>';
        }


hvala na savetima i objasnjenjima
cheers
cony