20. oktober 2010 - 19:42Der er
20 kommentarer og 1 løsning
Venneliste - PHP
Jeg har et Problem med denne kode
<?php $get = $_GET['mid']; // den henter hvilken profil man er inde på. $id = $session->username; // Det er personen der er logget ind if($get == $id){
} else{ mysql_connect("xxx", "xxxx", "xxxx6") or die(mysql_error()); mysql_select_db("xxx") or die(mysql_error()); $result = mysql_query("SELECT * FROM friendlist") or die(mysql_error()); while($row = mysql_fetch_array( $result )) { $modtageren = $row['modtageren']; $afsenderen = $row['afsenderen']; $accepteringen = $row['accepteringen']; } // fejlen er her.. if( $afsenderen == $get and $afsenderens == $id){ echo "<h3> Du har ansøgt denne person."; } } else ($afsenderen == $id and $afsenderens == $get and $accepteringen == 1){ echo "du er allerede ven med denne person"; }
Mit problem er at den kun tar efter den første row i min database, der hvor der står (Fejlen er her) men hvis jeg så flytter "}" lidt ned, så viser den stadig min form, som den ikke skal vise hvis (if/else) passer...
Jeg vil have at hvis den ikk kan finde noget om Begge profiler/brugere så skal den vise selvste formen, ellers skal den ikk vise den. men kan ikk få det til at virke rigtigt. har prøvet med elseif. det virker heller ikke.. (:
$get = $_GET['mid']; // den henter hvilken profil man er inde på. $id = $session->username; // Det er personen der er logget ind $showform = false;
if ($get == $id) { // Et eller andet kode her ... } else { mysql_connect("xxx", "xxxx", "xxxx6") or die(mysql_error()); mysql_select_db("xxx") or die(mysql_error());
$result = mysql_query("SELECT * FROM friendlist") or die(mysql_error());
if ($afsenderen == $get and $afsenderens == $id) { //$afsenderens, hvor har du den variabel henne? echo "Du har ansøgt denne person."; } elseif ($afsenderen == $id and $afsenderens == $get and $accepteringen == 1) { echo "du er allerede ven med denne person"; } else { $showform = true; } }
Koden er bare en del af en side. Alle de der session og alt det har jeg fra en anden side. prøver lige koden
Synes godt om
Slettet bruger
20. oktober 2010 - 21:47#6
og $afsenders det er $modtageren, havde bare lige skrevet fejl da jeg skulle skrive den ind her
Synes godt om
Slettet bruger
20. oktober 2010 - 21:50#7
Det virker ikk den du har lavet. fordi så når man har trykket på den brude der stå " du har ansøgt denne person" og hvis man er venner "Du er venner med denne person" men selvom man har trykket ansøg en gang, så kan man blive ved alligevel. Formen skal bare forsvinde når man har trykket 1 gang.
Så er det fordi at du har en fejl i dine variabler... Det virker den måde jeg har lavet. Hvis du kan se formen stadig, er det fordi at dine if sætninger ikke går igennem.
$afsenderen == $get and $afsenderens == $id
eller
$afsenderen == $id and $afsenderens == $get and $accepteringen == 1
Fordi du slutter den egentligt fordi den henter kun 1 row ud. Så den går efter den første i min tabel, Tror man skal flytte "}" ned under Alle de der else/if men det kan jeg ikk. så opstår der fejl
Synes godt om
Slettet bruger
20. oktober 2010 - 23:20#12
Jeg kan ikk få det til at virke, altså lige meget hvad kommer den der form hele tiden frem?
Hvorfor kan det være begge 2? Man er logget ind for at se det her .. Så du har brugernavn i en variabel. Så skal du finde ud af om ham som er logget ind er venner med den profil han er inde på eller om han har ansøgt den. Det gør du ved at hente data ud fra den ene profil han er inde på?
Der er ikke fejl i det jeg har lavet ... Det som jeg har lavet, er det samme som du har, bare med lidt oprydning og tilføjelse af det som du ønsker. Du kan godt smide dine if sætninger ind i din løkke, men det vil ikke give dig den ønskede effekt, for så er det bare den sidste i din tabel, som afgør hvad der skal vises.. Og stadig ikke den rigtige bruger...
Synes godt om
Slettet bruger
20. oktober 2010 - 23:31#14
Hey webweaver Det du har lavet er der faktisk en fejl på.. fordi at når man har trykket ansøgt, eller man har accepteret venneanmodningen kan man stadig trykke ansøg som ven
Synes godt om
Slettet bruger
20. oktober 2010 - 23:33#15
Og læs det jeg skrev i #11
Synes godt om
Slettet bruger
20. oktober 2010 - 23:36#16
Og hvis man sætter $result = mysql_query("SELECT * FROM friendlist WHERE `afsenderen` = '$id'") or die(mysql_error()); så henter den jo kun ham der er logget ind og tar bestemt ud fra det. så det ville ikk hjælpe. fordi hvis en bruger der hedder test ansøger test1 om venskab. så vil test ikk kunne ansøge ham. men test1 ville kunne ansøge test. så det de ville være dobbeltvenner. fungere heller ikke
Hvis du kan se formen/ansøge om venskab stadig, er det fordi at $afsenderen == $get and $afsenderens == $id
eller
$afsenderen == $id and $afsenderens == $get and $accepteringen == 1
ikke er opfyldt! Præcis som det er meningen. Det er dig som har bragt det kode her i tråden. Det er ikke en fejl.
Jeg har læst det du skrev i #11. Vil du gerne have hjælp eller ej?
Siden du skal trække 2 ud af databasen, hvordan har du opbygget din tabel?
Prøv denne SQL, har ikke afprøvet om den virker..
mysql_query("SELECT * FROM friendlist WHERE afsender = '$get' AND modtager = '$id' OR (afsender = '$id' AND modtager = '$get')") or die(mysql_error());
Jeg må sige, at jeg heller ikke helt kan gennemskue din idé med if sætningen. Det er lidt svært at vide, når man kun kan se et udsnit af koden.
if ($afsenderen == $get and $afsenderens == $id)
hvad så hvis
$afsenderen == $id og $afsenderens == $get) og acceptering ikke er 1 fx?
Synes godt om
Slettet bruger
21. oktober 2010 - 11:53#18
Hmm webweaver. hvordan ville du ellers lave sådan en venneliste? hvis man ikk skal bruge det med else og if?
Men kan ikke se logikken i din kode. Du kan stadig godt bruge noget i samme stil, men den skal vel bare tage højde for begge situationer. Ligesom du ønsker i dit SQL statement.
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.