Kom ihåg mig?
Home Menu

Menu


MySQL-query för bytessajt

Ämnesverktyg Visningsalternativ
Oläst 2007-01-09, 20:57 #1
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 162
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 162
Jag har kört lite fast i tänkandet här.

Vill bygga en tjänst där användare registrerar sin bostad för byte, och sedan kan söka på byten, triangelbyten, rektangelbyten etc. (Som björns bostadsbytare mm.)

För att göra det så enkelt som möjligt här, låt oss säga att det enda attribut man kan ange är antal rum.

Säg då att jag har en 1:a och vill byta mot en 3:a, och att någon annan har en 3:a och vill byta mot en 1:a.

Sökningen blir då något i stil med
SELECT * FROM byten WHERE jag_har = 3 AND jag_vill_ha = 1

Problemet kommer ju när jag (Person A) har en 1:a och vill ha en 3:a.
Person B har en 2:a och vill ha en 1:a
Person C har en 3:a och vill ha en 2:a

Hur skall jag hantera denna sökning?

Jag ser ju med blotta ögat att A skall ge sin lägenhet till B som skall ge sin till C som skall ge sin till A.

Jag har bara fått total blackout och vet inte riktigt i vilken ände jag skall börja. Är tacksam för tips och idéer.
fabian är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-10, 00:50 #2
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
Är inte säker på om jag tänker helt galet men borde inte något liknande funka

SELECT a.byteid, b.byteid
FROM byten a, byten b
WHERE
a.jag_har = b.jag_vill_ha AND
a.jag_vill_ha = b.jag_har

Jag är inte säker och jag orkar inte testa...
dotvoid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-10, 15:37 #3
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 162
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 162
Okej, jag har gjort en databas nu med 3 fält

ID
rum_har
rum_villha

Såhär ser queryt ut:

SELECT a.id, b.id
FROM BP_byten a, BP_byten b
WHERE a.rum_har = b.rum_villha
AND a.rum_har = b.rum_villha
LIMIT 0 , 30

Detta retunerar:
2 1
3 2
4 2
1 3
1 4

Dvs
2 vill ha 1
3 vill ha 2
4 vill ha 2
1 vill ha 3
1 vill ha 4

Detta stämmer.

Men låt säga att jag själv är ID 3. Då vill jag ju ha fram en sådan lista med mina egna tillgångar och önskemål i fokus, hur gör jag queryt då?
fabian är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-10, 18:07 #4
Oskar Lindgren Oskar Lindgren är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2004
Inlägg: 520
Oskar Lindgren Oskar Lindgren är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2004
Inlägg: 520
Citat:
Men låt säga att jag själv är ID 3. Då vill jag ju ha fram en sådan lista med mina egna tillgångar och önskemål i fokus, hur gör jag queryt då?
Lägg på: AND a.id=3 ?
Oskar Lindgren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-01-10, 18:32 #5
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 162
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 162
Okej, queryt ser nu ut såhär:

SELECT a.id, b.id
FROM BP_byten a, BP_byten b
WHERE (
a.rum_har = b.rum_villha
AND a.rum_har = b.rum_villha
AND a.id =3
)

Svaret jag får är att 3 vill ha 2, vilket ju är sant, men vad jag menade (förklarade kanske lite otydligt) är att jag vill ha hela kedjan baserad på nummer 3.

Att 3 vill ha 2 är en start, men jag vill ju också se att det är möjligt att uppfylla 2´s behov genom att 2 också vill ha 1.

Gud vad krångligt detta blev.

Har gjort i html hur jag vill presentera resultatet.

www.onsdag.nu/byte/
fabian är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:25.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017