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, 8937 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 ..
Ähnliche Inhalte
Python
gelöst PHP Skript via Python starten mit JSON Objekt als Parameter (3)

Frage von nullacht15 zum Thema Python ...

PHP
PHP 5.3 nach PHP 5.6 portieren (5)

Frage von nippon-tussi zum Thema PHP ...

Verschlüsselung & Zertifikate
gelöst Verschlüsseltes Skript decodieren (23)

Frage von Luuke257 zum Thema Verschlüsselung & Zertifikate ...

Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (21)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Drucker und Scanner
Erfahrungen mit Enterprise-Tintenstrahldruckern A4 und A3 (11)

Frage von User1000 zum Thema Drucker und Scanner ...