mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 16:45 Benutzername: Passwort: Auto-Login

Thema: Sortierung von SQL-Einträgen vom 21.01.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Sortierung von SQL-Einträgen
Seite: 1, 2  Weiter
Autor Nachricht
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mi 21.01.2009 10:22
Titel

Sortierung von SQL-Einträgen

Antworten mit Zitat Zum Seitenanfang

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? *hu hu huu*
  View user's profile Private Nachricht senden
Kash

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Mi 21.01.2009 10:28
Titel

Antworten mit Zitat Zum Seitenanfang

bei der abfrage um die werte von themenID * Keine Ahnung... *
  View user's profile Private Nachricht senden
Anzeige
Anzeige
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 21.01.2009 10:30
Titel

Antworten mit Zitat Zum Seitenanfang

Genau, einfach im WHERE Teil ergänzen.

Zuletzt bearbeitet von m am Mi 21.01.2009 10:32, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mi 21.01.2009 10:50
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 21.01.2009 11:02
Titel

Antworten mit Zitat Zum Seitenanfang

RTFM:
http://dev.mysql.com/doc/refman/5.1/en/
  View user's profile Private Nachricht senden
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mi 21.01.2009 11:16
Titel

Antworten mit Zitat Zum Seitenanfang

bacon hat geschrieben:
RTFM:
http://dev.mysql.com/doc/refman/5.1/en/


Wenn das geholfen hätte wäre ich jetzt nicht hier.
Das System läuft übrigens auf PHP4.
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 21.01.2009 11:23
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
AndiN
Threadersteller

Dabei seit: 31.05.2005
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mi 21.01.2009 11:45
Titel

Antworten mit Zitat Zum Seitenanfang

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. * Ich geb auf... *


Zuletzt bearbeitet von AndiN am Mi 21.01.2009 12:11, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.