Avatar billede walkie84 Nybegynder
26. april 2005 - 19:30 Der er 25 kommentarer og
1 løsning

forkert if-sætning

Jeg har en tabel i min db, som hedder buddy.. den indeholder; id, bruger_id og buddy_id !  'id'  bliver automatisk sat hvergang jeg indsætter noget.
bruger_id er mit id, og er det samme hvergang JEG tilføjer en buddy..
buddy_id er id'en på den buddy jeg indsætter, og derved aldrig den samme for mig..

Mit problem er nu, at jeg vil have udskrevet om min buddy er online eller offline..
Jeg har prøvet med nedenstående, men der skriver den både Online og Offline, fordi den både finder at den id jeg leder efter er der, men i næste felt i db'en er den der ikke. hvordan gør man så, hvis $_GET[id] bare findes i db-feltet, så skal den ikke skrive andet?
jeg har udskrevet både $_GET[id] og $_SESSION[id], og der er intet problem med dem(hvis nogle skulle få den tanke :)  ) :


$result11 = mysql_query("SELECT * FROM postsystem_buddy WHERE bruger_id = '$_SESSION[id]'") or die (mysql_error());
while($row11 = mysql_fetch_array($result11)) {

if ($row11[buddy_id] != $_GET[id]) {
    echo "<a href='add'><font color='green'>Tilføj buddy</font></a>";

} else {
    echo "<a href='del'><font color='red'>Fjern buddy</font></a>";

}
}
Avatar billede walkie84 Nybegynder
26. april 2005 - 19:32 #1
undskyld jeg har skrevet forkert.. jeg vil ikke se om de er offline eller online.. jeg vil se om den profil jeg kigger på, er tilføjet i min db.. hvis den er, skal jeg ikke kunne tilføje den igen.. og omvendt.. sorry
Avatar billede sungdk Nybegynder
26. april 2005 - 19:52 #2
Ved ikke om det bare er mig, men kan du ikke skrive det lidt mere klart hvad du skal have hjælp til?

Så kan jeg jo bedre hjælpe dig :D
Avatar billede dennismp Nybegynder
26. april 2005 - 19:55 #3
'id' i buddy tabellen er id'et på den person man tilføjer som buddy?
Avatar billede walkie84 Nybegynder
26. april 2005 - 19:56 #4
nej buddy_id er id'et på den person man tilføjer..
Avatar billede sungdk Nybegynder
26. april 2005 - 19:59 #5
$tjek_result = mysql_query("SELECT * FROM tabel WHERE buddy_id = '$row11[buddy_id]' && bruger_id = '$_GET[id]'") or die (mysql_error());

Hvis jeg har forstået det rigtigt
Avatar billede walkie84 Nybegynder
26. april 2005 - 19:59 #6
jeg ved det godt labisama.. Har lidt svært ved at forklare mit problem..
Jeg skal have noget som siger; hvis $_GET[id] findes i et af rækkerne under et bestemt felt, så skal dette udføres:

echo "<a href='add'><font color='green'>Tilføj buddy</font></a>";

ELLERS

echo "<a href='del'><font color='red'>Fjern buddy</font></a>";

håber det var lidt mere klart..
Avatar billede sungdk Nybegynder
26. april 2005 - 20:00 #7
Den skal ind i while(), og så kan du lave en if med (num_row...)
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:03 #8
hvad kan jeg gøre med num_row?
Avatar billede dennismp Nybegynder
26. april 2005 - 20:08 #9
ok, jeg antager at du også har en user tabel med brugerinfo


SELECT u.id, u.username, b.id as buddy
FROM user u
LEFT JOIN buddy b ON (b.id = u.id AND b.bruger_id = {$_SESSION['id']})
WHERE u.id != {$_SESSION['id']}

Denne SQL giver dig 3 kolonner. 1 og 2 er bare id og navn, den sidste vil være NULL hvis man ikke er buddy,

while($row = mysql_fetch_assoc($res)) {
  if( $row['buddy'] ) {
    eksisterende buddy
  }
  else {
    ikke buddy
  }
}
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:19 #10
pust.. lang tid siden jeg har haft om join-forbindelse ;)

