[PHP/HTML] Sortierung nach Option

Tamara_Basel

Well-known member
ID: 92557
L
26 Mai 2006
187
3
Hallo,

ich möchte eine Sortiermöglichkeit für eine Artikelliste erstellen,
bisher ist es so das alles nach dem end Datum sortiert wird.

PHP:
$result = mysql_query ( "SELECT * FROM auctions WHERE user='".addslashes($user_id)."' AND closed='0' ORDER BY ends ASC" );

Kann ich das einfach mit $sortierung ändern ?
Und wie muss ich die html datei erweitern und die $sortierung zu bekommen ?

PHP:
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=4 CELLSPACING=1 bgcolor="#FFFFFF">
<TR ALIGN=CENTER style="background-image: url('images/kachel.jpg')">
  <TD WIDTH="10%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#08428C"><? print $std_font.$MSG_167 ?></FONT></TD>
  <TD WIDTH="45%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#08428C"><? print $std_font.$MSG_168; ?></FONT></TD>
  <TD WIDTH="15%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#08428C"><? print $std_font.$MSG_169; ?></FONT></TD>
  <TD WIDTH="15%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#08428C"><? print $std_font.$MSG_170; ?></FONT></TD>
  <TD WIDTH="15%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#08428C"><? print $std_font.$MSG_171; ?></FONT></TD>
</TR>
<? print $TPL_auctions_list_value; ?>
</TABLE>

Die Sortierung soll nach Preis aufsteigend und absteigend möglich sein.

Bitte gebt mir ein Paar anregungen wie ich das hinbekomme.

Die dateien die da betroffen sind:
all_auctions.php
template_auctions.html

Grüße Thomas
 
Bau in deine HTML-Datei Links ein, z.B.
HTML:
<a href="script.php?sort=price&sortdir=asc">Preis aufwärts</a>
<a href="script.php?sort=price&sortdir=desc">Preis aufwärts</a>
<a href="script.php?sort=ends&sortdir=asc">Endzeit aufwärts</a>
...
In der PHP-Datei gehst du nun her und verwendest diese Parameter in der Query. Vorsicht ! Unbedingt vorher die Variablen checken :!:
PHP:
// (!) TODO: $_GET['sort'] und $_GET['sortdir'] auf Injections und falsche Werte prüfen !
$result = mysql_query ( "SELECT * FROM auctions WHERE user='".addslashes($user_id)."' AND closed='0' ORDER BY ".$_GET['sort']." ".$_GET['sortdir']);
edit:
Ich hab den Rest der Query einfach mal stur abkopiert. Zu SELECT * muss ich wohl nix sagen :roll:
 
Hallo,

danke, das geht schon fast glaub ich, jetzt fehlt noch die Session ID,

ich hab es jetzt so versucht die mit zu übergeben, aber ich glaub das ist etwas Falsch, zumindest wird nix übergeben...

template_auctions_active.html

HTML:
<TABLE WIDTH="100%" BORDER=0 CELLPADDING=4 CELLSPACING=1 bgcolor="#FFFFFF">
<TR ALIGN=CENTER BGCOLOR="#1C4489">
  <TD WIDTH="10%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#FFFFFF"><? print $MSG_167; ?></FONT></TD>
  <TD WIDTH="45%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#FFFFFF"><? print $MSG_168; ?></FONT></TD>
  <TD WIDTH="15%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#FFFFFF"><a href="active_auctions.php?SESSION_ID=".urlencode($sessionIDU)."&user_id=".$user_id."sort=price&sortdir=asc">Preis aufwärts</a><? print $MSG_169; ?></FONT></TD>
  <TD WIDTH="15%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#FFFFFF"><? print $MSG_170; ?></FONT></TD>
  <TD WIDTH="15%"><FONT FACE="Arial,Helvetica,Arial" SIZE="2" COLOR="#FFFFFF"><? print $MSG_171; ?></FONT></TD>
</TR>
<? print $TPL_auctions_list_value; ?>
</TABLE>

Und in der all_auctions.php

PHP:
// Test um zu Sortieren
// (!) TODO: $_GET['sort'] und $_GET['sortdir'] auf Injections und falsche Werte prüfen !
$result = mysql_query ( "SELECT * FROM auctions WHERE user='".addslashes($user_id)."' AND closed='0' ORDER BY ".$_GET['sort']." ".$_GET['sortdir']);

Das ergebnis ist dabei folgender Seitenaufruf:
https://www.ebcity.de/active_auctions.php?SESSION_ID=

und ab der Session ID fehlt alles.

//edit
Hier der Link wie er sein sollte:
https://www.ebcity.de/all_auctions.php?SESSION_ID=&user_id=82f4725f3ebbbcb44690f94f29c470d4
//edit

Kann di Session ID so überhaupt funtionieren ? die müsste doch in der PHP erzeugt werden ?

Ich hab das auf die Art noch nie gemacht mit php und Html dateien....

Wäre das nicht einfacher wenn ich die beiden zusammen zu einer Datei mache ?

Welchen Vorteil hat diese Art der Programmierung mit Templates ?

Grüße Thomas