SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 27.09.2007, 12:57:39
fab fab ist offline
Anfänger
 
Registriert seit: Sep 2007
Beiträge: 12
DB Ausgabe: sortieren hin und wie wieder zurück...?

Ich denke über dieses Problem nun schon eine ganze Weile nach und glaube, ich bin total auf dem Holzweg...

Ich gebe das Ergebnis einer Datenbankabfrage in Form einer Tabelle aus. Dabei ist die Sortierreihenfolge durch meine SQL-Abfage vorgegeben:

PHP-Code:
mysql_query"ALTER TABLE abc ORDER BY xyz"); 
Wunderbar. Jetzt möchte ich, dass der Anwender diese Sortierung aber ändern kann und zwar durch Klick auf die Spaltenüberschriften der Tabelle. Dafür gebe ich dem Link auf die php-Seite einen Wert ($sortierung) mit, den ich am Seitenanfang dann wieder auslese:

PHP-Code:
if (isset($_GET['sortierung']))
{
$sortierung $_GET['sortierung'
}
if (
$sortierung==1)
{
mysql_query"ALTER TABLE abc ORDER BY id");
}
if  (
$sortierung==2)
{
mysql_query"ALTER TABLE abc ORDER BY user"); 
}
if  (
$sortierung==3)
{
mysql_query"ALTER TABLE abc ORDER BY datum"); 

Auch das klappt bestens. Wie aber bekomme ich es hin, dass ich bei erneutem Klick die Sortierreihenfolge der entsprechenden Spalte umdrehe? Also im Prinzip möchte ich genau den Effekt haben wie bei phpMyAdmin, wenn man sich z.B. den Inhalt einer Tabelle ansieht. Dafür müsste ich doch den momentanen Zustand, also die aktuelleReihenfolge, irgendwie speichern. Wie mache ich das, brauch ich dafür noch einen weiteren Eintrag in der DB, denn ich dann immer wieder überschreibe, oder geht das auch eleganter?
Mit Zitat antworten
  #2  
Alt 27.09.2007, 13:02:56
ZeroxXx ZeroxXx ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 128
AW: DB Ausgabe: sortieren hin und wie wieder zurück...?

Meinst du DESC und ASC?

Mit ASC wird aufwärst sortiert, mit DESC abwärts.

http://tut.php-quake.net/mysql-select-tabellen.html#u2


Edit: Wenn du in phpmyadmin den Inhalt einer Tabelle ansiehst, dann wird der Inhalt immer nach IDs sortiert.

Geändert von ZeroxXx (27.09.2007 um 13:04:26 Uhr)
Mit Zitat antworten
  #3  
Alt 27.09.2007, 13:18:51
fab fab ist offline
Anfänger
 
Registriert seit: Sep 2007
Beiträge: 12
AW: DB Ausgabe: sortieren hin und wie wieder zurück...?

Ja DESC und ASC. Aber SQL ist (in dem Fall) nicht mein Problem.

Ich könnte natürlich für jede Sortiervariante einen eigenen HTML-Link anlegen

HTML-Code:
<a href=seite.php?sortierung=aufwaerts>aufwaerts</a><br>
<a href=seite.php?sortierung=abwaerts>abwaerts</a><br>
das sieht aber nicht so gut aus. Mir wäre es halt lieber, ich könnte einmal klicken, die Sortierreihenfolge ändert sich (das klappt schon), ich klicke nochmal, die Sortierreihenfolge ändert sich wieder zurück.

Zitat:
Edit: Wenn du in phpmyadmin den Inhalt einer Tabelle ansiehst, dann wird der Inhalt immer nach IDs sortiert.
Stimmt nicht. Sieh dir mal eine Tabelle in phpMyAdmin an (Modus: "Anzeigen", nicht "Struktur") und klick dann mal auf die verschiedenen TH, dann ändert sich entsprechend die Sortierung...
Mit Zitat antworten
  #4  
Alt 27.09.2007, 16:19:49
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DB Ausgabe: sortieren hin und wie wieder zurück...?

Du mußt ein Merkmal einführen, das angibt wie nach einem Klick ausgegeben werden soll.

Wenn z.B. die 1 für aufwärts steht und die 0 für abwärts steht, dann schreibst du bei jeder Ausgabe das Gegenteil, dessen was gerade angezeigt wird, in den Link.

Also:
Die Sortierung findet in der aktuellen Ausgabe nach Datum aufwärts statt, dann schreibst du in den Link.

Code:
<a href=seite.php?sortierung=3&aufab=0>Datum</a><br>
Damit bekommt dein Skript nach dem Klick die 3 für Datum und die 0 für abwärts. Klickst du nun darauf und die Seite wird mit der neuen Sortierung ausgegeben, schreibst du wieder das Gegenteil des Aktuellen in den Link.

