Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: mysql_fetch_array -ongelma

Drv [28.08.2004 12:35:27]

#

Kirjoittelin tällaiset funktion, mutta ajettaessa sitä tulee herjaus "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /polunnimi)", enkä tunnu keksivän mikä argumentissa olisi väärin

function box_list()
{
$link = mysql_connect($host, $db_user, $db_password);
mysql_select_db($database, $link);
$query = mysql_query("SELECT * FROM text_box ORDER BY sort_number DESC");

while ( $row = mysql_fetch_array ($query, MYSQL_ASSOC) )
        {
        $row_topic = $row["topic"];
        $row_text = $row["text"];
        $row_task = $row["task"];
        $row_name_first = $row["name_first"];
        $row_name_last = $row["name_last"];
        $row_time = $row["time"];

        print "<table align='center' cellspacing='0' cellpadding='0' style='box' width='401'> \n";
        print "<tr><td class='shout_1' width='401'><p class='shout'> \n";
        print "<b>$row_topic \n";
        print "<tr><td class='shout_2' width='401'><p class='small'> \n";
        print "kirjoittanut $row_task $row_name_first $row_name_last ";
        print date("G:i d.m.y", $row_time);
        print "<br> \n";
        print "$row_text </p></table><br> \n";
        }

mysql_free_result($query);
}

Antti Laaksonen [28.08.2004 12:52:50]

#

Olisiko vika siinä, että olet käyttänyt funktiossa muuttujia $host, $db_user, $db_password sekä $database, joille ei ole annettu mitään aloitusarvoa? Toinen syy virheilmoitukseen voi olla, että tietokantakysely on väärin, mutta epäilisin tuota ensimmäistä. Yhteys tietokantaan kannattaa muuten avata vain kerran skriptin alussa eikä joka kerta, kun haet rivejä tietokannasta.

Drv [28.08.2004 16:01:25]

#

Olin määritellyt muuttujat aiemmin ja olen käyttänyt tuota muuttujilla kytkeytymistä muissa funktioissa onnistuneesti, mutta jostain kumman syystä sain sen toimimaan kun laitoin suoraan arvot noihin kytkeytymiskohtiin. Pitäisikö nuo muuttujat määritellä globaaleiksi funktion sisällä, jotta kytkeytymisessä voitaisiin käyttää muuttujia? Helpottaisi nimittäin siirtämistä jos pitää vaihtaa tietokantapalvelinta.

Drv [28.08.2004 17:13:06]

#

Ongelma ratkesi, olin unohtanut määritellä muuttujat globaaleiksi :)

ajv [28.08.2004 18:18:11]

#

Globaalien muuttujien käytössä ei kyllä oikeastaan ole mitään järkeä, ainakaan tuossa tapauksessa. Järkevämpi vaihtoehto on tuo makeuun koodi, jossa muutujat annetaan parametreinä, järkevin tuo Antin tapa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta