Autor |
Nachricht |
AndiN
Threadersteller
Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht:
|
Verfasst Mi 21.01.2009 10:22
Titel Sortierung von SQL-Einträgen |
|
|
Guten morgen,
ich habe eine SQL-Tabelle mit folgendem Aufbau:
Code: |
ID name position
1 kirsche 2
2 banane 1
3 apfel 3
4 birne 5
5 traube 4 |
Im Frontend kann der User in einem Inputfeld die Sortierung ändern. Das Script hierfür sieht wie folgt aus ($new = Position auf welche der zu sortierende Eintrag springen soll):
Code: |
if(is_numeric($new) == FALSE)
{
?>
<script>
<!--
alert("Bitte geben Sie zum Ändern der Reihenfolge eine Zahl ein.");
-->
</script>
<?php
}
elseif($new < 1)
{
?>
<script>
<!--
alert("Sie können keinen Eintrag an eine Position verschieben die kleiner als 1 ist.");
-->
</script>
<?php
}
else
{
$query1 = "mysql_UPDATE themen SET Position = 0 WHERE ID = $idakt";
mysql_query($query1);
if($new<$old)
{
$query2 = "UPDATE themen SET Position = Position+1 WHERE Position >= $new AND Position < $old";
mysql_query($query2);
$query3 = "UPDATE themen SET Position = $new WHERE ID = $idakt";
mysql_query($query3);
}
else
{
$query4 = "UPDATE themen SET Position = Position-1 WHERE Position > $old AND Position < $new";
mysql_query($query4);
$query5 = "UPDATE themen SET Position = $new-1 WHERE ID = $idakt";
mysql_query($query5);
}
}
|
Das alles funktioniert auch schon. Jetzt zu meinem Problem:
Ich möchte die SQL-Tabelle wie folgt erweitern:
Code: |
ID name position themenID
1 kirsche 1 1
2 banane 1 2
3 apfel 2 2
4 birne 2 1
5 traube 3 2 |
Prinzipiell füge ich also eine Variable ein welche die Einträge nach Themen unterscheidet. Jede EInträge eines Themas sollen unabhängig von den anderen sortierbar sein. D.h. Wenn ich mich in dem Theme mit der themenID = 2 befinde und dort die Sortierung ändere sollen natürlich nur "banane", "apfel" und "traube" neu sortiert werden.
Wie muss ich das o.g. Script ändern?
|
|
|
|
|
Kash
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Mi 21.01.2009 10:28
Titel
|
|
|
bei der abfrage um die werte von themenID
|
|
|
|
|
Anzeige
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 21.01.2009 10:30
Titel
|
|
|
Genau, einfach im WHERE Teil ergänzen.
Zuletzt bearbeitet von m am Mi 21.01.2009 10:32, insgesamt 2-mal bearbeitet
|
|
|
|
|
AndiN
Threadersteller
Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht:
|
Verfasst Mi 21.01.2009 10:50
Titel
|
|
|
Ich habe es mal so versucht:
Code: |
$query1 = "mysql_UPDATE themen SET Position = 0 WHERE ID = $idakt";
mysql_query($query1);
if($new<$old)
{
$query2 = "UPDATE themen SET Position = Position+1 WHERE Position >= $new AND Position < $old AND mpID = $umpID";
mysql_query($query2);
$query3 = "UPDATE themen SET Position = $new WHERE ID = $idakt";
mysql_query($query3);
}
else
{
$query4 = "UPDATE themen SET Position = Position-1 WHERE Position > $old AND Position < $new AND mpID = $umpID";
mysql_query($query4);
$query5 = "UPDATE themen SET Position = $new-1 WHERE ID = $idakt";
mysql_query($query5);
}
|
Funktioniert leider nur fast.
Bsp.: Verschieben von "traube" auf position "2".
VORHER
Code: |
ID name position themenID
1 kirsche 1 1
2 banane 1 2
3 apfel 2 2
4 birne 2 1
5 traube 3 2
6 traube 3 2 |
NACHHER
Code: |
ID name position themenID
1 kirsche 1 1
2 banane 1 2
3 apfel 2 2
4 birne 2 1
5 traube 2 2 |
Wie ihr seht rutscht "traube" zwar auf Position "2", allerdings rutscht der "apfel" nicht auf Position "3".
Richtig sollte es so aussehen:
Code: |
ID name position themenID
1 kirsche 1 1
2 banane 1 2
3 apfel 3 2
4 birne 2 1
5 traube 2 2 |
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
|
|
|
|
AndiN
Threadersteller
Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht:
|
Verfasst Mi 21.01.2009 11:16
Titel
|
|
|
Wenn das geholfen hätte wäre ich jetzt nicht hier.
Das System läuft übrigens auf PHP4.
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 21.01.2009 11:23
Titel
|
|
|
Das ist kein Vorkau-Board, sondern ein Hilfe zur Selbsthilfe-Board. Wenn ich's dir machen soll, kostet das Geld, also ab in die Jobbörse damit. Ansonsten ließ dich doch bitte mal ein, das bringts wirklich, glaub' mir.
|
|
|
|
|
AndiN
Threadersteller
Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht:
|
Verfasst Mi 21.01.2009 11:45
Titel
|
|
|
Okay, schade. Dann muss ich wohl weitersuchen.
Bin jetzt an dem Sch*** schon fast drei Tage, hab' langsam alles durch was es zu dem Thema zu lesen gibt und habe mir hier Hilfe zu Selbsthilfe oder wenigstens einen Anstoß in die richtige Richtung erhofft da ich das einfach nicht gelöst bekomme.
EDIT: Vergiss das mit dem PHP4-Hinweis von eben.. baaah ich bin schon ganz gaga hier.
Zuletzt bearbeitet von AndiN am Mi 21.01.2009 12:11, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
3. Naviebene mit vielen Einträgen / Gestaltungsidee
mit WHERE-Klausel nach Einträgen ohne '@' suchen.
MySQL/PHP sortierung
PHP: Alphabetische Sortierung
Upload/Download - Sortierung
[PHP, MySQL] Sortierung bei Abfrage
|
|