$res = mysql_query("SELECT u.id, u.brugernavn, b.id as buddy
FROM postsystem_brugere u
LEFT JOIN postsystem_buddy b ON (b.id = u.id AND b.bruger_id = {$_SESSION['id']})
WHERE u.id != {$_SESSION['id']}");

while($row = mysql_fetch_assoc($res)) {
  if( $row['buddy'] ) {
    echo "eksisterende buddy";
  }
  else {
    echo "ikke buddy";
  }
}

når jeg indsætter dette, udskriver den begge echo's
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:22 #11
Ved ikke om jeg har skrevet det.. $_SESSION[id] er min id, og $_GET[id] er den jeg vil tilføje..
Avatar billede dennismp Nybegynder
26. april 2005 - 20:23 #12
Ok, for at være sikker. Du skal have en liste over alle din buddies og ikke buddies og så kunne tilføje/fjerne dem, right? Eller er det mig der er ved at løse noget du ikke har brug for? :)

prøv evt at erstatte
echo "eksisterende buddy";

med
echo "<a href='add'><font color='green'>Tilføj {$row['brugernavn']}</font></a>";

og
echo "ikke buddy";

med:
echo "<a href='del'><font color='red'>Fjern {$row['brugernavn']}</font></a>";
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:26 #13
du skal forestille dig at du er inde under en persons profil.. og der skal ejg så kunne tilføje ham som buddy, med mindre han er det i forvejen.. så skal han kunne fjernes..
Avatar billede dennismp Nybegynder
26. april 2005 - 20:29 #14
nååh, så var _labisama_ jo meget tæt på :)

$buddy_id = intval($_GET['id']);
$res = mysql_query("SELECT 1 FROM buddy WHERE bruger_id = {$_SESSION['id']} AND id = '$buddy_id'") or die(mysql_error());

if( $res && mysql_num_rows($res) )
  tilføj buddy
else
  fjern buddy
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:37 #15
hmm, nu skriver den Fjern buddy ligemeget hvad..

Kan det være noget med db'en? id feltet er bare for at have en primær nøgle..
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:39 #16
haha, ved den buddy som er tilføjet står der tilføj buddy.. skal jeg bare gøre omvendt?
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:41 #17
Nu har jeg indsat følgende:

$res = mysql_query("SELECT 1 FROM postsystem_buddy WHERE bruger_id = {$_SESSION['id']} AND buddy_id = '$_GET[id]'") or die(mysql_error());

if( $res && mysql_num_rows($res) ) {
  echo "<a href='del'><font color='red'>Fjern buddy</font></a>";

} else {
  echo "<a href='add'><font color='green'>Tilføj buddy</font></a>";
}

og det ser ud til at virke..
Avatar billede dennismp Nybegynder
26. april 2005 - 20:42 #18
ja - jeg kager vist lidt rundt i det :)
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:45 #19
fedt mand.. det virker sq!! endelig..  igen tusind tak Dennis.. Skriv et svar :)
Avatar billede walkie84 Nybegynder
26. april 2005 - 20:46 #20
også var svaret så simpelt.. jeg har bare siddet og scriptet hele dagen.. tror ikke jeg kan tænke klart mere for idag..
Avatar billede dennismp Nybegynder
26. april 2005 - 20:58 #21
Tag en pause, gå på wc. Det er utroligt hvilke problemer man får løst der. :)
Avatar billede walkie84 Nybegynder
26. april 2005 - 21:00 #22
hehe, sandt.. men nu er jeg snart færdig med mit "community" .. Første gang jeg laver sådan et fra bunden.. lidt spændt er man jo ;)
Avatar billede dennismp Nybegynder
26. april 2005 - 21:02 #23
Må man se? :)

Held og lykke med det, jeg startede også med et community, og er stadig ikke sluppet af med det :)
Avatar billede walkie84 Nybegynder
26. april 2005 - 21:07 #24
Ja da.. det ligger her indtil videre:
http://cs-news.freeit.dk/pl/
ADVARSEL!! jeg har ikke lavet design endnu.. ville være færdig med koden først ;)
Avatar billede walkie84 Nybegynder
26. april 2005 - 21:08 #25
hvilket community har du?
Avatar billede walkie84 Nybegynder
26. april 2005 - 21:12 #26
for 1½ år siden lavede jeg mange dynamiske hjemmesider til folk.. elsker det.!
Såå nu måtte jeg igang igen.. er bare lidt rusten
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