Remember that this is my first script, but here's how I extracted and
associated category hierarchies:
include 'c:\apache2\adodb\adodb\adodb.inc.php';
$ADODB_CACHE_DIR = 'c:\apache2\adodb\adodb-cache';
$db = &ADONewConnection( 'mysql' );
$db -> Connect( 'localhost', 'root', 'mysql', 'reach');
$sql_cats = "SELECT cat_id, cat_title FROM phpbb_categories ORDER BY
cat_id";
$sql_fora = "SELECT forum_id, cat_id, forum_name FROM phpbb_forums ORDER BY
cat_id";
$sql_topics = "SELECT forum_id, topic_id, topic_title FROM phpbb_topics
ORDER BY forum_id";
$db -> SetFetchMode( ADODB_FETCH_ASSOC );
$rs_cats = &$db -> Execute( $sql_cats );
$rs_fora = &$db -> Execute( $sql_fora );
$rs_topics = &$db -> Execute( $sql_topics );
$cat_id = "";
$forum_id = "";
$cats_inc = 1;
$fora_inc = 1;
$topics_inc = 1;
while( $cats_row = $rs_cats -> FetchNextObject() ) {
$cat_id = $cats_row -> CAT_ID;
print "<tr><td align='left'>" .
"<input type='text' value='+ " . $cats_row -> CAT_TITLE . "' name='"
.
$cats_row -> CAT_TITLE .
"' readonly onclick='change_value( this, this.name, this.value )' "
.
"style='border:none;cursor:hand;color:#000099;font-weight:600'>";
$rs_fora -> MoveFirst();
while( $fora_row = $rs_fora -> FetchNextObject() ) {
if( $cat_id == $fora_row -> CAT_ID ) {
$forum_id = $fora_row -> FORUM_ID;
print "<br/> <input
type='text' value='+ " .
$fora_row -> FORUM_NAME . "' name='" . $fora_row ->
FORUM_NAME . "' readonly " .
"onclick='change_value( this, this.name, this.value
)' " .
"style='border:none;cursor:hand;color:#000099;font-weigth:600'>";
}
$rs_topics -> MoveFirst();
while( $topics_row = $rs_topics -> FetchNextObject() ) {
if(( $topics_row -> TOPIC_TITLE != "" ) && (
$forum_id == $topics_row -> FORUM_ID )){
print
"<br/> " .
"<input type='text' value='=> " .
$topics_row -> TOPIC_TITLE . "' name='" .
$topics_row -> TOPIC_TITLE . "' readonly " .
"onclick='change_value( this, this.name,
this.value )' " .
"style='border:none;cursor:hand;color:#000099;font-weigth:600'>";
}
}
}
print "</td></tr><tr><td> </td></tr>";
}
?>
I'm sure this can be refactored, but I don't know PHP well enough to
optimize it right now.
Cheers!
Mark
-----Original Message-----
From: John W. Holmes [mailto:[EMAIL PROTECTED]
Sent: Friday, March 19, 2004 11:42 AM
To: [EMAIL PROTECTED]; Age Bosma
Subject: Re: [PHP-DB] MySQL category tree db sorting
From: "Age Bosma" <[EMAIL PROTECTED]>
> I'm trying to work out what the most efficient way will be to get the
> complete tree structure from top to bottom of a category tree db.
Search the archives or Google for "nested sets". That's going to be the most
efficient database scheme to use. Any parent-child-relationship solution is
going to require a lot of queries when your "trees" get large.
I second the recommendation for "SQL for Smarties" by Joe Celko, too.
Excellent book.
---John Holmes...
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php