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

Frage Entwicklung PHP

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, 8957 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
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...