Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Lägg till vän php-script

Skapad av Borttagen, 2010-04-09 16:05 i Webbutveckling & Programmering

1 529
16 inlägg
0 poäng
openoffice
Visningsbild
Hjälte 117 inlägg
0
Hej är det någon som vet hur man gör så man kan lägga till en vän på ens community.
(Är relativt nu med php)

Ingen status

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

iknor
Visningsbild
P 36 Älvsjö Hjälte 3 065 inlägg
0
Svar till openoffice [Gå till post]:

Gör en tabell med fyra kolumner (id, personA, personB, accepted)

id är primärnyckel och auto increment
personA är den som ansöker om vän-förhållande
personB är den som får ansökan
accepted innehåller värdet 0 från början, och det ändras till 1 när personB har godkänt.

Alltså, när användaren openoffice vill bli vän med användaren iknor så läggs det till i din tabell.
Exempel: (1, openoffice, iknor, 0)

När iknor godkänner vän-ansökan så ändras värdet i "accepted-fältet" till 1.

När du sedan vill visa alla vänner som openoffice har så gör du en SQL-sats som hämtar alla relationer där openoffice ingår, och som har accepted-värde = 1

Det är ingen orm, det är en ödla

Razze
Visningsbild
P 30 Linköping Hjälte 161 inlägg
0
Jag skulle föreslå en tabell med fälten:

user_id ;; friend_id


där du lägger dem som:

user_id="ditt_id"
friend_id"dina|vänner|här|i|id|och|explode()|på| | |"

Ingen status

openoffice
Visningsbild
Hjälte 117 inlägg
Trådskapare
0

Svar till iknor [Gå till post]:

Okej tack :)
Hur blir php koden?

Ingen status

iknor
Visningsbild
P 36 Älvsjö Hjälte 3 065 inlägg
0
Svar till openoffice [Gå till post]:

Först måste du skapa två variabler ($personA och $personB). Dessa variabler innehåller de två användarnamnen. Hur du hämtar dom beror lite på hur din kod ser ut i övrigt.
Ett stycke php-kod:

$sql="INSERT INTO vännertabell(personA, personB, accepted)VALUES('$personA', '$personB', '0')";



Det är ingen orm, det är en ödla

openoffice
Visningsbild
Hjälte 117 inlägg
Trådskapare
0

Svar till iknor [Gå till post]:

okej :) Men hur ser koden när person A ska skicka vänförfrågan och koden när personB ska acceptera vänförfrågan?

Ingen status

Klas-Kenny
Visningsbild
P 31 Växjö Hjälte 12 128 inlägg
0

Svar till openoffice [Gå till post]:
Det känns som att du borde läsa tutorials om php istället..

Det är sånt man ska kunna koda själv ;)


Rätt verktyg till rätt arbete - Makaroner äts med sked.

iknor
Visningsbild
P 36 Älvsjö Hjälte 3 065 inlägg
0

Svar till openoffice [Gå till post]:

Antag att personA går in på personB's presentation.
Sedan kanske det finns någon "lägg till som vän"-knapp där. När personA trycker på den knappen så körs det scriptet som jag skrev i det förra inlägget.

När personB loggar in så körs något script som kollar om det finns något fält i vännertabellen där värdet på "personB" är samma som hans användarnamn OCH värdet på "accepted" = 0.
Med andra ord - om någon har skickat en ansökan till honom som han inte har accepterat än.
OM det finns något sånt fält så kan det visas någon ruta där det står vem som vill bli vän med honom (hämtas ur "personA"), och sen en OK-knapp och en "NEJ TACK"-knapp.
Väljer man OK så ändras värdet på "accepted" till 1 och väljer man NEJ TACK så tas den vännerrelationen bort från tabellen.

Det kommer bli en jädra massa kod, men försök klura ut något ur det här :)

Det är ingen orm, det är en ödla

openoffice
Visningsbild
Hjälte 117 inlägg
Trådskapare
0

Svar till iknor [Gå till post]:

hej, nu har jag fått ihop ett script som lägger in userA och userB id i tabellen. Hur gör jag om jag vill att knappen "Lägg till vän" ska försvinna när de två id.na ligger på samma rad i tabellen?

