Vriendenlijst ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

12/10/2004 16:55:00
Quote Anchor link
Hey,

Ik ben al een tijdje bezig om het voor elkaar te krijgen dat members elkaars vriendjes kunnen worden. Kijk bijv op http://www.dopetown.com/leden/profiel.php?naam=MaffeDodo

Ik heb echt vreselijk zitten stoeien maar kom er echt niet uit.

Het is voor een site van een sportclub voor de kleintjes.

Is er iemand die zoiets heeft of wil helpen daarbij ?
Als iemand vriendje wil worden moet de andere persoon dat bevestigen.

Hoop dat iemand een oplossing heeft.
 
PHP hulp

PHP hulp

24/11/2024 00:08:32
 
Elwin - Fratsloos

Elwin - Fratsloos

12/10/2004 17:02:00
Quote Anchor link
Aangezien je niets verteld over je huidige systeem, vertel ik er maar even bij dat ik ervan uit ga dat je werkt met een database met daarin een tabel met de gebruikers.

Om vriendjes te worden moet je dus twee gebruikers aan elkaar koppelen. Hiervoor sla je dus in een nieuwe tabel van je database het gebruikersnummer (id?) van de ene en die van de andere op. Vervolgens sla je nog een 0 op in een laatste kolom die staat voor een bevestiging. (hint INSERT)

'Wannabee vrienden' staan nog op 0, welke in een 1 veranderd moet worden als hij/zij geaccepteerd wordt. (hint: UPDATE)

Kijken welke vrienden je hebt is heel simpel. Haal gewoon alles uit de DB waar id1 of id2 je eigen id is. Sorteer bijvoorbeeld eerst op wannabee en daarna op naam. (hints: SELECT, WHERE, ORDER BY en joins)

Elwin
 

12/10/2004 20:24:00
Quote Anchor link
Hoi bedankt voor je reply. Sorry dat ik inderdaad niet helemaal volledig was. Ik heb het als volgt

//---------------DATABASE----------//
CREATE TABLE users (
id int(10) unsigned NOT NULL auto_increment,
nick varchar(50) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;

CREATE TABLE vrienden (
id int(10) unsigned NOT NULL auto_increment,
userid int(10) default NULL,
friendid int(10) default NULL,
usernick varchar(50) default NULL,
validate int(10) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
//------------------------------------//

//------------USERPAGE-----------//
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
  
mysql_connect ('localhost','root','');
mysql_select_db ('vrienden');
        


if (isset($_POST["bevestiging"])){
            
    $query="INSERT INTO vrienden (userid, friendid, usernick, validate) ";
    $query .= "VALUES ('";
    $query .= $_POST["userid"] ."', '" ;
    $query .= $_POST["friendid"] ."', '" ;
    $query .= $_POST["usernick"] ."', '" ;
    $query .= $_POST["validate"] ."');" ;
    $result = mysql_query($query) or dir ("FOUT: " . mysql_error());
    if ($result){
        echo ("<B>" .$_POST["usernick"] . "</b> is toegevoegd als vriendje en je moet nu wachten op validatie van " .$_POST["usernick"] . "<br>\n");
    }
}

        
        
   $sql = "SELECT * FROM users";
   $resultaat = mysql_query($sql);
   $aantal = mysql_num_rows($resultaat);
   echo "Er zijn <b>$aantal</b> members (zie hieronder):<br>\n";

   while ($record = mysql_fetch_object($resultaat)) {
    
     echo "<b>$record->id</b>. $record->nick\n";
     echo "<form action=\"index.php\" method=\"post\">\n";
     echo "<input type=\"hidden\" name=\"friendid\" value=\"$record->id\">\n";
     echo "<input type=\"hidden\" name=\"usernick\" value=\"$record->nick\">\n";
     echo "<input type=\"hidden\" name=\"userid\" value=\"1\">\n";
     echo "<input type=\"hidden\" name=\"validate\" value=\"0\">\n";
         echo "<input type=\"hidden\" name=\"bevestiging\" value=\"1\">\n";
         echo "<input type=\"Submit\" value=\"Vriendje aanvragen\">\n";
     echo "</form><BR>\n";
   }

?>

//------------------------------------//

Dat invoegen werkt allemaal. Dat is niet zo moeilijk :)

Nu moet het natuurlijk zo zijn dat als ik user1 ben en user3 staat al in m'n vriendenlijst dat de knop veranderd in "Vriendje verwijderen"

Dat is dus iets wat ik niet voor elkaar krijg hahaha
 
Elwin - Fratsloos

Elwin - Fratsloos

12/10/2004 20:58:00
Quote Anchor link
Ik snap je database niet helemaal goed. Waarom sla je de nickname van een friend op? Dat is toch heel omslachtig als die naam gewijzigid wordt? Dan moet je namelijk in meerdere tabellen die troep wijzigen.. Dit is dus een duidelijk voorbeeld van redundantie... Ik kan je aanraden om je database te Normaliseren. Je kan immers de nickname van een friend ophalen door middel van zijn/haar id.

Maar goed.. je probleem.. je wilt een 'verwijder button' bij je vrienden?
Quote:
Nu moet het natuurlijk zo zijn dat als ik user1 ben en user3 staat al in m'n vriendenlijst dat de knop veranderd in "Vriendje verwijderen"
Maar dat is toch helemaal geen probleem. Als jij user 1 bent lees je toch gewoon alle records uit de DB uit waarin user 1 staat en validate 1 is (of iig de waarde die jij het geeft als het bevestigd is). Alle records die die query ophaalt zijn automatisch je friends en krijgen zo'n knop achter de naam.

Elwin
 
Beuk

Beuk

12/10/2004 23:09:00
Quote Anchor link
Uitgaande van:
Eigen ID is 1 (die haal je normaal dus uit je DB)
'ik' is in dit geval de ingelogte persoon, 'hij' is een willekeurige andere persoon

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php

$query
=mysql_query("SELECT * FROM vrienden WHERE userid = '1' OR friendid='1'");

while ($data=mysql_fetch_array($query)) {

    if ($data['validate'] == '1') { // als 'ik' en 'hij' vriendjes zijn
        print "Vriendje verwijderen";
    }

    
    if ('1' == $data['userid']) {

        if ($data['validate'] == '0') { // als 'ik' degene ben die de vriendschap heb aangevraagt, maar nog niet is geaccepteerd
            print "Nog niet geaccepteert";
        }

    }

    elseif ('1' == $data['friendid']) { // als 'hij' degene is die de vriendschap heb aangevraagt, en 'ik' het nog niet geaccepteert is


        if ($data['validate'] == '0') {
            print "Vriendje accepteren / Vriendje weigeren";
        }

    }

}


?>


zouden bugs in kunnen zitten, heb niet kunnen testen.
en ik zou die 'usernick varchar(50) default NULL,' er idd uit zetten, is nutteloos, en alleen maar lastig.

GR
Beuk

Uitkomsten kunnen dus zijn:

Vriendje verwijderen
Nog niet geaccepteert
Vriendje accepteren / Vriendje weigeren

en je bent zelf zo vrij om daar mooie buttons of links van te maken :>
Gewijzigd op 12/10/2004 23:14:00 door Beuk
 
Beuk

Beuk

12/10/2004 23:12:00
Quote Anchor link
nog een klein niet zo belangrijk foutje:

$result = mysql_query($query) or dir ("FOUT: " . mysql_error());

moet zijn

$result = mysql_query($query) or die ("FOUT: " . mysql_error());


en je moet ook rekening houden met je doelgroep...
aan de ene kant gebruik je woorden als 'Vriendjes', wat goed is, maar 'validatie'...
betwijfel of veel van die voetballertjes dat begrijpe...
Gewijzigd op 12/10/2004 23:17:00 door Beuk
 

13/10/2004 08:45:00
Quote Anchor link
Bedankt ik ga hier mee stoeien.

Elwin (a.k.a. SpaceFrog) : De nicknames zijn niet te wijzigen door de gebruikertjes :) Maar je hebt eigenlijk wel gelijk !

Beuk : Dit is natuurlijk een hele ruwe versie dus qua bewoordingen wordt alles zo simplistisch mogelijk gemaakt.

In ieder geval super dat jullie me hier mee willen helpen.
 

22/10/2004 17:03:00
Quote Anchor link
Nou ben eigenlijk al bijna klaar

Het enige wat nu nog niet lukt is dat als ik een vriendje accepteer doormiddel van een link die dan de UPDATE uitvoert dat ie ook tegelijkertijd een nieuwe row aanmaakt in de database dat ik ook vriendje van hem ben.

Nu is het zo dat ik wel in zijn lijstje sta van vriendjes maar hij niet in die van mij.

Dus is dat mogelijk ?

Met een link de UPDATE query uitvoeren + een query voor een INSERT ?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.