/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
UNION i en query
Fra : Janus


Dato : 16-02-07 14:46

Jeg har rodet rundt for at finde noget om UNION, men kan bare ikke få
det til at fungere.

Jeg har følgende (let forenklede) stykke kode:

--PHP start--

$query =   "SELECT navn, mail_id FROM person WHERE id=$id";
$sql = mysql_query($query);

while ( $raekker = mysql_fetch_array($sql))
   {
   extract($raekker);
   }

// Nu har jeg variablerne $navn og $mail_id


$query =   "SELECT mailadresse FROM mail WHERE id=".$mail_id;
// Her bruger jeg den nylavede variabel $mail_id
$sql = mysql_query($query);

while ( $raekker = mysql_fetch_array($sql))
   {
   extract($raekker);
   }

// Nu har jeg også variablen $mailadresse


--PHP slut--

Det virker som sådan fint nok lige nu, men det er jo noget omstændigt.
Og jeg har en idé om at det kan gøres mere enkelt. Måske med UNION.
Men jeg skal jo bruge den mail_id jeg lige henter fra tabellen
'person'.

Kan nogen hjhælpe mig?
--
Janus


 
 
Jesper Lützen (16-02-2007)
Kommentar
Fra : Jesper Lützen


Dato : 16-02-07 15:14

> Det virker som sådan fint nok lige nu, men det er jo noget omstændigt.
> Og jeg har en idé om at det kan gøres mere enkelt. Måske med UNION.
> Men jeg skal jo bruge den mail_id jeg lige henter fra tabellen
> 'person'.
>
> Kan nogen hjhælpe mig?

Har du i stedet for UNION overvejet en JOIN? Jeg forestiller mig, at
du må kunne klare jobbet med en left join.

Se http://dev.mysql.com/doc/refman/5.0/en/join.html for yderligere
info.


Venlig hilsen

Jesper Lützen


Janus (16-02-2007)
Kommentar
Fra : Janus


Dato : 16-02-07 15:31

On 16 Feb., 15:13, "Jesper Lützen" <jesperlut...@gmail.com> wrote:
> > Det virker som sådan fint nok lige nu, men det er jo noget omstændigt.
> > Og jeg har en idé om at det kan gøres mere enkelt. Måske med UNION.
> > Men jeg skal jo bruge den mail_id jeg lige henter fra tabellen
> > 'person'.
>
> > Kan nogen hjhælpe mig?
>
> Har du i stedet for UNION overvejet en JOIN? Jeg forestiller mig, at
> du må kunne klare jobbet med en left join.
>
> Sehttp://dev.mysql.com/doc/refman/5.0/en/join.htmlfor yderligere
> info.
>
> Venlig hilsen
>
> Jesper Lützen

Det har jeg ikke forstand på. Jeg går straks igang med at læse dit
link. Tak.

Jeg har fundet ud af at det også kan gå med:

-- PHP start --

$query = "SELECT person.*, $mail.mailadresse FROM person, mail WHERE
mail.id=person.mail_id AND person.id=$id";

-- PHP slut --

Går det an, eller er det dårlig PHP?
--
Janus


Martin (16-02-2007)
Kommentar
Fra : Martin


Dato : 16-02-07 15:34

Janus wrote:
> $query = "SELECT person.*, $mail.mailadresse FROM person, mail WHERE
> mail.id=person.mail_id AND person.id=$id";
> -- PHP slut --

1: Det har ikke en dyt med PHP at gøre - eller jo - en variabel.
2: Da det er database det du leger med, så findes der en nyhedsgruppe
til dette dk.edb.database, så brug venligst denne.

Janus (16-02-2007)
Kommentar
Fra : Janus


Dato : 16-02-07 15:58

On 16 Feb., 15:34, Martin <m...@SPAMscandesigns.dk> wrote:
> Janus wrote:
> > $query = "SELECT person.*, $mail.mailadresse FROM person, mail WHERE
> > mail.id=person.mail_id AND person.id=$id";
> > -- PHP slut --
>
> 1: Det har ikke en dyt med PHP at gøre - eller jo - en variabel.
> 2: Da det er database det du leger med, så findes der en nyhedsgruppe
> til dette dk.edb.database, så brug venligst denne.

Okay.. Jeg troede disse kodelinier var en særegen måde for PHP at
hente databaseresultater ud.

Hvis man kun bruger denne metode når det handler om PHP, er det vel
her det skal drøftes.

Af interesse:
Hvad er retningslinien for hvad der defineres som database- og
PHPrelateret snak?
I dk.edb.database's fundats står der:
"Mere generelle programmeringstekniske spørgsmål (som fx
sorteringsteknikker, eller brugergrænseflader) henvises til andre
relevante grupper såsom dk.edb.programmering."

Efter min bedste overbevisning og set i lyset af dette, har mit
spørgsmål netop "en dyt med PHP at gøre".

Jeg futter over i database-gruppen og kigger lidt rundt, så ses vi
måske dér..

--
Janus
- Lad os huske at holde en anstændig tone


Martin (16-02-2007)
Kommentar
Fra : Martin


Dato : 16-02-07 17:06

Janus wrote:
> Okay.. Jeg troede disse kodelinier var en særegen måde for PHP at
> hente databaseresultater ud.

Det eneste der faktisk relaterer til PHP i din kode er
$query = ""
og din $id inde i $query

Alt inde i $query er ren og skær SQL (Structured Query Language)
Lidt ligesom PHP/ASP osv. - Dog bare et sprog til databaser

> Hvis man kun bruger denne metode når det handler om PHP, er det vel
> her det skal drøftes.

Det som du søger er hvorfor du ikke for det korrekte svar fra databasen.
Altså din SQL ikke fungerer rigtigt
Eller om du kan lave denne SQL bedre end den UNION du bruger idag.

> Af interesse:
> Hvad er retningslinien for hvad der defineres som database- og
> PHPrelateret snak?

1: PHP har intet med database at gøre - men man får det meget mere
brugeragtigt, hvis man sætter disse sammen - Ligesom HTML og CSS.
De har intet med hinanden at gøre (2 vidt forskellige sprog) men
alligevel en stor del at gøre med hinanden alligevel.

2: Database (eller SQL) er et sprog helt for sig selv, alt det med
SELECT INSERT UPDATE osv. har intet med PHP at gøre, men er noget der
kan skrives for at få databasen til at gøre nogle ting.


> I dk.edb.database's fundats står der:
> "Mere generelle programmeringstekniske spørgsmål (som fx
> sorteringsteknikker, eller brugergrænseflader) henvises til andre
> relevante grupper såsom dk.edb.programmering."

Sorteringsteknikker i dette tilfælde er fx.

SELECT * FROM tabel
Så ouputtes hele tabel

Så i PHP kan man så begynde at sorterer det output, med fx.
array_sort eller lign. metioder

Hvis det er en sorteringsteknik ala
SELECT * FROM tabel ORDER BY
så er det faktisk noget der skal holdes i database gruppen.

> Jeg futter over i database-gruppen og kigger lidt rundt, så ses vi
> måske dér..

Højst sandsynligt :)

> --
> Janus
> - Lad os huske at holde en anstændig tone

Ja undskyld de lidt hårdere ord, kunne ikke lige komme med noget bedre
end "ikke en dyt med PHP at gøre" - det undskylder jeg!

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste