"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev i en meddelelse
news:biafig$r12$1@sunsite.dk...
> Ang subject: overvej at bruge mysql_fetch_assoc i.s.f. fetch_array...
>
> Harald wrote:
> > Jeg har 3 tabeller (mysql database) som bla. indeholder:
>
> > $sql='SELECT * '
>
> Hvis ikke du vitterligt skal bruge ALT fra tabellerne så er det en
> dårlig idé at selecte *, overflødige select-dele er dyre for perfomance
> (og det øger absolut ikke overblikket over hvad man får ud at selecte *).
>
> metoden er
> SELECT forlag.Navn AS forlagsnavn
Ja jeg skal faktisk bruge alt fra alle tabeller, kun en INT fra den ene
tabel kan jeg undvære.
Nu har min query ændret sig til dette:
$sql='SELECT * FROM (boger '
. 'LEFT JOIN forfatter ON boger.forfatter = forfatter.idnr ) '
. 'LEFT JOIN forlag ON boger.forlag = forlag.idnr '
. "WHERE Kategori={$_GET['Idnr']} ORDER BY forfatter.Navn";
Dvs. at jeg er nød til at remse alle de felter op jeg skal bruge, noget i
stil med:
$sql='SELECT boger.forfatter, boger.titel, osv. osv,, forlag.Navn AS
forlaganavn, forlag.Idnr osv. osv FROM (boger '
. 'LEFT JOIN forfatter ON boger.forfatter = forfatter.idnr ) '
. 'LEFT JOIN forlag ON boger.forlag = forlag.idnr '
. "WHERE Kategori={$_GET['Idnr']} ORDER BY forfatter.Navn";
Man kan ikke bruge * og så derefter angive nogle AS felter på en eller anden
måde?
> > problemet er at jeg med $Navn i nederst echo linie kun kan få Navn fra
> > forlag tabellen, hvordan får jeg Navn fra forfatter tabellen? Jeg kan
> > selfølgelig bruge $row[x] men hvis jeg så ændre i tabellen virker det
ikke
> > længere. Kan man ikke få en $Forfatter.Navn og en $Forlag.Navn variable?
>
> Netop dette problem havde du også fået advarsel fra MySQL om hvis du
> havde selectet hver kolonne ud separat.
>
> Endelig: spørgsmål som det her hører mere til i dk.edb.database (bare
> til en anden gang
)
Jo, det har du vist ret i :), jeg havde kikket efter en sql gruppe men kunne
ikke finde en og så mente jeg denne her nok kunne bruges da det jo er php
jeg roder med
Mvh
HK