Top-Themen

Aktuelle Themen (A bis Z)

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)

Mitglied: LuckyLuke

LuckyLuke (Level 1) - Jetzt verbinden

08.04.2009, aktualisiert 10:42 Uhr, 8980 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
PHP

PHP - Variable in anderes PHP-Skript mitgeben

gelöst Frage von Jens4everPHP3 Kommentare

Hi zusammen, könnt ihr mir kurz helfen? Ich habe folgendes vor: Ich möchte, dass beim Aufruf von "check1.php" eine ...

PHP

Schreibrechte für Datei im PHP-Skript

gelöst Frage von itebobPHP1 Kommentar

Hallo, ich habe ein PHP-Skript schreiben1.php, das in eine Datei txt123.php schreibt. Wenn schreiben1.php so ausgeführt wird h ttp://server.tld/schreiben1.php ...

PHP

Abhängigkeiten in den PHP-Skripts vorbeugen

Frage von itebobPHP2 Kommentare

PHP-Skripts vom Webspace des UsersA sind per symbolischen Link in Webspaces mehrerer User eingebunden. Die Websites dieser User sind ...

Debian

Mit Shell Skript PHP ausfüheren

gelöst Frage von zeroblue2005Debian6 Kommentare

Hallo Zusammen, lacht nicht aber habe ich eben noch nie gemacht ich möchte eine Sh Datei haben die folgendes ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 24 MinutenHumor (lol)

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Olle Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 8 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 21 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit13 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless13 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...