Avatar billede Slettet bruger
27. maj 2010 - 14:12 Der er 5 kommentarer og
1 løsning

hvordan bruger jeg enten inner join for at sætte 2 querys sammen.

hej eksperter..

hvordan sætter jeg disse 2 sammen til en

$get = mysql_query("SELECT * FROM profilepicture WHERE username = '".$_SESSION['username']."'");

$get = mysql_query("SELECT * FROM humorstatus ORDER BY id DESC LIMIT $start, $per_page");

så den henter fra begge på samme tid..

har læst meget, men forstår ikke helt hvordan man gør.
Avatar billede majbom Novice
27. maj 2010 - 14:22 #1
jeg vil ikke mene at det giver mening at "inner joine" de 2 queries da de ikke har nogle relationer til hinanden.

du kan dog godt køre begge queries i ét kald, men det er ikke en inner join.
Avatar billede RexReptiles Nybegynder
27. maj 2010 - 15:32 #2
som splazz siger - ingen grund til at joine de 2.

et eksmpl. på at joine tabeler kunne være:

mysql_query("SELECT * FROM nyheder LEFT JOIN brugere ON nyheder.bruger_id = brugere.id WHERE nyheder.dato > $en_maaned_siden AND nyheder.privat = '' ORDER BY nyheder.id DESC");
27. maj 2010 - 19:10 #3
Du kommer nok til at forklare lidt om hvad du har i tabellerne "profilepicture" og "humorstatus".  Det synes klart at "profilepicture" indeholder en raekke for hver user saaledes at queryen "SELECT * FROM profilepicture WHERE username = ...." giver et enkelt resultat (eller nul resultater hvis "profilepicture" ikke indeholder nogen user med det opgivne navn.)  Hvad indeholder saa "humorstatus"?  Et antal humoristiske ting der ikke har tilknytning til individuelle users?  Eller har de?  Den id der sidder i "humorstatus" er det en humorstatus-id eller er det en en reference til en user-id? 

Hvis id-en i "humorstatus" referer til en user-id og "profilepicture" ogsaa indeholder en user-id saa bliver din inner join query denne:

$get = mysql_query("SELECT p.*, h.* FROM profilepicture p INNER JOIN humorstatus h ON p.id = h.id WHERE p.username = '".$_SESSION['username']."' ORDER BY id DESC LIMIT $start, $per_page");

Hvis indholdet i "humorstatus" ikke har nogen tilknytning til indholdet i "profilpicture" kan du lave saadan en query:

$get = mysql_query("SELECT p.*, h.* FROM profilepicture p, humorstatus h WHERE p.username = '".$_SESSION['username']."' ORDER BY h.id DESC DESC LIMIT $start, $per_page");
Avatar billede Slettet bruger
28. maj 2010 - 00:37 #4
øh hmm, min profilepicture er:

CREATE TABLE IF NOT EXISTS `profilepicture` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(150) NOT NULL,
  `name` varchar(150) NOT NULL,
  `lastname` varchar(150) NOT NULL,
  `imagelocation` longtext NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

og min humorstatus er:

CREATE TABLE IF NOT EXISTS `humorstatus` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(150) DEFAULT NULL,
  `humorstatus` longtext,
  `dato` varchar(150) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
28. maj 2010 - 06:03 #5
Jamen i saa fald kan vi jo snildt lave en join query.  Jeg skal foreslaa to forskellige queries, en kort query der gaar ud fra at du ikke har brug for at vise id og username og en laengere query der har hele mollevitten med:

$get = mysql_query("SELECT name, lastname, imagelocation, humorstatus, dato FROM profilepicture p JOIN humorstatus h ON p.username = h.username WHERE p.username = '".$_SESSION['username']."' ORDER BY h.id DESC LIMIT $start, $per_page")

$get = mysql_query("SELECT p.id, p.username, name, lastname, imagelocation, h.id, humorstatus, dato FROM profilepicture p JOIN humorstatus h ON p.username = h.username WHERE p.username = '".$_SESSION['username']."' ORDER BY h.id DESC LIMIT $start, $per_page")

Jeg har ikke testet dine WHERE og LIMIT klausuler.  Jeg gaar ud fra at de virker i dit system.
Avatar billede Slettet bruger
28. maj 2010 - 11:11 #6
tak for det Christian_Belgien, mange tak.. det virkede..
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