Orderen van mysql tabel.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefano test

stefano test

11/01/2014 16:09:31
Quote Anchor link
Hallo,

Ik had een klein waarschijnlijk simpel vraagje

Ik heb een tabel in mijn database. Met 10 rows.

Dus ongeveer zo:

1: Test
2: Test2
3: Test3
4: Test4
5: Test5

Etc. Hij baseert nu de volgorde via ID. Hoe kan ik doormiddel van een query test5 op plek 2 krijgen dus eigenlijk nummer 5 word 2 en nummer 2 word 3.

Misschien wat onduidelijk. Alvast bedankt :)
 
PHP hulp

PHP hulp

22/12/2024 10:35:19
 
Ivo P

Ivo P

11/01/2014 16:20:13
Quote Anchor link
SELECT *
FROM tabel
ORDER BY (id = 1 ) DESC
, (id=5) DESC
 
Stefano test

stefano test

11/01/2014 16:45:39
Quote Anchor link
Oke. Maar ik maak zeg maar een adminpaneltje waar mensen de volgorde kunnen veranderen. Hoe zou ik een update query kunnen doen? Zeg maar

UPDATE TABEL SET id='$id' WHERE id//Dit is nummer 5 die naar nummer 2 gaat waar $id nummero2 selecteert ofzo
UPDATE TABEL SET id='$id' + 1 WHERE id//Dit is nummer 2 die naar 3 gaat

Wat alleen niet werkt is dan zeg maar nummer 3 naar 4 en nummer 4 naar 5.

Of je moet dan met een for/while loop alle ids langsgaan en bij allemaal +1 doen. maar dat lijkt me een slecht idee toch?
Gewijzigd op 11/01/2014 16:47:39 door stefano test
 
Ivo P

Ivo P

11/01/2014 17:02:41
Quote Anchor link
een volgorde-kolom toevoegen, is mi het beste.

van de id kolom blijf je af: dat is een unieke aanduiding en die blijft altijd gelijk.

met de volgorde kolom kun je dat zelf de sortering bepalen.
Het eenvoudigste is het als je een item met een ander kunt verwisselen.
Maar "nummer 5 gaat naar nummer 2" is iets moeilijker, maar nog wel te doen.

Eenvoudigste is "één omhoog" of "één omlaag"
 
Stefano test

stefano test

11/01/2014 17:49:33
Quote Anchor link
Hoe doe ik dat een omhoog een omlaag?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/01/2014 22:00:05
Quote Anchor link
stefano misschien moet je eens wat over SQL gaan lezen.

Maar goed:

Ordenen op id van laag naar hoog:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM tabel ORDER BY id ASC


Ordenen op id van hoog naar laag:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM tabel ORDER BY id DESC


Laat de eerste 10 resultaten zien (regel 1 t/m 10):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM tabel LIMIT 0,10


Laat de tweede 10 resultaten zien (regel 11 t/m 20):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM tabel LIMIT 10,10


gecombineerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM tabel ORDER BY id DESC LIMIT 0,10
 
Ivo P

Ivo P

12/01/2014 00:09:28
Quote Anchor link
stel je wilt het record met volgordenr 4 omhoog naar 3 hebben.
dan moet 3 dus de waarde 4 krijgen.

Je klikt op het item met id = x.
Stap 1 achterhaal het volgordenr

SELECT volgordenr FROM tabel WHERE id = x; # x is een getal!
-- we vinden 4

dan achterhalen we met welke id hij moet wisselen. (we vonden 4, maar stel dat 3 is verwijderd dan zouden we met volgordenr 2 moeten wisselen.

SELECT volgordenr, id FROM tabel
WHERE volgordenr < 4
ORDER BY volgordenr DESC
LIMIT 1

we vinden 3 voor het volgordenr en zeg 100 voor het id

Nu de aanpassing

START TRANSACTION;
UPDATE tabel
SET volgordenr = 4
WHERE id = 100;

UPDATE tabel
SET volgordenr = 3
WHERE id = x;
COMMIT;

En ja, dat kan ook in minder query's maar ik denk dat het zo het overzichtelijkste is.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

12/01/2014 10:16:06
Quote Anchor link
Meerdere posities opschuiven is niet veel anders, het enige wat je moet weten is het id, de oude positie en de nieuwe positie van het te verschuiven item.
Stel item met id 100 moet van positie 5 naar 2:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
UPDATE tabel SET volgordenr = IF(id=100, 2, volgordenr+1)
WHERE volgordenr BETWEEN 2 AND 5
 
Roel H

Roel H

12/01/2014 12:21:30
Quote Anchor link
Ik doe het niet via mysql. Dus ik moet php5 3 draaien, anders pech?
 
Ivo P

Ivo P

12/01/2014 12:49:10
Quote Anchor link
? is dit wel het goede topic, Roel?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.