Smarty - mysql_fetch_*(): supplied argument is not a valid MySQL result resource

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Allan de Bruin

Allan de Bruin

27/06/2011 21:22:19
Quote Anchor link
Allen,
Helaas krijg ik telkens de foutmelding die, ondanks ik het aanpas, telkens weer terug komt en ik kan echt niet vinden wat ik nu fout doe. Op de template pagina (TPL) zal deze query in een lijst moeten worden weergegeven.

Misschien kan iemand mij helpen/ duidelijke stap voor stap instructies geven hoe ik dit op kan lossen?

Het gaat om de volgende code waarbij we ervan uitgaan dat "$query_about" de eerste regel is. De fout zit in m in het volgende:

$about = array();
while($db_row = mysql_fetch_row($about)) {
$about[] = $db_row;
}


============= CODE ============
$query_about = "SELECT dl_id, dl_name, dl_file, dl_descr, dl_cat_id, dl_type, lang FROM downloads WHERE dl_cat_id = '1' ORDER BY dl_name ASC LIMIT 0 , 50";
$about = mysql_query($query_about) or die(mysql_error());
$row_about = mysql_fetch_assoc($about);
$totalRows_about = mysql_num_rows($about);


$dl_id_about = $row_about['dl_id']; // ID
$dl_name_about = $row_about['dl_name']; //file titel
$dl_file_about = $row_about['dl_file']; //file
$dl_descr_about = $row_about['dl_descr']; //description of the file
$dl_cat_id_about = $row_about['dl_cat_id']; // id of the group cat
$dl_type_about = $row_about['dl_type']; //type of download

$about = array();
while($db_row = mysql_fetch_row($about)) {
$about[] = $db_row;
}

echo $dl_id_about . "<BR>" ;
echo $dl_name_about . "<BR>";
echo $dl_file_about . "<BR>";
echo $dl_descr_about . "<BR>";
echo $dl_cat_id_about . "<BR>";
echo $dl_type_about . "<BR>";

$smarty -> assign('dl_id_about', $dl_id_about);
$smarty -> assign('dl_name_about', $dl_name_about);
$smarty -> assign('dl_file_about', $dl_file_about);
$smarty -> assign('dl_descr_about', $dl_descr_about);
$smarty -> assign('dl_cat_id_about', $dl_cat_id_about);
$smarty -> assign('dl_type_about', $dl_type_about);
 
PHP hulp

PHP hulp

30/11/2024 17:24:44
 
- SanThe -

- SanThe -

27/06/2011 21:26:49
Quote Anchor link
Foutafhandeling inbouwen geeft helderheid.

$about = array();
while($db_row = mysql_fetch_row($about)) {

Dus je wilt fetchen op een leeg array()?
 
Jurgen B

Jurgen B

27/06/2011 22:26:08
Quote Anchor link
Wat -SanThe- zegt, je gebruikt $about eerst om het query result in te returnen, waarna je er een lege array aan toekent en deze probeert uit te lezen als db resultset. Met andere woorden, verander één van deze twee variabelen.
 
Allan de Bruin

Allan de Bruin

27/06/2011 23:18:59
Quote Anchor link
Ik heb deze eerder gebruikt bij een ander onderdeel waarbij het wel werkt.
daarmee heb ik bijvoorbeeld een top 5 objecten gemaakt op www.ipsola.com (mag ik dit hier zo posten btw?)

daarbij werkte het wel okay via het volgende script:

$db_query = "SELECT countries.country_id AS CountryId, countries.name_". $Lang . " AS name, COUNT(properties.addr_country_id) AS CountryAantal FROM countries, properties WHERE properties.addr_country_id = countries.country_id GROUP BY name ASC ORDER BY `CountryAantal` DESC LIMIT 0 , 5";
$db_result = mysql_query($db_query);

$name = $db_result['name'];
$CountryId = $db_result['CountryId'];

$landen = array();
while($db_row = mysql_fetch_assoc($db_result)) {
$landen[] = $db_row;
}

$top_ten_intro = $lng['top_ten_intro'];
$smarty->assign('landen', $landen);
$smarty->assign('name', $name);
$smarty->assign('CountryId', $CountryId);
$smarty->assign('top_ten_intro', $top_ten_intro);



dus wat ik volgens jullie zou moeten doen is dus een naam geven aan de array?

$about = array(NAAM_INVULLEN);
while($db_row = mysql_fetch_row($about)) {
$about[] = $db_row;
}
 
- SanThe -

- SanThe -

27/06/2011 23:21:50
Quote Anchor link
- SanThe - op 27/06/2011 21:26:49:
Foutafhandeling inbouwen geeft helderheid.

$about = array();
while($db_row = mysql_fetch_row($about)) {

Dus je wilt fetchen op een leeg array()?


$anderenaam = array();
 
Allan de Bruin

Allan de Bruin

27/06/2011 23:27:59
Quote Anchor link
ah :) nice Ik ga het proberen/
 
- SanThe -

- SanThe -

27/06/2011 23:36:13
Quote Anchor link
Meer uitleg:

$about = mysql_query(...);
Dus er zit een queryresultaat in $about (slechte naam trouwens)

$about = array();
Je overschrijft $about. Nu is $about dus een leeg array().

while($db_row = mysql_fetch_row($about)) {
Dus ook hier is $about een leeg array() en geen queryresultaat meer.
 
Allan de Bruin

Allan de Bruin

27/06/2011 23:46:54
Quote Anchor link
het heeft gewerkt :) Nu moe ik het weer op een andere pagina zien te voorschijn toveren! smarty...grrr!! :(
Gewijzigd op 27/06/2011 23:47:06 door Allan de Bruin
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.