Gå til innhold

Bruk av arrays og mysql output


Anbefalte innlegg

Jeg prøver meg med bruk av arrays.

Slik jeg har tenkt har jeg en tabell med ulike temaer/kategorier.

Denne tabellen henter jeg ut og legger inn i en array. ($kategori)

Jeg har en artikkel tabell med artikkler og referanse til kategoriid .

 

Når jeg henter ut en oversikt over alle artikkler ønsker jeg at kategori også skal vises slik som dette:

Sourcecode hjelper meg hele tiden Kategori: Hjelp og support

 

 

 


<?php

include_once("dbconnect.php");



 $result = mysql_query("select * from kategori") or

die (mysql_error());

 while ($row = mysql_fetch_array($result))

 {

$katgori[$row["kategoriid"]] = "".$row["kategorinavn"]."";

 }





$result = mysql_query("select * from artikkel ORDER BY artikkelid ASC") or

die (mysql_error());

while ($row = mysql_fetch_array($result))

{

echo "".$row["artikkelid"]." ".$row["artikkeloverskrift"]." - $katgori[".$row["artikkel_kategoriid"]."] <br />";

}



?>

 

Jeg får feil når jeg setter inn [".$row["artikkel_kategoriid"]." som $kategori verdi. Prøver jeg med en fast verdi f.eks 8 får jeg ikke feil, men jeg får da heller ikke opp noen riktig kategori.

 

Håper du forstår hva det er jeg trenger hjelp til.

Jeg er såpass fersk i å progge at jeg har vanskligheter med å få forklart helt nøyaktig det jeg ønsker å få gjort.

Lenke til kommentar
Videoannonse
Annonse


<?php

include_once("dbconnect.php");



 $result = mysql_query("select * from kategori") or

die (mysql_error());

 while ($row = mysql_fetch_array($result))

 {

$katgori[$row["kategoriid"]] = "".$row["kategorinavn"]."";

 }





$result = mysql_query("select * from artikkel ORDER BY artikkelid ASC") or

die (mysql_error());

while ($row = mysql_fetch_array($result))

{

echo "".$row["artikkelid"]." ".$row["artikkeloverskrift"]." - $katgori[".$row["artikkel_kategoriid"]."] <br />";

}



?>

 

Jeg får feil når jeg setter inn [".$row["artikkel_kategoriid"]." som $kategori verdi. Prøver jeg med en fast verdi f.eks 8 får jeg ikke feil, men jeg får da heller ikke opp noen riktig kategori.

 

Eg ville foreslått at du gjer alt dette i ein query istaden for å gjere det i to. Kva med å bruke følgjande spørring;

 

SELECT a.artikkelid, a.artikkeloverskrift, k.kategoriid, k.kategorinavn FROM artikkel a, kategori k WHERE a.kategoriid = k.kategoriid ORDER BY a.artikkelid ASC

 

Du vil då få ut alt saman i ei spørring, og det gjer at skriptet ditt går raskare å køyre. MySQL er nemlig ganske mykje raskare enn PHP er når det gjeld å behandle data.

 

Prøv å bruk den spørringa istaden, og når du henter ut verdiar frå arrayen, må du huske å bruke $row['a.artikkelid'], dvs. å prefikse kvar verdi med forkortelsen for tabellnamnet. Du kan sjå at eg har forkorta dei i FROM-klausulen, der eg skriv "artikkel a".

 

Lykke til...

Lenke til kommentar

Etter å lest svaret ditt fant jeg ut at jeg måtte lære bruke SQL spørringer bedre.

Etter å ha lett litt rundt på Hotscripts fant jeg imidlertid en bra MySQL editor.

Navicat fra Premiumsoft.

 

Denne editoren er kjempeenkel å bruke (alla access), du drar tråder til de ulike tabellene og setter regler, så produserer den spørringene for deg.

 

Takket være det programmet har jeg spart meg for flere dager med slitsom programmering :)

 

Men uansett, tusen takk for at du fikk meg over til å benytte EN SQL spørring i stedet for å bruke mange.

Lenke til kommentar

Ingen problem. Det er ein feil som svært mange gjer i byrjinga, og eg huskar godt kor overraska eg vart då eg skjønte at det gjekk ann å kombinere spørringar slik som over.

 

Eg har sjølv nytta Navicat ei god stund, men har diverre oppdaga enkelte "defektar" ved programmet; t.d. kan du kun lagre eller eksportere ein tabell av gangen, eller velge å ta heile databasen. Foreløpig er det einaste feilen eg har funne i programmet; det er svært nyttig. ;)

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