Avatar billede folmerdude Nybegynder
04. december 2008 - 13:21 Der er 7 kommentarer

SQL Joins PHP

Hejsa ..

Jeg har et problem der sikkert er meget enkelt at løse ..

Jeg er ved at kode en begivenhedsliste over seneste begivenheder for brugerne, lidt ala facebook..

Den hedder altså

"db_historie" og har

status_id
status_dato
status_besked
status_logo

hvor altså "status_besked fortæller om id'en for tingen.

fx hvis bruger 1 bliver ven med bruger 2 fortæller "status_besked" = 1


Mit problem er når jeg skal til at hive dataerne ud af "db_historie" gør jeg sådan:

$result=dbquery("SELECT * FROM ".$db_prefix."historie
            LEFT JOIN db_users ON user_id = status_besked
            LEFT JOIN db_threads ON thread_id = status_besked
            LEFT JOIN db_favorit ON favorit_af = status_besked
            LEFT JOIN db_comments ON comment_item_id = status_besked
            LEFT JOIN db_update ON update_id = status_besked

            WHERE user_id='".$_GET['lookup']."' ORDER BY status_dato DESC LIMIT 8" );

Mit problem er at når jeg hiver data ud bliver der 3-4 gange flere informationer der er dublikeret, selvom at "db_historie" kun viser 1.

Altså hvis der er en ting i "db_historie" viser outputtet 5-6 stykker af de samme?

Det må have noget med mine joins at gøre?


- Hjælp! :D
Avatar billede jakobdo Ekspert
04. december 2008 - 20:51 #1
Hvad hvis du laver:

SELECT DISTINCT * FROM ....

I stedet for * kunne du også kun trække de felter ud du skal bruge.
Avatar billede folmerdude Nybegynder
04. december 2008 - 21:11 #2
Prøv at forklare, Sådan så jeg kun trækker "status_besked" ud fra "db_historie" eller? eller ved de felter jeg join'er? hvordan ville koden så se ud?
Avatar billede jakobdo Ekspert
04. december 2008 - 21:31 #3
Prøv lige distinct først.
Avatar billede folmerdude Nybegynder
04. december 2008 - 21:33 #4
Modtaget, men hvor?, hvordan vil sætningen se ud?
Avatar billede jakobdo Ekspert
04. december 2008 - 21:38 #5
Tjek lige: Kommentar: jakobdo
04/12-2008 20:51:50
Avatar billede folmerdude Nybegynder
04. december 2008 - 21:49 #6
Nu forstår jeg, pyh, hvilken misforståelse.. nok fordi jeg ligger syg, så har lidt slået hovedet fra..

Jeg prøvede det lige, men så dog ikke ud til at virke.. outputtet er stadig 5+ selvom der egentlig kun er et datasæt i "db_historie"..
Avatar billede jakobdo Ekspert
05. december 2008 - 08:13 #7
Så tror jeg desværre ikke jeg er til meget hjælp ellers, beklager.
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