Gå til innhold

Trenger litt hjelp med JOIN ved MySQL


Anbefalte innlegg

Dette er spørringen jeg har nå...

$mysql_string = "SELECT * FROM artikler, brukere WHERE artikler.user_id = brukere.user_id";

 

 

artikler tabellen består av følgende kolonner

 

art_id

user_id

tittel

tid

kategori

brodtekst

ingress

bilde

siste_oppdatering

 

brukere tabellen består av følgende kolonner

 

user_id (primær)

name

pass

 

Jeg klarer å legge artiklene inn med rett user_id men jeg klarer ikke koble sammentabellene når jeg skal skrive de ut igjen...

 

Jeg ber ikke om svar på denne oppgaven spesielt men bare en forståelse for hvordan det gjøres..

 

Det jeg ønsker å få ut er alle radene i artikler tabellen og name fra brukere tabellen.

Endret av vi er lost
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

SELECT * FROM artikler a INNER JOIN brukere b on a.user_id = b.user_id

Tror den skal funke :)

 

Der har du et svar. Jeg tror ikke at jeg skal prøve å forklare hvordan det funker, for da vil du mest sannsynlig ikke skjønne noe som helst :hm:

Endret av Slettet+142
Lenke til kommentar
SELECT * FROM artikler a INNER JOIN brukere b on a.user_id = b.user_id

Tror den skal funke :)

 

Der har du et svar. Jeg tror ikke at jeg skal prøve å forklare hvordan det funker, for da vil du mest sannsynlig ikke skjønne noe som helst :hm:

Jeg kobler til databasen i et annet script som blir kjørt lengre oppe..

Her er den delen av scriptet som henter ut dataene.

 

$mysql_string = "SELECT * FROM artikler a INNER JOIN brukere b on a.user_id = b.user_id";

$mysql_string = mysql_query("$mysql_string");

while($utlisting = mysql_fetch_assoc($mysql_string)) <-----Detter er linje fire

 

Men jeg får denne feilmeldingen:

 

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/ganskeen/public_html/admin/rediger_nyheter.php on line 4

 

Jeg har lest litt på www.devsiden.info og mysql dokumentasjonen men blir ikke klokere...

Lenke til kommentar
Gjest Slettet+142

Da er det vel noe feil i SQL. Om det er jeg som har glemt noe i SQLen eller om det er feil med navn på kolonner eller tabeller vet jeg ikke, men det kan vi finne ut slik :)

$mysql_string = "SELECT * FROM artikler a INNER JOIN brukere b on a.user_id = b.user_id";
$mysql_string = mysql_query("$mysql_string");
while($utlisting = mysql_fetch_assoc($mysql_string)) <-----Detter er linje fire
echo mysql_error();

Lenke til kommentar

Beklager å skuffe deg men får fremdeles den samme feilmeldingen...

Her satt på error_reporting(E_ALL) og det er kun den feilmeldingen som kommer opp...

Har lest meg fram til at når man bryker inner join så får man kun ut de radene som har en "sammenheng" med hverandre.. og "artikler a" og "brukere b" lager du aliaser til de men har ikke fått med meg hva "on" gjør.

Lenke til kommentar
Gjest Slettet+142

"ON" sier hva sammenhengen mellom de to tabellene skal være. I dette tilfellet står det at a.user_id skal være lik b[/b].user_id i de radene som hentes ut :)

 

Men kom det ike noe ekstra tekst etter at du la til "echo mysql_error();"?

 

Ellers er det jo unødvenig å sette "" rundt $mysql_string i mysql_query()..

 

$mysql_string = mysql_query($mysql_string) or die(mysql_error());

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...