Avatar billede smeier Nybegynder
30. september 2004 - 20:08 Der er 33 kommentarer og
1 løsning

Hjælp til join.

Har ikke rigtigt prøvet at lave join's ;) før.
Ville derfor høre om der var en der kunne sætte følgende sammen til en join.

"SELECT genre_ID FROM genrer_ID WHERE ID=$ID";

"SELECT * FROM db_genrer WHERE genre_ID=genre_ID";

Ved ikke helt om jeg skal skrive $genre_ID til allersidst, men det er selvfølgelig den der bliver fundet genrer_ID.
PS. Lad være med at brokke jer over at navnene er forvirrende, for det ved jeg godt i forvejen.
Avatar billede knico Nybegynder
30. september 2004 - 20:15 #1
Hvis jeg har forstået dig rigtigt må nedenstående være rigtigt:

SELECT * FROM db_genrer a, genrer_ID b WHERE b.ID=$ID AND a.genre_ID=b.genre_ID
Avatar billede eagleeye Praktikant
30. september 2004 - 20:16 #2
Du kan prøv men en inner join:
"select db_genrer.* from db_genrer inner join genrer_ID on db_genrer.genre_ID = genrer_ID.genrer_ID where genrer_ID = $id";
Avatar billede knico Nybegynder
30. september 2004 - 20:22 #3
Ja, jeg kom jo til at selecte alt fra begge tabeller i mit forslag, men ellers gør de det samme. Ved du eagleeye hvad forskellene er på de to metoder? Giver det ene f.eks. bedre ydelse?
Avatar billede smeier Nybegynder
30. september 2004 - 20:27 #4
Den siger fejl. Kan en af jer forklare i tekst hvad den præcist siger, ellers har jeg sku lidt svært ved at tjecke om der er fejl :)
Avatar billede smeier Nybegynder
30. september 2004 - 20:29 #5
ellers må i gerne lige se om denne er korrekt rent semantisk.
$query_genre = "select db_genrer.* from db_genrer inner join genrer_ID on db_genrer.genre_ID = genrer_ID.genrer_ID where genrer_ID = $id";
$result_genre = mysql_query($query_genre);
while ($data_genre = mysql_fetch_row($result_genre)) {
$genre .= "$data_genre[1], $data_genre[2], $data_genre[3], $data_genre[4], $data_genre[5], $data_genre[6], $data_genre[7], $data_genre[8], $data_genre[9], $data_genre[10], $data_genre[11], $data_genre[12]
               
"; }
Avatar billede eagleeye Praktikant
30. september 2004 - 20:29 #6
den jeg har vist er where forkert der mangler et .id:

where genrer_ID.ID = $id";


men hvilken fejl får du?
Avatar billede eagleeye Praktikant
30. september 2004 - 20:31 #7
Du kan altid prøve at rette:
$result_genre = mysql_query($query_genre);

Til dette så udskriver den fejlen hvis der kommer en fejl:

$result_genre = mysql_query($query_genre) die(mysql_error());
Avatar billede eagleeye Praktikant
30. september 2004 - 20:32 #8
hmm der skulle være or foran die.
Avatar billede eagleeye Praktikant
30. september 2004 - 20:33 #9
knico >> Ja de gør det samme, men jeg ved ikke hvilken der er performer bedst.
Avatar billede smeier Nybegynder
30. september 2004 - 20:33 #10
Har rettet den til denne, $query_genre = "select db_genrer.* from db_genrer inner join genrer_ID on db_genrer.genre_ID = genrer_ID.genrer_ID where genrer_ID.ID = $id";

Men får fejlen
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /hsphere/local/home/smeierdk/smeier.dk/spillestederdk/admin/medlemmer_ret.php on line 59

Som er den hvor min while løkke starter.
Avatar billede knico Nybegynder
30. september 2004 - 20:35 #11
eagleeye >> OK, det må jeg prøve at finde ud af.

smeier >> jeg er kun til SQL, der er for meget php i opfølgningsspørgsmålet. Held og lykke.
Avatar billede smeier Nybegynder
30. september 2004 - 20:36 #12
Jo tak. Tak for forsøget.
Avatar billede eagleeye Praktikant
30. september 2004 - 20:36 #13
Prøv at bruge mysql_fetch_array
Avatar billede smeier Nybegynder
30. september 2004 - 20:39 #14
"kan" kun bruge mysql_fetch_row har ikke prøvet det andet. Men den plejer at virke som jeg har skrevet det. Gider du prøve at skrive i tekst $query_genre?
Avatar billede eagleeye Praktikant
30. september 2004 - 20:43 #15
ok ja, så prøv at tjekke at du har connected til databasen
Avatar billede smeier Nybegynder
30. september 2004 - 20:53 #16
Alt det er i orden for jeg kalder den allerede 3-4 steder i forvejen og de lykkedes.
Avatar billede smeier Nybegynder
30. september 2004 - 20:54 #17
Er du sikker på at den er korrekt med hensyn til genre_ID og genrer_ID?
Avatar billede eagleeye Praktikant
30. september 2004 - 20:56 #18
Arh du har ret der er en fejl mere i SQL sætningen:

$query_genre = "select db_genrer.* from db_genrer inner join genrer_ID on db_genrer.genre_ID = genrer_ID.genre_ID where genrer_ID.ID = $id";
Avatar billede smeier Nybegynder
30. september 2004 - 21:01 #19
Den burde være korrekt?!
Avatar billede smeier Nybegynder
30. september 2004 - 21:03 #20
tror jeg dropper join'en og laver den længere men mere simpel i flere kald.
Avatar billede eagleeye Praktikant
30. september 2004 - 21:03 #21
Ja, den skal virke sådan her i tabellen genrer_ID skal den finde kolonne genre_ID hvor kolonne ID=$id ?
Avatar billede eagleeye Praktikant
30. september 2004 - 21:04 #22
eller prøv som knico har vist

"SELECT a.* FROM db_genrer a, genrer_ID b WHERE b.ID=$ID AND a.genre_ID=b.genre_ID";
Avatar billede smeier Nybegynder
30. september 2004 - 21:05 #23
skrev han ikke selv der var fejl i den?
Avatar billede eagleeye Praktikant
30. september 2004 - 21:07 #24
Det var at den henter alle kolonne fra begge tabeller. Prøv som den sidst er vist.
Avatar billede smeier Nybegynder
30. september 2004 - 21:11 #25
Siger præcis den samme fejl. Jeg prøver at lave den mere simpel så kan jeg selv finde prøve at finde fejlen. Skriver tilbage når jeg finder ud af om og hvafor en jeg bruger.
Avatar billede eagleeye Praktikant
30. september 2004 - 21:14 #26
Kan du prøve at udskrive SQL sætningen og se $id kommer korrekt ind?
Avatar billede smeier Nybegynder
30. september 2004 - 21:17 #27
hvordan?
Avatar billede eagleeye Praktikant
30. september 2004 - 21:18 #28
echo $query_genre;
Avatar billede smeier Nybegynder
30. september 2004 - 21:23 #29
HVis jeg udskriver den lige efter $result_genre = mysql_query($query_genre);
Får jeg nedenstående. Og det er det korrekte id

SELECT a.* FROM db_genrer a, genrer_ID b WHERE b.ID=79 AND a.genre_ID=b.genre_ID
Avatar billede eagleeye Praktikant
30. september 2004 - 21:29 #30
hmm det lyder lidt underligt prøv at skrive den sådan her:

$query_genre = "select db_genrer.* from genrer_ID left join db_genrer on genrer_ID.genre_ID = db_genrer.genre_ID where genrer_ID.ID = $id";

Prøv at udskrie mysql_num_rows():

$result_genre = mysql_query($query_genre) or die(mysql_error());
echo mysql_num_rows($result_genre);
Avatar billede smeier Nybegynder
30. september 2004 - 21:44 #31
Først fandt jeg ud af at jeg havde skrevet ID med stort i tabelnavnet. Der skulle stå id - Det rettede jeg nu står der Unknown column 'aa6627a85d6628fd248dd4672016020d' in 'where clause'
Avatar billede smeier Nybegynder
30. september 2004 - 21:46 #32
Nu fik jeg rettet den helt og nu udskriver den 1. Så jeg prøver lige at se om det virker helt.
Avatar billede smeier Nybegynder
30. september 2004 - 21:47 #33
Nice nu virker det. Sorry at jeg tog din tid for sådan nogle åndsvage fejl. Smid et svar.
Avatar billede eagleeye Praktikant
30. september 2004 - 21:48 #34
ok ;)
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