[MYSQL] Volgende positie (x en y) opvragen

Status
Niet open voor verdere reacties.

Dennis95

Gebruiker
Lid geworden
2 nov 2009
Berichten
48
Je zal de titel misschien niet helemaal begrijpen, daarom zal ik het even uitleggen.
Ik heb dus een database gemaakt waarin punten moeten komen die een x en y positie krijgen.
Als het eerste punt wordt gemaakt komt deze op 0,0 (x=0 en y=0). Als ik een tweede punt wil naar rechts, moet deze komen op 1,0 (x=1 en y=0).
Als ik een derde punt wil naar onder moet deze komen op (0,1), maar als ik nog een punt naar onder wil, moet deze komen op (0,2) en niet (0,1).
Ik zou ook graag willen dat het schuin ook werkt dus (1,1) (2,2) enzovoorts. Ik zou geen idee hebben of het ook mogelijk is om bijvoorbeeld (1,2)
te krijgen want dan ga je een beetje schuin en een stukje recht.
(naar links en boven wordt het dan natuurlijk negatief, bijv: -1)

Als je het niet snapt zal ik het nog wat beter willen proberen uit te leggen.

Weet iemand misscien hoe je dit zou kunnen maken. Ik heb echt geen idee hoe ik moet beginnen. Of heeft iemand tips om het op een andere manier te doen (geen mysql)...?
 
ik snap het niet helemaal maar,

je hebt de bijvoorbeeld de data 1,1 in je database staan?

dan wil je de 1,1 uit je database halen? of wil je deze gegevens eruit halen?

moet het daarnaast met , of met punten werken?

Het is voor mij nu niet helemaal duidelijk wat je precies wilt
 
Ik heb de database nog niet, maar ik dacht zegmaar aan zoiets:
id x y
1 0 0 (begin, niet zo interessant)
2 1 0 (punt naar rechts)
3 2 0 (nog verder naar rechts)
4 0 1 (naar onder)
..
Dus gewoon als nieuwe cell. (geen punten of komma's)

En dan wil ik bijv als ik zeg. Nieuw punt naar rechts. Dat hij in de database een nieuw punt maakt (id 5) met x = 3 en y = 0. Maar als ik zeg dat er een punt onderaan moet komen dat punt 5 op x=0 en y=2 komt. Snap je het nu een beetje?

Ik zal morgen proberen met plaatjes enzo uit te leggen, misschien wat duidelijker
 
Laatst bewerkt:
Misschien dat het plaatje me beter op weg help ;)

maar denk wel een idd een idee te hebben van wat je bedoeld.

je hebt een database met de volgende kolommen:

id
x
Y

als jij een waarde invoer in jou formulier. dan wil jij dit als volgt:

3.0

komt in de database als

id x y
1 3 0

Toch dat bedoel he?

dit zou kunnen natuurlijk. maar een x of een y as kan natuurlijk ook de waarde 2,2.0.1 bevatten denk ik zo.

Dan moet je het eigenlijk omdraaien.

dan zou je dit 2.2,0.1 van moeten maken. want een . vind mysql fijner dan een ,

Laat maar weten dat dit is wat je bedoeld.
 
Ja dit is het wel bijna alleen zullen de waarden gewoon integers zijn (dus ronde getallen).
Ik weet wel hoe ik maak dat als ik zelf de x en y invul, dat die dat dan in de database zet. Maar als ik zegmaar een knop maak: Een punt naar rechts. Dat dan een nieuw punt wordt gemaakt met de oude positie, maar dan de x-as dus 1 punt hoger. Dus dat ik niet in de database hoef te kijken: de laatste was 0,3 dus nu moet ik 0,4 invullen. Maar dat het script dat vanzelf doet.
 
oke nu is het wat duidelijker.

als het nette getalen zijn is het nog makelijker,

wat je zal doen is na mijn idee dan. Je roept gewoon het laatste record aan. Op het moment dat je deze weer opslaat. zorg je gewoon dat je dan weer het laatste record aan roept. Dat is volgens mij het gehele idee.

Zal vanmiddag wel even posten hoe dat ongeveer eruit ziet
 
ik begrijp wat je bedoelt.

je moet niet het laatste record hebben, maar het laatste record van die richting toch?

dus:
1 punt naar rechts : (1,0)
1 punt naar links : (1,0)
1 punt naar rechts: (2,0)
1 punt omhoog : (0,1)

dan moet je dus verschillende zoek criteria hebben per punt.
Naar rechts wordt je query voor het laatste punt iets van:
SELECT x FROM coords WHERE y=0 ORDER BY x DESC LIMIT 1

want naar rechts is y altijd 0. je moet hem aflopend orderen, want je wil alleen de hoogste (dus meest rechtse) waarde weten. limit 1 is alleen het laatste punt.

links is dan bijna hetzelfde, alleen moet je niet DESC orderen maar ASC.

voor omhoog/laag moet je x en y omwisselen.

schuin wordt lastiger, ik weet niet of het mogelijk is om als WHERE x=y te gebruiken.
 
Ok bedankt, ik begrijp het nu wat beter. Maar zit nu op school dus zal er straks naar kijken
 
Ik heb nu even een afbeelding gemaakt, maar ik geloof dat je het nu wel begrijpt.
voorbeeld.png

De rode punten staan bijvoorbeeld al in de database.

Als ik dan zeg: "Bovenaan moet er een punt bij", dan maakt hij automatisch het groene punt aan.
En als ik zeg: "Rechts moet er een punt bij", dan maakt hij automatisch het gele punt aan.
En als ik zeg: "Rechtsboven moet er een punt bij", dan maakt hij automatisch het paarse punt aan.

Natuurlijk zou ik graag willen dat zegmaar alle punten worden gevuld maar dit lijkt mij bijna onmogelijk om te maken...
 
oké ik had dit ook in me gedachten.
Die groene en die gele stip kan je maken mbv mijn vorige post.


Hoe bedoel je alle punten? ook die op (1,2) bijv.
dat is denk ik een beetje te veel gevraagd, wat zou je dan opgeven als opdracht:
maak een half schuine lijn?? dan zit je op (1,2).
maak een halve half schuine lijn -> dan zit je op (1,4)
enz.
 
Ja ik dacht ook al dat dit eigenlijk niet mogelijk is dus laat dat maar zitten dan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan