PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sortierung ASC und DESC von Tabellen mittels austauschbaren Icons wie bei phpMyAdmin!


trigan22
12.02.2004, 15:14:44
bin gerade dabei meine Tabellensortierung mittels gifs auf und abzusortieren - wie bei phpMyAdmin, leider bis jetzt ohne erfolg...

kann mir jemand einen Lösungsvorschlag geben?

folgendes script habe ich bis dato geschrieben:

<?php

function holedaten ( $feldname ) // funktioniert auch für Arrays !!!
{ global $HTTP_POST_VARS,$HTTP_GET_VARS;

if ( isset($HTTP_POST_VARS[$feldname]) )
$wert = $HTTP_POST_VARS[$feldname];
elseif ( isset($HTTP_GET_VARS[$feldname]) )
$wert = $HTTP_GET_VARS[$feldname];
else
$wert = "";
if ( is_array($wert) )
{ // jetzt jeden Wert im Array einzeln trimmen
for ( $i = 0; $i < count($wert); $i++ )
{ if ( get_magic_quotes_gpc() ) $wert[$i] = stripslashes($wert[$i]);
$wert[$i] = trim($wert[$i]);
}
// das Array ausgeben
return $wert;
}
else // den getrimmten Wert zurückgeben
{ // falls magic_quotes eingeschaltet schmeiss sie wieder raus
if ( get_magic_quotes_gpc() ) $wert = stripslashes($wert);
return trim($wert);
}
}
function richtung( $sort )
{ global $sortierung,$richtung;
echo ( $sortierung == $sort && $richtung == "ASC" ) ? "DESC" : "ASC";
}
$sortierung = holedaten("sortierung");
$richtung = holedaten("richtung");


if ( ! in_array($sortierung,array("Tabellenüberschrift 1","Tabellenüberschrift 2")) )
$sortierung = "Tabellenüberschrift 1";
if ( ! in_array($richtung,array("ASC","DESC")) )
$richtung = "ASC";

?>

...


<th><a class="light" href="<?php echo $PHP_SELF; ?>?sortierung=Tabellenüberschrift 1&richtung=<?php richtung("Tabellenüberschrift 1"); ?>" title="Alphabetische Sortierung">Tabellenüberschrift 1</a></th>

--- anstelle Tabellenüberschrift 1 als link möchte ich gif1 fuer abwaerts und gif2 fuer aufwaerts wählen, diese aber bei gewaehlter sortierung durch andersfarbiges gif1 bzw. gif2 austauschen...
----

....

weiter gehts mit:

....

include_once("../libs/verbinden.inc.php");
// 3. Anfrage stellen
$antwort = mysql_query("SELECT Tabellenüberschrift 1,Tabellenüberschrift 2 FROM tabelle ORDER BY $sortierung $richtung LIMIT $start,$ende",$verbindung);
....

danke im voraus!
BK

c4
12.02.2004, 15:37:08
Einfach so: if (!isset($_GET['order_by']) || $_GET['order_by']=='asc') {
echo "<a href='asd.php?order_by=desc'>desc</a>";
}
else {
echo "<a href='asd.php?order_by=asc'>asc</a>";
}

trigan22
12.02.2004, 15:51:29
das script ist o.k. aber
wie sieht es mit den austauschbaren gifs aus?

Gruss,
BK

da-wandler
12.02.2004, 15:57:23
wie wäre folgendes szenario:

die seite ruft sich selbst mit einer variablen auf z.b. ?order=ORDER BY Nummer DESC

in der mysq abfrage steht dann nur noch die variable...und du setzt auf jedes gif einen anderen varaiblen-wert...

muss man dann am schluss ein unset($order); machen

c4
12.02.2004, 15:57:52
Original geschrieben von trigan22
wie sieht es mit den austauschbaren gifs aus? Einfach einbauen. Das Beispiel nutzt einfache Textlinks. Wenn du dort noch die Grafik mit reinknallst, dann hast du's.

--> http://www.selfhtml.net/html/grafiken/verweise.htm#definieren

trigan22
12.02.2004, 16:36:20
c4, habe folgendes nach deiner version geändert, jedoch wechsel zwischen asc und desc findet so nicht statt- wenn man auf ASC ist muss man auf DESC wechseln können, dies klappt mit dem Script aber nicht.:

<th>Vorname<?php if (! isset($_GET['richtung']) || $_GET['richtung'] =='ASC') {echo "<a href='teamansicht.php?sortierung=vorname&richtung=ASC' title="Alphabetische Sortierung">ASC</a>";} else echo "<a href='teamansicht.php?sortierung=vorname&richtung=DESC' title="Alphabetische Sortierung">DESC</a>"; ?></th>

c4
12.02.2004, 16:40:27
Dir ist eine kleine Vertauschwechslung unterlaufen. Schau dir mein Skript und deins noch mal genau an...

trigan22
12.02.2004, 16:57:02
stimmt, danke BK.