Jag har försökt med if och else men får det inte att fungera
Ett stycke php-kod:
if(!empty($_POST['submit'])) {

$userA = $_SESSION['id'];
$userB = $_GET['id'];
$query = "INSERT INTO vanner VALUES('','$userA','$userB','0')";

if($updateDb = $mysql->query($query) or die($mysql->error)) {
echo "<script type='text/javascript'> alert('En vännerförfrågan har skickats'); </script>";
}
}
echo '<form method="POST" action="">
<input type="submit" name="submit" value="Lägg till som vän" />kategori
</form>';


Ingen status

iknor
Visningsbild
P 36 Älvsjö Hjälte 3 065 inlägg
0

Svar till openoffice [Gå till post]:

Har lite bråttom, säg till om du behöver utförligare svar.
Om personA och personB finns på "samma ställe" i tabellen så visas INTE vän-knappen, annars visas den :)


Det är ingen orm, det är en ödla

eLAJT
Visningsbild
34 Hjälte 2 400 inlägg
0

Svar till openoffice [Gå till post]:

Läs på om PHP och MySQL så lär du dig, simple as that!

Och btw, lär dig att säkra din kod lite.
Det finns gulliga säkerhetshål i din kod, dock orkar jag inte hjälpa dig med dom då du bör lära dig själv.

Men lycka till med din sida.

wat

openoffice
Visningsbild
Hjälte 117 inlägg
Trådskapare
0

Svar till iknor [Gå till post]:
ja, det är det jag kört fast med

Ingen status

iknor
Visningsbild
P 36 Älvsjö Hjälte 3 065 inlägg
0

Svar till openoffice [Gå till post]:

Det finns kanske smidigare sätt, men det här kan nog funka.

Antag att openoffice är inne på iknors profil, och nu vill vi veta om Bli Vän-rutan ska visas.

Gör en loop som loopar igenom alla fält i tabellen vanner.
Om fälten personA och personB innehåller värdena openoffice och iknor så är dom redan vänner, och då ska inte den knappen visas, men den ska visas annars.

Nu kan jag inte php så bra i huvudet, så du får lite pseudokod istället ;)

Inuti loopen finns följande:
if ((personA == openoffice || iknor) && (personB == openoffice || iknor))
Then (De är vänner, knappen visas inte)
Else (Testa nästa rad i tabellen)

Om det inte blir någon träff nånstans så är de inte vänner än, och då visas knappen :)

Det är ingen orm, det är en ödla

openoffice
Visningsbild
Hjälte 117 inlägg
Trådskapare
0

Svar till iknor [Gå till post]:

är så gott som klar med vännerscriptet men if satser kronglar. lägg till vän knappen försvinner när båda namnen finns med i tabellen oavsett vilken rad de ligger på. Min kod ser ut så här nu.
Ett stycke php-kod:
if (($friends['userA'] == $info['id'] || $friends['userA']==$_SESSION['id'])&&($friends['userB'] == $info['id'] || $friends['userB']==$_SESSION['id'])){
echo '';
} else {
echo '<a href="page.php?name=profile&id='. $pageid .'&addfriend='. $info['id'] .'">Lägg till som vän</a>';
}



Ingen status

iknor
Visningsbild
P 36 Älvsjö Hjälte 3 065 inlägg
0
Svar till openoffice [Gå till post]:

Förklara vad följande är:
$friends['userA']
$friends['userB']
$info['id']
$_SESSION['id']

Just nu har jag nämligen ingen aning om vad if-satsen kontrollerar ^^
Sedan har du ingen loop heller, vilket kanske leder till att det krånglar :/
Men som sagt, förklara vilka variabler som håller vilka värden :)

Det är ingen orm, det är en ödla

openoffice
Visningsbild
Hjälte 117 inlägg
Trådskapare
0
$friends['userA'] & $friends['userB'] är när det hämtar data från tabellen "friends" $info['id'] är id på profilen som vissas och $_SESSION['id'] är den inloggades id.

så den kollar om $info['id'] och $_SESSION['id'] är $friends['userA'] och de samma med userB

Ingen status


Forum » Datorer & IT » Webbutveckling & Programmering » Lägg till vän php-script

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

2 utloggade

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons