Avatar billede rampagezz Nybegynder
13. januar 2008 - 21:20 Der er 15 kommentarer og
1 løsning

sammenlign to felter fra to forskellige tabeller

Hej eksperter

Mit problem er at jeg skal sammenligne to felter, fra hver sin tabel.
Det drejer sig om feltet "username" fra members og "medlem" fra pokaler.
Jeg har prøvet at lave det selv på denne måde.

<?php
$select_bruger = mysql_query ("SELECT username FROM members") or die mysql_error());

while($r_brugere = mysql_fetch_array($select_bruger)) {//Starter whileløkke for hver bruger

$brugernavn = $r_brugere["username"];
?>
<?php
$select_medlem = mysql_query ("SELECT medlem FROM pokaler") or die mysql_error());

while($r_medlem = mysql_fetch_array($select_medlem)) {//Starter whileløkke for hver bruger

$medlem = $r_medlem["medlem"];
?>
<?php
if($username == $medlem){
?>

Den viser blank side.
Jeg er rimelig ny på området.


hvad gør jeg forkert.?

- rampagezz
Avatar billede htx98i17 Professor
13. januar 2008 - 21:26 #1
<?php
$select_bruger = mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem") or die mysql_error());

while($r_brugere = mysql_fetch_array($select_bruger)) {//Starter whileløkke for hver bruger

echo$r_brugere["username"];
}
?>
Avatar billede rampagezz Nybegynder
13. januar 2008 - 21:58 #2
Hmm. Det virker tilsyneladende ikke.. :-(
Avatar billede cot Nybegynder
13. januar 2008 - 22:02 #3
echo$r_brugere["username"];
}
?>

Skal der ikke være mellemrum?
Avatar billede cot Nybegynder
13. januar 2008 - 22:02 #4
altså mellem echo og $r_brugere?
Avatar billede htx98i17 Professor
13. januar 2008 - 22:03 #5
hvis du skal have mere hjælp, må du vise eventuelle fejlmeddelelser eller lave noget output til fejlfinding
Avatar billede rampagezz Nybegynder
13. januar 2008 - 22:14 #6
Den viser på nuværende tidspunkt blank side. Hvordan laver jeg output til fejlfinding?

Jeg har lavet mellemrum ved echo
Avatar billede htx98i17 Professor
13. januar 2008 - 22:17 #7
jeg vil gerne have at du indsætter dette på en side for sig selv til at starte med

<? echo(mysql_num_rows(mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem"))); ?>

hvis den skriver et tal, så findes der usernames og medlemmer som matcher.
Avatar billede rampagezz Nybegynder
13. januar 2008 - 22:36 #8
Ok.. Den skriver 14.  :-)
Avatar billede htx98i17 Professor
13. januar 2008 - 22:39 #9
godt, så vil følgende udskrive en liste...

<?

while($bruger = mysql_fetch_array(mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem"))) {

echo$bruger['username']." findes i begge tabeller<br>";
}

?>
Avatar billede rampagezz Nybegynder
13. januar 2008 - 22:45 #10
Ok.. Cool.. Dvs. Det jeg lægger imellem den while, vil kun blive vist, hvis username og medlem er det samme?
Avatar billede htx98i17 Professor
13. januar 2008 - 22:48 #11
jep, men det vil så blive vist 14 gange i dette tilfælde
Avatar billede rampagezz Nybegynder
13. januar 2008 - 22:49 #12
Hmm.. Hvis jeg nu kun vil have vist 1 gang?
Avatar billede rampagezz Nybegynder
13. januar 2008 - 22:50 #13
Undskyld hvis jeg spørger for meget.. Du har fortjent pointene alligevel.. :-)
Avatar billede htx98i17 Professor
13. januar 2008 - 22:54 #14
så sætter du en limit på din sql der henter 1 post som matcher (den første)

<?

while($bruger = mysql_fetch_array(mysql_query ("SELECT members.username FROM members, pokaler WHERE members.username = pokaler.medlem LIMIT 1"))) {

echo$bruger['username']." findes i begge tabeller<br>";
}

?>
Avatar billede rampagezz Nybegynder
13. januar 2008 - 22:57 #15
Ok. Tusind tak for hjælpen.
Avatar billede htx98i17 Professor
14. januar 2008 - 07:52 #16
np
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