PDA

View Full Version : Help Creating Dynamic category list!


krohnathlonman
04-17-2004, 11:38 PM
$cathandle = mysql_query("SELECT * FROM amartincats ORDER BY id ASC");

$count = mysql_num_rows($cathandle);
while($count>0)
{
$catdata = mysql_fetch_array($cathandle);//get category data
$catstitle = $catdata[name];

//loop through articles of given category
$ahandle = mysql_query("SELECT id, subject, subject_2 FROM amartin WHERE category = '".$catdata[id]."' ORDER BY subject ASC");
$acount = mysql_num_rows($ahandle);
while($acount>0)
{
$adata = mysql_fetch_array($ahandle);

$populars['subject'] = $adata[subject];
$populars['id'] = $adata[id];
$populars['subject_2'] = $adata[subject_2];


$acount--;
}//end article loop

eval("\$cats1bit .= \"".fetch_template('article_list_bit')."\";");
//echo($cats1bit); //do whatever has to be done to put in in the template :)
unset($cats1bit);

$count--;

eval("\$article[cat1] .= \"".fetch_template('article_cat1')."\";");
}
//end main cat loop



This is for my article system that I'm preparing to release.... I just can't seem to grab the data and cycle through the lists properly :(

my username
04-18-2004, 02:16 PM
Looks to me like your code has a major drawback. You don't need to run so many queries. Try one or two queries and loop through the result set(s) (you're only extracting one of the tuples from each query) instead of running multiple queries. Hope this helps.

Example:

$result = mysql_query($query, $dblink);
while($row = mysql_fetch_array($result))
{
$populars[$row['id']]['subject'] = $row['subject'];
$populars[$row['id']]['subject_2'] = $row['subject_2'];
....
}

krohnathlonman
04-18-2004, 05:59 PM
could you give me some more info about that?


My current version I'm actually naming all the categories :(



$cat1 = $DB_site->query("SELECT id, subject, subject_2 FROM amartin WHERE category = 1 ORDER BY subject ASC");
while($category1 = $DB_site->fetch_array($cat1)) {$populars['subject'] = $category1['subject']; $populars['id'] = $category1['id']; $populars['subject_2'] = $category1['subject_2'];
eval("\$cats1bit .= \"".fetch_template('article_list_bit')."\";");}
eval("\$article[cat1] = \"".fetch_template('article_cat1')."\";"); $DB_site->free_result($cat1);

$cat2 = $DB_site->query("SELECT id, subject, subject_2 FROM amartin WHERE category = 2 ORDER BY subject ASC"); while($category2 = $DB_site->fetch_array($cat2)) {$populars['subject'] = $category2['subject']; $populars['id'] = $category2['id']; $populars['subject_2'] = $category2['subject_2']; eval("\$cats2bit .= \"".fetch_template('article_list_bit')."\";"); } eval("\$article[cat2] = \"".fetch_template('article_cat2')."\";"); $DB_site->free_result($cat2);


I don't really understand how to loop through them both at the same time. I'm still learning.... Trying to get my article system ready to release. It's the biggest project I've done to date.

Also whats the proper way to use unset?