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
?Onbekende gebruiker
12-10-2004 20:24
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;
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?
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.
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
<?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
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 :>
$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...
?Onbekende gebruiker
13-10-2004 08:45
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.
?Onbekende gebruiker
22-10-2004 17:03
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 ?