tillmarMedlem sedan sep. 2002928 inlägg Hej
Ska försöka formulera mig rätt nu... :r
Jag har ett Id-nummer i en session av namnet sess_id, och det jag vill åstakomma är att jag från tabellen "friends" ska plocka ut datan från kolumnen user2 där user1 är lika med sess_id.
Och sedan hämnta ut datan i kolumnen username i tabellen members där Id = user2.
Det jag i slutändan vill kunna skriva ut är id-nummret och Användarnamnet, jag har hört detta ska gå att göra i enfråga mot databasen istället för 2 med hjälp av Inner Join. Har sökt här men blir inte klokare för det.
Skulle vara snällt om någon kunde skriva frågan mot databasen och förklara vad dom olika delarna gör?
Och gärna hur utskriften sker?
Tack på förhand :)
Mvh Tillmar
Peter SMedlem sedan dec. 20025 483 inlägg select m.id
, m.username
from members m
inner
join friends f
on m.id = f.user2
and f.user1 = $sess_id
Med ovanstående hämtas fälten id och username från members där id är lika med fältet user2 i friends och user1 är lika med sess_id.
Hur du hämtar och skriver ut resultatet kan du se här (du skriver ej vilket DBMS, så jag utgår från MySQL).
tillmarMedlem sedan sep. 2002928 inlägg Du har helt rätt jag kör MySQL.
Okej, jag vet hur man skriver ut annars. Så om jag sparar utskriftdatan i en vektor som heter "ar" så blir skillnaden bara att jag skriver $ar['m.username']
Och då hänvisar m till tabellen members och f hänvisar till tabellen friends, har jag förstått det rätt då?
tillmarMedlem sedan sep. 2002928 inlägg Tackar för hjälpen det funkar galant :D
tillmarMedlem sedan sep. 2002928 inlägg Om jag nu kör denna kod så plockas ju username och id från members ut.
select m.id
, m.username
from members m
inner
join friends f
on m.id = f.user2
and f.user1 = $sess_id
Men om jag skulle vilja hämnta ut data från friends med, låt säga ett fält som heter id där i med. Hur går jag tillväga då? :stud
Peter SMedlem sedan dec. 20025 483 inlägg Då gör vi så här:
select m.id
, m.username
[red], f.id[/red]
from members m
inner
join friends f
on m.id = f.user2
and f.user1 = $sess_id
:)
tillmarMedlem sedan sep. 2002928 inlägg Det var ett snabbt svar :)
Självklart är det så.
Testade det själv förut men tror jag glömde avskilja med kommatecken(,). :OO
Men när jag ska skriva ut resultaten hur skiljer jag då på id från members och id från friends?
Skickar med lite kod.
På första echo vill jag skriva ut id från members
Och på andra id från friends.
<?php
$result = mysql_query($query);
while($ar = mysql_fetch_array($result))
{
echo "<a href=\"profil.php?id=".$ar['id']."\">".$ar['username']."</a> ";
echo "<a href=\"friends.php?tabort&id=".$ar['id']."\">X</a><br>";
}
?>
Peter SMedlem sedan dec. 20025 483 inlägg Du kan göra på tre sätt:
echo $row["m.id"];
select [red]m.id as memberid[/red]
, m.username
[red], f.id as friendid[/red]
from members m
inner
join friends f
on m.id = f.user2
and f.user1 = $sess_id
echo $row["memberid"];
echo $row[0];
tillmarMedlem sedan sep. 2002928 inlägg Exempel nr 1 trodde jag skulle gå ,men får felmeddelande på den.
Dock fungerar exempel nr 2 perfekt.
Får tacka ennu en gång ;)
Accepterar detta som slutgiltigt svar, så får vi se ifall det dyker upp fler frågor från mig som passar in här ;)