Code:
<a href=seite.php?sortierung=3&aufab=1>Datum</a><br>
So bekommt das Skript die 3 für Datum und die 1 für aufwärts.


Im Grunde genommen funktioniert es so wie eine Play/Pause Taste, die auch immer das Gegenteil der Funktion anzeigt, die gerade läuft.

Geändert von Raketenmann (27.09.2007 um 16:27:20 Uhr) Grund: Formatierung
Mit Zitat antworten
  #5  
Alt 27.09.2007, 17:36:29
fab fab ist offline
Anfänger
 
Registriert seit: Sep 2007
Beiträge: 12
AW: DB Ausgabe: sortieren hin und wie wieder zurück...?

ES FUNKTIONIERT!

Es sind zwar eine Menge Abfragen bei 5 verschiedenen Tabellenspalten, nach denen in zwei Richtungen sortiert werden soll, es geht aber einwandfrei!

Danke.
Mit Zitat antworten
  #6  
Alt 28.09.2007, 01:19:57
Benutzerbild von z0iD
z0iD z0iD ist offline
Junior Member
 
Registriert seit: Mar 2006
Beiträge: 415
z0iD eine Nachricht über ICQ schicken
AW: DB Ausgabe: sortieren hin und wie wieder zurück...?

Du könntest die Anzahl der Abfragen reduzieren, indem Du die Sortierungsmethode (auf/ab) gesondert betrachtest und einfach nur 'ASC' oder 'DESC' in eine Variable schreibst, jene kannst Du dann später in den Verweistext einbauen.

Des weiteren kannst Du Dir alle Abfragen sparen indem Du ein Feld anlegst, welches für jeden Index einen Verweisspezifizierer enthält. Genaugenommen meine ich das so:
PHP-Code:
$orderby = array('id','datum','user');
$ascdesc = array('ASC','DESC'); 
Wenn Du nun Deinen Wert übergeben bekommst kannst Du die Sortierreihenfolge wie folgt zusammensetzen:
PHP-Code:
$query .= ' ORDER BY `'.$orderby[$sortierung].'` '.$ascdesc[$aufab].';'
Keine einzige Abfrage und keine unschönen Wiederholungen im Quelltext (hierbei wird impliziert, dass in der Variablen $query bereits eine Abfrage ohne Sortierungsbefehl steht).
__________________
Bitte sprich entweder deutsch oder englisch mit mir, aber nicht beides gleichzeitig.

----------
Bitte vor dem Fragen lesen: Wie man Fragen richtig stellt.
Mit Zitat antworten
  #7  
Alt 28.09.2007, 10:28:10
rambi
Guest
 
Beiträge: n/a
AW: DB Ausgabe: sortieren hin und wie wieder zurück...?

@fab
Du arbeitest doch hoffendlich nicht mehr so heftig mit: "ALTER TABLE abc ORDER BY xyz"
Das Kommando macht eigendlich nur nach großen Einfüge Aktionen Sinn. Und dann auch nur einmal angewendet. Stell dir mal vor, 20 Leute sind gleichzeitig auf der Seite und jeder teilt der DB seinen persönlichen Sortierwunsch mit. Also 20 "ALTER TABLE" gleichzeitig.
1. dauert das
2. "RaceConditions"

Keinesfalls wird von phpmyadmin dieses Kommando abgesetzt, wenn du auf einen Spaltenkopf klickst. Ausserdem kann man sich "die letzte Sortierung" ganz klasse in Session merken.
Mit Zitat antworten
  #8  
Alt 28.09.2007, 11:46:27
Benutzerbild von z0iD
z0iD z0iD ist offline
Junior Member
 
Registriert seit: Mar 2006
Beiträge: 415
z0iD eine Nachricht über ICQ schicken
AW: DB Ausgabe: sortieren hin und wie wieder zurück...?

Oha, den Schnitzer hatte ich wohl vollkommen überlesen.
Also rambi hat noch untertrieben, auf jeden Fall das 'ALTER TABLE' weglassen und mit SELECT * FROM `tbl` ORDER BY `xyz` arbeiten!
__________________
Bitte sprich entweder deutsch oder englisch mit mir, aber nicht beides gleichzeitig.

----------
Bitte vor dem Fragen lesen: Wie man Fragen richtig stellt.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ausgabe alphabetisch sortieren Banja PHP Grundlagen 3 16.10.2006 13:40:19
Ausgabe mit ORDER BY passt nicht... mayer MySQLi/PDO/(MySQL) 5 03.07.2006 00:39:08
nach RAND() Ausgabe sortieren marc26 MySQLi/PDO/(MySQL) 1 10.04.2006 21:35:19
bestimmte html ausgabe joker PHP Grundlagen 2 15.11.2004 21:37:56
Ausgabe eines echo befehls? Funjoy PHP Grundlagen 2 15.07.2003 13:35:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:21:56 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt