Re: Re: Linking stuff

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jul 8, 2008, at 3:38 PM, Shawn McKenzie wrote:

Philip Thompson wrote:
Hi all.
I think I might be having a brain-fart afternoon, but I can't think of how to accomplish this. I want these "centers" to be linked to 1 another. If center A links to B and C, I want B to be linked to A and C, and C to A and B. So... it should look something like this:
center  link
A       B
A       C
B       A
B       C
C       A
C       B
These results will be stored in a database and each of the records is unique. To slightly simplify things (hopefully!), I can just store each of the centers in an array, like so: array(A,B,C,D). I figure I'll have to loop through the array (several times?) and do comparisons with each other one. Basically, I don't want to over-complicate this for myself. Any guiding light would be appreciated on how to link all of these!
Thanks
~Philip

Well, it depends upon what you want to do with these. You'll have them in a db, so it's easy to get them out as an array. What's the problem?

-Shawn

Ok, I figured out one solution. My brain finished farting. Here's what I came up with:

<?php
$center_ids = explode(",", $_POST["list"]);
$count = count ($center_ids);
$list = array();

for ($i=0; $i<$count; $i++) {
    for ($j=0; $j<$count; $j++) {
if ($j != $i && !in_array($center_ids[$j], $list[$center_ids[$i]])) {
            $list[$center_ids[$i]][] = $center_ids[$j];
        }
    }
}

foreach ($list as $cid1 => $array) {
    foreach ($array as $cid2) {
$db->query("INSERT INTO `center_link` (`center_id`, `link_center_id`) VALUES ('$cid1', '$cid2')");
    }
}
?>

The resulting array for $list (if centers 1, 2 and 3 are selected) is:

Array
(
    [1] => Array
        (
            [0] => 2
            [1] => 3
        )

    [2] => Array
        (
            [0] => 1
            [1] => 3
        )

    [3] => Array
        (
            [0] => 1
            [1] => 2
        )
)

If there's a cleaner/better way, feel free to set me straight. ;)

Thanks for your input, guys.

~Phil

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux