Avatar billede kajbi Nybegynder
25. november 2005 - 22:15 Der er 6 kommentarer og
1 løsning

Venne system

Hej.

Jeg har et community som jeg nu vil lave et venne system.
Men når man har ansøgt og godkendt kommer der fx.
John er ikke på Kims venne liste, men Kim er på Johns venne liste.
Hvordna laver jeg sådan  John er på kims venneliste og omvendt?

Den kode jeg bruger nu er her:

$v1 = mysql_query("SELECT * FROM kajbi_venner WHERE brugernavn = '$_GET[login_username]' AND godkendt = 'ja'");
if (mysql_num_rows($v1) > 0) {
while ($venner = mysql_fetch_array($v1)) {
$venn = mysql_query("SELECT * FROM kajbi_login WHERE login_username = '".$venner["spurgt"]."'");
$r = mysql_fetch_array($venn);
echo '<a href="?side=logind/profil&login_username='.$venner['spurgt'].'"><u>'.$venner['spurgt'].'</u></a> -&nbsp;';
if($r[login_status2] == "Online")
{
echo("<font color=green>Online.</font>");
}
if($r[login_status2] == "Offline")
{
echo("<font color=red>Offline.</font>");
}
echo '<br>';
}
} else {
echo 'Han/Hun har ikke nogle venner.';
}
?>

mvh.
Kajbi.dk
Avatar billede nielle Nybegynder
26. november 2005 - 10:06 #1
Nu er det vel ikke 100% sikkert at john ønsker at være ven med kaj, blot fordi kaj ønsker at være ven med john?!

Uanset hvad så vil jeg foreslå at du laver en ny tabel til formålet:

tabel: vennepar

felter:
id
ven1_id
ven2_id

id'et er id-et på venneparet.

ven1_id peger på en af dine bruger, og ven2_id peger på en anden.

Hvis der er en række i tabellen:

534, 42, 43

- så betyder det at din bruger med id=42 er ven med brugeren med id=43. Hvis det er sådan at john skal være ven med kaj, og kaj skal være ven med john så kunne du have to rækker:

534, 42, 43
535, 43, 42

- eller du kunne nøjes med en række, så så bare fortolke det som om at 42 og 43 er hinanesn venner.
Avatar billede kajbi Nybegynder
26. november 2005 - 13:03 #2
Det fatter jeg ikke noget af!

Sådan ser min tabel ud nu!
CREATE TABLE `kajbi_venner` (
  `id` int(11) NOT NULL auto_increment,
  `brugernavn` varchar(50) NOT NULL default '',
  `spurgt` varchar(50) NOT NULL default '',
  `godkendt` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;

Hvad er PHP koden ting for at de begge kan se hianden?
Avatar billede nielle Nybegynder
26. november 2005 - 13:27 #3
Rent faktisk har du allerede gjort det på nogenlinde på den måde som jeg har skitseret :^)

Du kander dog bare felterne noget andet:

ven1_id = brugernavn
ven2_id = spurgt

Godt nok ville jeg heller bruge id'erne i stedet for selve navnene.

Dette ekunne være et bud å en løsning:

$sql1  = "(SELECT spurgt AS ven FROM kajbi_venner WHERE brugernavn = '$_GET[login_username]' AND godkendt = 'ja')"
$sql1 .= " UNION ";
$sql1 .= "(SELECT brugernavn AS ven FROM kajbi_venner WHERE spurgt = '$_GET[login_username]' AND godkendt = 'ja')"
$query1 = mysql_query($sql1) or die(mysql_error());

if (mysql_num_rows($query1) > 0)
{
    while ($row1 = mysql_fetch_assoc($query1))
    {
        echo '<a href="?side=logind/profil&login_username=' . $row1['ven'] . '"><u>' . $row1['ven'].'</u></a> -&nbsp;';

        $sql2 = "SELECT * FROM kajbi_login WHERE login_username = '" . $row1["ven"] . "'";
        $query2 = mysql_query($sql2) or die(mysql_error());
        $row2 = mysql_fetch_assoc($query2);

        if ($row2["login_status2"] == "Online")
        {
            echo("<font color=green>Online.</font>");
        }

        if ($row2["login_status2"] == "Offline")
        {
            echo("<font color=red>Offline.</font>");
        }

        echo '<br>';
    }
}
else
{
    echo 'Han/Hun har ikke nogle venner.';
}
?>
Avatar billede kajbi Nybegynder
26. november 2005 - 15:23 #4
Tak det virker! Ligger du lige et svar eller hvad?
Avatar billede nielle Nybegynder
26. november 2005 - 16:00 #5
Svar :^)
Avatar billede kajbi Nybegynder
26. november 2005 - 17:21 #6
Lukker
Avatar billede nielle Nybegynder
26. november 2005 - 18:06 #7
Takker for point :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester