Ich habe einige Produkte in dieser Tabelle:Neu eingefügt Daten zeigen, muss zuerst
Id | Name | Order
------------------
3 | Prod3 | 1
2 | Prod2 | 2
1 | Prod1 | 3
Was ich brauche, ist: wenn das Hinzufügen einiger neues Produkt, das neue Produkt das erste von ‚Ordnung‘ bestellt sein sollte (INT) , wie folgt aus:
Id | Name | Order
------------------
4 | NewPr | 1
3 | Prod3 | 2
2 | Prod2 | 3
1 | Prod1 | 4
Das bedeutet, die andere sein sollen: vorherige Bestellung + 1
Wie erreichen, dass mit SQL?
Derzeit mache ich das (das Gegenteil von dem, was ich brauche jetzt):
Vor Einsatz,
$query = mysqli_query($link, "SELECT `order` FROM `products` ORDER BY `order` DESC LIMIT 1");
while($orderData = mysqli_fetch_array($query)) {
$lastOrder = $orderData['order'];
};
$newOrder = $lastOrder + 1;
das neue Produkt die letzte Auftragsnummer erhalte
INSERT INTO `products` (`name`, `order`)
VALUES ('MyLastestProd', $newOrder)
Hinzufügen
Danke.
EDIT: Ich benutze diese Zahlen, weil ich in anderen Seite habe eine ziehbare Option für die Bestellung dieser Produkte.
BEARBEITEN 2: Gelöst die Anzeige der Produkte Bestellung durch 'bestellen' DESC. So mit vorherige Bestellung + 1 ist es nützlich für mich. Änderungen, die auch auf die UI-Ziehfunktion angewendet wurden.
Den Datensatz mit einer "Bestellung" von 0 einfügen und dann alle Datensätze aktualisieren, um "Bestellung" um 1 zu erhöhen? – David
Diese Art von Problem tritt normalerweise auf, wenn jemand versucht, ein Problem zu lösen, das nicht existiert. – Strawberry
@david Wie kann ich alle Datensätze erhöhen, ohne den Prozess zu verlangsamen? –