Gå til innhold

Trenger litt hjelp med JOIN ved MySQL


Anbefalte innlegg

Skrevet (endret)

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
Videoannonse
Annonse
Gjest Slettet+142
Skrevet (endret)

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
Skrevet
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...

Gjest Slettet+142
Skrevet

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();

Skrevet

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.

Gjest Slettet+142
Skrevet

"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());

Skrevet

Tusen takk når funker det, vet ikke hva det skyldtes men det funker ihvertfall.

Kjempetakknemlig for hjelpen..

Det siste der gjorde det litt klarere for meg, kanskje jeg klarer det selv neste gang :cry:

 

God Jul forresten

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å
×
×
  • Opprett ny...