RE: [PHP-DB] Help needed creating a social network
My first thought was recursion - repeat the call for each element of the result set, numbering each so you can find each level, until nothing is returned. That would probably work, but oh, what a mess. That triggered something ... off to consult Joe Celko's SQL for Smarties. He has a whole chapter on Trees, and guess what: they're not easily done in relational databases. To try and condense it here would be, shall we say, impractical. Check with a library, or try googling for trees -- hey, look what turned up: http://www.dbmsmag.com/9603d06.html by JC himself. Have fun - Miles Thompson At 03:19 PM 3/7/2006, Daevid Vincent wrote: Thanks for the reply. However, that only gives me a single degree. I'm looking for the way to traverse a 'tree' to see who is in your extended networks, so I can do things like: You are 4 degrees away from Sam: You know bob who knows john who knows carrol who knows Sam. Sam <- carrol <- john <- bob <- you Etc. > -Original Message- > From: Micah Stevens [mailto:[EMAIL PROTECTED] > Sent: Monday, March 06, 2006 10:28 PM > To: php-db@lists.php.net > Subject: Re: [PHP-DB] Help needed creating a social network > > > CREATE TABLE `users` (userID int(11) not null auto_increment, primary > key(userID), name tinytext not null, email tinytext not null); > > CREATE TABLE `links` (userID int(11), key (userID), friendID int(11), > key(friendID)); > > $friends = mysql_query("select users.name, users.userID from > users left join > links on links.friendID = users.userID where links.userID = > {$_GET['userID']}"); > > echo "You have friends!!"; > while ($f = mysql_fetch_assoc($friends)) { > echo " href='socialnetwork.php?userID={$f['userID']}'>{$f['name']} >\n"; > } > > publish(); > profit($greatly); > do (!$use) { > coldfusion('Cause it sucks'); > } > ?> > > (har har) > > > > > > > > On Monday 06 March 2006 9:47 pm, Daevid Vincent wrote: > > Anyone have some pointers at a HowTo on creating a social network? > > > > Basically I need to show people in your immediate network, > and also friends > > of your friends, etc... Like the whole 'six degrees of > separation' thing. > > Ala: myspace, friendster, etc. ad nauseum. > > > > I prefer mySQL and PHP, but I could port from most any > code. I guess I'm > > mostly interested in the theory of this an how do I set up > the tables > > properly and what is the magic incantation (JOIN) to get > this "chain" of > > people. > > -- > 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 -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.1.375 / Virus Database: 268.2.0/275 - Release Date: 3/6/2006 -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP-DB] Help needed creating a social network
Thanks for the reply. However, that only gives me a single degree. I'm looking for the way to traverse a 'tree' to see who is in your extended networks, so I can do things like: You are 4 degrees away from Sam: You know bob who knows john who knows carrol who knows Sam. Sam <- carrol <- john <- bob <- you Etc. > -Original Message- > From: Micah Stevens [mailto:[EMAIL PROTECTED] > Sent: Monday, March 06, 2006 10:28 PM > To: php-db@lists.php.net > Subject: Re: [PHP-DB] Help needed creating a social network > > > CREATE TABLE `users` (userID int(11) not null auto_increment, primary > key(userID), name tinytext not null, email tinytext not null); > > CREATE TABLE `links` (userID int(11), key (userID), friendID int(11), > key(friendID)); > > $friends = mysql_query("select users.name, users.userID from > users left join > links on links.friendID = users.userID where links.userID = > {$_GET['userID']}"); > > echo "You have friends!!"; > while ($f = mysql_fetch_assoc($friends)) { > echo " href='socialnetwork.php?userID={$f['userID']}'>{$f['name']} >\n"; > } > > publish(); > profit($greatly); > do (!$use) { > coldfusion('Cause it sucks'); > } > ?> > > (har har) > > > > > > > > On Monday 06 March 2006 9:47 pm, Daevid Vincent wrote: > > Anyone have some pointers at a HowTo on creating a social network? > > > > Basically I need to show people in your immediate network, > and also friends > > of your friends, etc... Like the whole 'six degrees of > separation' thing. > > Ala: myspace, friendster, etc. ad nauseum. > > > > I prefer mySQL and PHP, but I could port from most any > code. I guess I'm > > mostly interested in the theory of this an how do I set up > the tables > > properly and what is the magic incantation (JOIN) to get > this "chain" of > > people. > > -- > 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
Re: [PHP-DB] Help needed creating a social network
CREATE TABLE `users` (userID int(11) not null auto_increment, primary key(userID), name tinytext not null, email tinytext not null); CREATE TABLE `links` (userID int(11), key (userID), friendID int(11), key(friendID)); You have friends!!"; while ($f = mysql_fetch_assoc($friends)) { echo "{$f['name']}\n"; } publish(); profit($greatly); do (!$use) { coldfusion('Cause it sucks'); } ?> (har har) On Monday 06 March 2006 9:47 pm, Daevid Vincent wrote: > Anyone have some pointers at a HowTo on creating a social network? > > Basically I need to show people in your immediate network, and also friends > of your friends, etc... Like the whole 'six degrees of separation' thing. > Ala: myspace, friendster, etc. ad nauseum. > > I prefer mySQL and PHP, but I could port from most any code. I guess I'm > mostly interested in the theory of this an how do I set up the tables > properly and what is the magic incantation (JOIN) to get this "chain" of > people. -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DB] Help needed creating a social network
Anyone have some pointers at a HowTo on creating a social network? Basically I need to show people in your immediate network, and also friends of your friends, etc... Like the whole 'six degrees of separation' thing. Ala: myspace, friendster, etc. ad nauseum. I prefer mySQL and PHP, but I could port from most any code. I guess I'm mostly interested in the theory of this an how do I set up the tables properly and what is the magic incantation (JOIN) to get this "chain" of people. -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php