Seite 1 von 1
Sortierung über $PHP_SELF funktioniert nicht im Frontend
Verfasst: Di 16. Nov 2004, 09:00
von trigger_id
Ich lese eine Publikationsliste (txt-file) über ein Modul aus, hier soll der Frontend-User wählen können, ob diese chronologisch oder alphabetisch angezeigt werden soll.
Die Anzeige erfolgt jedoch immer nur chronologisch, so wie die Seite zuerst aufgerufen wird. Die Sortierung über zsort= wird also nicht berücksichtigt...
Wie kann ich diese Problematik lösen?
if ( isset($zsort) && ($zsort==1) ){
printf("<font size=-1><a href=\"%s?idcatart=128?zsort=0\">[chronologisch sortiert]</a> [alphabetisch sortiert]</font></div>\n",$PHP_SELF);
}
else{
printf("<font size=-1>[chronologisch sortiert] <a href=\"%s?idcatart=128?zsort=1\">[alphabetisch sortiert]</a></font></div>\n",$PHP_SELF);
}
Verfasst: Di 16. Nov 2004, 10:07
von kummer
die übergabe des sort-parameters alleine reicht ja auch nicht aus. wo nimmst du denn genau die sortierung vor?
Verfasst: Di 16. Nov 2004, 12:27
von trigger_id
Habe das folgende als Modul angelegt, das dann im Frontend ausgegeben wird. Muss ich da an anderer Stelle noch was für die Sortierung angeben? So gut kenne ich mich da leider echt nicht aus...
<?PHP
include( "db.inc" );
$sql_command = $sql_diss_chron;
if ( isset($zsort) ) {
if ( $zsort == 0 ) $sql_command = $sql_diss_chron;
if ( $zsort == 1 ) $sql_command = $sql_diss_name;
}
$result=send_sql($sql_command);
mysql_close($link);
if ( mysql_num_rows($result) == 0 ){ die ("... no relevant data found. "); }
printf("<table BORDER=0 CELLPADDING=0 COLS=0 WIDTH=\"90%%\" >\n");
printf("<tr>\n");
printf("<td ALIGN=LEFT>\n");
if ( isset($zsort) && ($zsort==1) ){
printf("<font size=-1><a href=\"%s?idcatart=128?zsort=0\">[chronologisch sortiert]</a> [alphabetisch sortiert]</font></div>\n",$PHP_SELF);
}
else{
printf("<font size=-1>[chronologisch sortiert] <a href=\"%s?idcatart=128?zsort=1\">[alphabetisch sortiert]</a></font></div>\n",$PHP_SELF);
}
printf("<ul>\n");
while ( $row = mysql_fetch_array($result) ) {
$diss_nr = $row['eintrag_nr'];
$diss_dir = $row['archiv_ort'];
$diss_titel = htmlentities($row['aktueller_titel']);
$diss_ort = $row['ort_26'];
$diss_verlag = htmlentities($row['verlag_26']);
$diss_jahr = $row['jahr_26'];
$diss_vol = $row['vol_34'];
$diss_reihe = $row['reihe'];
$diss_isbn = $row['isbn'];
$diss_seiten = $row['seiten'];
$diss_autor = htmlentities($row['name_autor']);
printf("<li>\n");
printf("<b>%s:</b>",$diss_autor);
printf("<br>\n");
printf("%s,<br>Dissertation, \n",$diss_titel);
printf("%s: \n",$diss_ort);
printf("%s, \n",$diss_verlag);
printf("%s. \n",$diss_jahr);
if ( $diss_dir != "" ){
// Online Publikation
printf("<a HREF=\"diss/diss.php?diss=%s\">Online Publikation</a>",$diss_nr);
if ( file_exists($diss_jahr."/".$diss_dir."/".$diss_dir.".pdf") ) {
printf("<a href=\"%s/%s/%s.pdf\">",$diss_jahr,$diss_dir,$diss_dir);
echo " -></a>";
}
}
else{
// Forschungsbericht
if ( FALSE !== strpos($diss_reihe,"Forschungsbericht") ) {
printf("<a HREF=\"http://www.shaker.de\" \n>");
printf("Forschungsberichte</a> (Band %s) ",$diss_vol);
}
else{
printf("%s",$diss_reihe);
}
$ctag=0;
if ( $diss_isbn != "" ){printf(" ISBN %s ",$diss_isbn);$ctag=1;}
if ( $diss_seiten != "" ){if($ctag==1)printf(", ");printf("%s Seiten",$diss_seiten);}
}
}// while loop
mysql_free_result($result);
printf("</ul>\n");
printf("</td>\n");
printf("</tr>\n");
printf("</table>\n");
?>
Verfasst: Di 16. Nov 2004, 12:33
von kummer
sorry, habe es erst jetzt gesehen:
die übergabe von einem parameter erfolgt nach eine fragezeichen. mehrere übergabewerte müssen jedoch durch ein kaufmannsund getrennt werden und nicht durch ein fragezeichen.
korrekt muss es deshalb lauten:
Code: Alles auswählen
if ( isset($zsort) && ($zsort==1) ){
printf("<font size=-1><a href=\"%s?idcatart=128&zsort=0\">[chronologisch sortiert]</a> [alphabetisch sortiert]</font></div>\n",$PHP_SELF);
} else {
printf("<font size=-1>[chronologisch sortiert] <a href=\"%s?idcatart=128&zsort=1\">[alphabetisch sortiert]</a></font></div>\n",$PHP_SELF);
}
Verfasst: Di 16. Nov 2004, 12:51
von trigger_id
Super, vielen Dank, jetzt funktionierts!
