Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Sortierfunktion von Tabellenspalten in PHP-Skript (Pfeile auf- und abwärts)

Frage Entwicklung PHP

Mitglied: LuckyLuke

LuckyLuke (Level 1) - Jetzt verbinden

08.04.2009, aktualisiert 10:42 Uhr, 8883 Aufrufe, 3 Kommentare

Guten Morgen liebe Entwicklergemeinde,

ich sitze vor einer Aufgabe, bei der ich nicht so genau weiß wie ich dran gehen soll.
Ausgangslage ist folgende: Ich habe eine Liste von Parametern. Diese Liste wird ständig erweitert, sprich neue P. hinzugefügt und entfernt. Dabei ist die Reihenfolge, die Anordnung sehr wichtig. Da manche Parameter mehrmals vorhanden sind, aber zu einer anderen Kategorie gehören, etc..

Wie aus vielen WCMS (da fällt mir Joomla spontan ein, Screenshot hier bereits bekannt, kann man die Reihenfolge von verschiedenen Inhalten per Pfeil auf-/ und abwärts bestimmen.

Die gleiche Methode wäre die einfachste in meinem Skript. Dabei habe ich mir gedacht alle Parameter ausgeben zu lassen. Mit Hilfe einer Sortierungs-ID werden alle Parameter durchnummeriert und mit einer Kategorierungs- und Parameter-ID versehen, damit die Zuordnungen stimmen.
Nun müssten sich doch theoretisch nur die Sortierungs-ID ändern sobald man den Pfeil, auf-/ bzw. abwärts klickt.

Frage hierbei ist: Wie mache ich MySQL klar, dass die ausgewählte Spalte eins hoch oder runter soll, sobald ich einen der Pfeile anklicke UND zugleich die gesamte Nummerierung sich für die anderen Parameter ändert? Mit ASC und DESC lässt sich das ganze ja so einfach nicht lösen.

Hat das jemand schon von euch gemacht oder anders gelöst?

Über Ratschläge wäre ich euch dankbar.


Viele Dank und Grüße

Lucky.
Mitglied: godlie
08.04.2009 um 11:09 Uhr
Hi
klar hab ich sowas schon gemacht
Ist eine ganz witzige Sache, am einfachsten gehts per Ajax.

Auf jeden Pfeil einfach den eine javascript funktion legen die dann den Ajax call macht, dahinter dann ein script das die entsprechende action macht und basta ist das ganze

Beispiele gibs später
Bitte warten ..
Mitglied: godlie
08.04.2009 um 11:27 Uhr
Sodala:
der Javascript Teil:
01.
<script type="text/javascript" language="javascript"> 
02.
    var http_request = false; 
03.
    function macheRequest(url) { 
04.
        http_request = false; 
05.
        if (window.XMLHttpRequest) { // Mozilla, Safari,... 
06.
            http_request = new XMLHttpRequest(); 
07.
            if (http_request.overrideMimeType) { 
08.
                http_request.overrideMimeType('text/xml'); 
09.
                // zu dieser Zeile siehe weiter unten 
10.
11.
        } else if (window.ActiveXObject) { // IE 
12.
            try { 
13.
                http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
14.
            } catch (e) { 
15.
                try { 
16.
                    http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
17.
                } catch (e) {} 
18.
19.
20.
        if (!http_request) { 
21.
            alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen'); 
22.
            return false; 
23.
24.
        http_request.onreadystatechange = alertInhalt; 
25.
        http_request.open('POST', url, true); 
26.
        http_request.send("id=ID&sort=up"); 
27.
28.
    function alertInhalt() { 
29.
 
30.
        if (http_request.readyState == 4) { 
31.
            if (http_request.status == 200) { 
32.
                alert(http_request.responseText); 
33.
            } else { 
34.
                alert('Bei dem Request ist ein Problem aufgetreten.'); 
35.
36.
37.
 
38.
39.
</script> 
40.
<span 
41.
    style="cursor: pointer; text-decoration: underline; color: blue" 
42.
    onclick="macheRequest('sort.php')">Einen Request absetzen 
43.
</span>
Und das hier ist der php Teil:
01.
<?php 
02.
d=ID&sort=up 
03.
$id = mysql_escape_string($_POST['id']); 
04.
 
05.
if(is_numeric($id)) { 
06.
  if($_POST['sort'] == "up" || $_POST['sort'] == "down") { 
07.
    // hier kommt dann der Teil wo du mysql beibringst wie er sortieren soll.... 
08.
    // mehr dazu unten, wenn du eine Rückgabe haben willst einfach mit echo was ausgeben..... 
09.
10.
}  
11.
?>
Nun zum soriteren bei mysql.
Am einfachsten geht das über eine eig. Spalte ( z.B.: sort ) die beinhaltet Zahlen von 1-n.
Beim Select der Tabelle einfach einen ORDER BY sort ASC / DESC angeben.

Wird jetzt eine Zahl nach oben geschoben so müssen die anderen ja auch rücken, deswegen kommst
du nicht herum dir mit einer Schleife alle Datensätze zu holen die nummerierung zu ändern und die Dinger
wieder zurückzuschreiben.

Was dann auch noch ratsame wäre, die Tabelle mit den Parametern neu aufzubauen, das könntest in der sort.php erledigen und dort ausgeben und dann die vorhandene Tabelle ersetzen.

Alles in allem in ca ner Stunde programmierbar.
Bitte warten ..
Mitglied: Spackenbremse
30.05.2009 um 18:13 Uhr
Hallo..


Oder du versiehst alle deine Datensätze mit einer ID-Spalte. Wenn du z.b. in der Spalte 3 auf den "Abwärts-Knopf" drückst, soll dein Script einfach die ID in eine 4 ändern und die voherige ID 4 in eine 3. Eingendlich ganz simpel, kommt dem schon genannten extrem nahe.. das ist wohl die beste möglichkeit. ob das mit ajax leichter geht, bezweifel ich allerdings.

mfg
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Python
gelöst PHP Skript via Python starten mit JSON Objekt als Parameter (3)

Frage von nullacht15 zum Thema Python ...

PHP
gelöst PHP - Variable in anderes PHP-Skript mitgeben (3)

Frage von Jens4ever zum Thema PHP ...

Windows Server
gelöst Skript per GPO ausführen - Berechtigungen? (13)

Frage von honeybee zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...