Autor |
Nachricht |
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Di 15.03.2005 14:20
Titel [php] mysql-problem? |
|
|
// edit //
problem 1 gelöst
[nächstes]
Zuletzt bearbeitet von am Di 15.03.2005 21:04, insgesamt 2-mal bearbeitet
|
|
|
|
|
alesch
Dabei seit: 14.08.2003
Ort: Bremen
Alter: 39
Geschlecht:
|
Verfasst Di 15.03.2005 14:31
Titel
|
|
|
Also in meinem Fll sortiere ich nach der ID. Ich tausche beim Ändern der Reihenfolge die ID mit der nächst höheren ID aus.
Code: |
//in temp schieben
mysql_query("UPDATE $DBNavi SET Position='0' WHERE Position='$id_to' AND parent='$parent'") or mysql_die();
// ID ändern
mysql_query("UPDATE $DBNavi SET Position='$id_to' WHERE Position='$id' AND parent='$parent'") or mysql_die();
// aus temp raus holen
mysql_query("UPDATE $DBNavi SET Position='$id' WHERE Position='0' AND parent='$parent'") or mysql_die();
|
$id und $id_to sind ganz $_GET Variablen.
Im Admin oder wo auch immer die Reihenfolge geändert werden soll, habe ich einen entsprechenden Link.
Wie sieht das bei dir aus?
Angenommen du liest die Datensätze aus einer Datenbank und gibst sie per
Code: | while($data = mysql_fetch_array($result)) { ... } |
aus, dann könntest du es in soweit ändern, dass du in der while Schleife alle Einträge in einen Array schreibst und die Liste dann über foreach() erzeugst. Somit hättest du dann folgendes:
$array[$i-1]['pos_nr'] ist der vorige Eintrag
$array[$i]['pos_nr'] ist der Aktuelle
$array[$i+1]['pos_nr'] ist der nächste Eintrag
Zuletzt bearbeitet von alesch am Di 15.03.2005 14:36, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Di 15.03.2005 14:39
Titel
|
|
|
die routine leuchtet mir ein.
hast mich auf ne idee gebracht
probier ich mal aus
//edit
ja so in etwa
will in der ausgabe versteckte inputfelder
mit voheriger/nächster sort_nr einbinden.
danke
Zuletzt bearbeitet von am Di 15.03.2005 14:42, insgesamt 1-mal bearbeitet
|
|
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Di 15.03.2005 15:06
Titel
|
|
|
ach mist, kann immer nur den letzten
wert speichern.
alesh,
kannst du nicht eben ein kurzes
listing schreiben, wie du das meinst?
komm da irgendwie nicht hinter. das
wäre wirklich super!
|
|
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Di 15.03.2005 15:20
Titel
|
|
|
? warum zu schwer? du übergibts die id des Beitrags und die aktion (nach oben oder nach unten):
nach oben:
LOCK TABLE schaise;
SELECT sort FROM schaise WHERE id = $id;
UPDATE schaise SET sort = sort+1 WHERE sort = $aktSort-1;
UPDATE schaise SET sort = sort-1 WHERE id = $id,
UNLOCK TABLE schaise; (oder so...)
nach unten:
LOCK TABLE schaise;
SELECT sort FROM schaise WHERE id = $id;
UPDATE schaise SET sort = sort-1 WHERE sort = $aktSort+1;
UPDATE schaise SET sort = sort+1 WHERE id = $id,
UNLOCK TABLE schaise; (oder so...)
ist ungetestet und geht vielleicht eleganter, aber so klappts sicherlich auch.
|
|
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Di 15.03.2005 15:47
Titel
|
|
|
ja, so hatte ich das auch zuerst
aber wenn du bei der ausgabe
up/down - titel1 - autor1 ... (sort_nr = 6)
up/down - titel2 - autor2 ... (sort_nr = 3)
up/down - titel3 - autor3 ... (sort_nr = 2)
den 2. eintrag 'up'-sortieren willst,
wäre die neue sort_nr 4 und die des
darüberliegenden 5. hätte somit niks
gebracht...
|
|
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Di 15.03.2005 15:48
Titel
|
|
|
Deine Sortierungsnummern sollten auch alternierend in einerschritten gesetzt sein. Sind die willkürlich gesetzt, ist dein Datenbankdesign scheiße.
Ist aber auch latte, du musst halt nur wesentlich mehr Aufwand betreiben deine old_sortnr und replace_sortnr zu ermitteln.
Zuletzt bearbeitet von am Di 15.03.2005 15:51, insgesamt 1-mal bearbeitet
|
|
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Di 15.03.2005 15:50
Titel
|
|
|
sind sie ja auch anfangs. aber wenn
man einen eintrag löscht entsteht
halt ne lücke.
|
|
|
|
|
|
|
|
Ähnliche Themen |
mysql-php Problem
mysql-problem
mySQL -> PHP Problem
Problem mit mysql UPDATE
mySQL / phpmyadmin Problem
[MYSQL/PHP] Datum-Problem
|
|