/ 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
Komplex SELECT
Fra : Tobber


Dato : 13-02-05 02:43

Hej kloge Åge

Jeg sveder over et problem. Jeg ønsker at lave en søgning i min mysql-DB til
min hjemmeside, men det jeg ønsker er meget indviklet - synes jeg.

jeg har 6 tabeller!
billeder
mapper
mappe_gruppe
grupper
gruppe_bruger
brugere

Dem behøver jeg kædet sammen således at jeg kun får de billeder at se hvor:
1. brugeren har ret til det
ELLER
2. den mappe hvor billedet ligger i er 'åben' for alle
OG
3. en søgetekst indgår i en beskrivelsen til billedet

Den første er opfyldt når og kun når:
brugere.bruger_ID = gruppe_bruger.bruger_ID
OG
gruppe_bruger.gruppe_ID = mappe_gruppe.gruppe_ID
OG
mappe_gruppe.mappe_ID = billeder.mappe_ID

Den anden betingelse er opfyldt med:
mapper.open = 'open' [enum]
OG
mapper.mappe_ID = billeder:mappe_ID

Den tredje er opfyldt med:
billeder.titel LIKE %streng%

Hvordan skal jeg skrive det samme til een request - eller er jeg tvunget til
at gøre noget af arbejdet med PHP. Jeg vil bare gerne kunne sortere i
resultatet. Jeg håber det er til at se hvad det er jeg ønsker.




 
 
Peter Brodersen (13-02-2005)
Kommentar
Fra : Peter Brodersen


Dato : 13-02-05 03:03

On Sun, 13 Feb 2005 02:42:47 +0100, "Tobber" <torben@ringsoe.dk>
wrote:

>Jeg sveder over et problem. Jeg ønsker at lave en søgning i min mysql-DB til
>min hjemmeside, men det jeg ønsker er meget indviklet - synes jeg.

I første omgang vil jeg anbefale at spørge i nyhedsgruppen
dk.edb.database - med al sandsynlighed kan det ordnes i én og samme
query. Dine JOINs lader til at være de samme uanset hvad, så det er
blot et spørgsmål om dine WHERE-kriterier. For nr. 1s vedkommende kan
det sandsynligvis anbefales at lave LEFT JOINs i stedet for INNER
JOINs, så du stadigvæk kan matche rækker, også selv om der ikke er
nogen rettighed tilknyttet.

... og for en god ordens skyld: Er det "(1 ELLER 2) OG 3" eller er det
"1 ELLER (2 OG 3)", der skal være opfyldt?

Når det er klarlagt, så skulle det være til at sy en query sammen.

--
- Peter Brodersen

Tobber (13-02-2005)
Kommentar
Fra : Tobber


Dato : 13-02-05 11:18

Hej Peter

Det har du nok ret i. Så det vil jeg gøre. Spørge i dk.edb.database.

Til det spørgsmål du stiller.

Det er (1 og 3) eller (2 og 3).

"Peter Brodersen" <usenet2005@ter.dk> skrev i en meddelelse
news:cumchq$245$1@news.klen.dk...
> On Sun, 13 Feb 2005 02:42:47 +0100, "Tobber" <torben@ringsoe.dk>
> wrote:
>
>>Jeg sveder over et problem. Jeg ønsker at lave en søgning i min mysql-DB
>>til
>>min hjemmeside, men det jeg ønsker er meget indviklet - synes jeg.
>
> I første omgang vil jeg anbefale at spørge i nyhedsgruppen
> dk.edb.database - med al sandsynlighed kan det ordnes i én og samme
> query. Dine JOINs lader til at være de samme uanset hvad, så det er
> blot et spørgsmål om dine WHERE-kriterier. For nr. 1s vedkommende kan
> det sandsynligvis anbefales at lave LEFT JOINs i stedet for INNER
> JOINs, så du stadigvæk kan matche rækker, også selv om der ikke er
> nogen rettighed tilknyttet.
>
> .. og for en god ordens skyld: Er det "(1 ELLER 2) OG 3" eller er det
> "1 ELLER (2 OG 3)", der skal være opfyldt?
>
> Når det er klarlagt, så skulle det være til at sy en query sammen.
>
> --
> - Peter Brodersen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste