Grimloch Posted November 9, 2009 Share Posted November 9, 2009 Hello all. I'm hoping to be able to get some help in solving a problem with query/rowcount output. I've been learning PHP and mySQL for about 7 months now and have several successful Mods written/modified for PHP-Fusion CMS version7.00.05. My host is running PHP-5 and MySQL-5. I am converting a Mod from Fusion-ver6 to work on ver-7, called Classified Ads. It has turned out to be a MONSTER to modify and I have run into a snag. There is code that selects ALL the categories and divides them in half displaying half in a table TD and the other half in another TD beside it for a 2 column display. This works just great. What I have is 22 categories and approx. 220 sub-categories. What I am trying to do is display the number of sub-categories below each main category. Here is a pic of the current display with annotations: I tried using the same code (which works for the main cats), to display the # of sub-cats. It works fine for the first TD but fails in the second TD. I will show the pertinent code rather than posting the entire script, unless requested to do so. Here is the code that produces what you see in the pic: echo "<table width='100%' border='0' cellspacing='0' cellpadding='3'><tr>\n"; $result = dbquery("SELECT * FROM ".DB_CLASSIFIED_CATEGORIES." WHERE status='1' AND parentid=0"); $numrows = dbrows($result); if($numrows > 0) { $numrows % 2 ? $numrows += 1 : $numrows; $rows = $numrows / 2; echo "<td valign='top' width='50%'>"; $result = dbquery("SELECT cid, title, description, image, parentid FROM ".DB_CLASSIFIED_CATEGORIES." WHERE status='1' AND parentid='0' ORDER BY title LIMIT $rows"); while(list($cid, $title, $description, $image, $parentid) = dbarraynum($result)) { $count1=dbcount("(*)", $db_prefix."classified", " cid='$cid' AND status='1'"); echo "<table cellspacing='2' cellpadding='1' width='100%' border='0'><tr>\n"; echo "<td valign='top' width='100%'>"; if($image) { echo "<a href='".FUSION_SELF."?op=view_ad&cid=".$cid."'><img src='".INFUSIONS."classified_ads_panel/images/cat/".$image."' alt='".$title."' border='0'></a>(<strong>".$count1." "; if($count1>1 || $count1<1) { echo $locale['CLS_0120']; } else { echo $locale['CLS_0119']; } echo "</strong>)"; } else { echo "<a href='".FUSION_SELF."?op=view_ad&cid=".$cid."'><strong>".$title."</strong></a>(<strong>".$count1." "; if($count1>1 || $count1<1) { echo $locale['CLS_0120']; } else { echo $locale['CLS_0119']; } echo "</strong>)<br />"; // start here $subresult = dbquery("SELECT * FROM ".DB_CLASSIFIED_CATEGORIES." WHERE status='1' AND parentid >0"); $myrows = dbrows($subresult); if($myrows > 0) { $myrows % 2 ? $myrows += 1 : $myrows; $subrows = $myrows / 2; $subresult = dbquery("SELECT cid, title, description, image, parentid FROM ".DB_CLASSIFIED_CATEGORIES." WHERE parentid >0 AND parentid=$cid ORDER BY parentid LIMIT $subrows"); $myrows = dbrows($subresult); $subrows = $myrows; } echo $subrows." sub-categories<br />"; // end here } echo "</td>\n"; echo "</tr><tr>\n"; echo "<td>".$description."</td>\n"; echo "</tr></table>\n"; } echo "</td><td valign='top' width='50%'>"; $result1 = dbquery("SELECT cid, title, description, image, parentid FROM ".DB_CLASSIFIED_CATEGORIES." WHERE status='1' AND parentid='0' ORDER BY title LIMIT $rows, $rows"); while(list($cid, $title, $description, $image, $parentid) = dbarraynum($result1)) { $count1=dbcount("(*)", $db_prefix."classified", " cid='$cid' AND status='1'"); echo "<table cellspacing='2' cellpadding='1' width='100%' border='0'><tr>\n"; echo "<td valign='top' width='100%'>"; if($image) { echo "<a href='".FUSION_SELF."?op=view_ad&cid=".$cid."'><img src='".INFUSIONS."classified_ads_panel/images/cat/".$image."' alt='".$title."' border='0'></a>(<strong>".$count1." "; if($count1>1 || $count1<1) { echo $locale['CLS_0120']; } else { echo $locale['CLS_0119']; } echo "</strong>)"; } else { echo "<a href='".FUSION_SELF."?op=view_ad&cid=".$cid."'><strong>".$title."</strong></a>(<strong>".$count1." "; if($count1>1 || $count1<1) { echo $locale['CLS_0120']; } else { echo $locale['CLS_0119']; } echo "</strong>)<br />"; // start here $subresult = dbquery("SELECT cid, title, description, image, parentid FROM ".DB_CLASSIFIED_CATEGORIES." WHERE parentid >0 AND parentid=$cid ORDER BY parentid LIMIT $subrows, $subrows"); $myrows = dbrows($subresult); $subrows = $myrows; echo $subrows." sub-categories<br />"; // end here } echo "</td>\n"; echo "</tr><tr>\n"; echo "<td>".$description."</td>\n"; echo "</tr></table>\n"; } echo "</td>\n"; } I'm wondering why my added code works OK for the first part but not the second part. Any and all help/suggestions would be GREATLY appreciated. Quote Link to comment Share on other sites More sharing options...
Grimloch Posted November 9, 2009 Author Share Posted November 9, 2009 Maybe I'm not providing enough info here as no one has responded: Normally in this script all the sub-cats are displayed BELOW the main cats as in the pic but; with 208 sub-cats thats a very LONG page. So I decided to do what I am seeking help with. Now when you click on a main cat the sub-cats for that one ONLY are displayed below the main cats w/the # of posts in each one, which makes better sense. Here is the table that stores the cats info: cid int(11) unsigned NOT NULL auto_increment, title varchar(100) NOT NULL default '', description text NOT NULL, image varchar(100) NOT NULL default '', parentid int(11) unsigned NOT NULL default '0', status enum('0','1') NOT NULL default '0', PRIMARY KEY (cid) ) TYPE=MyISAM;"; Hoping for some help here. Quote Link to comment Share on other sites More sharing options...
Grimloch Posted November 11, 2009 Author Share Posted November 11, 2009 Figured it out myself; thx anyway. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.