Tabelle Sortieren mit PHP

Bild ist im Anhang; erste zeile sieht man was mit print $sql ausgeben wird; der Code
PHP:
<?php

function sort_table_header($album, $mode="desc"){ 
   if($mode == "desc") { 
      $mode_return = "asc"; 
   } elseif (!isset($mode) || $mode = "") { 
      $mode_return = "desc"; 
   }  else {
      $mode_return = "desc";
   }
      return "<a href=\"musikliste.php?sortierung=".$album."&direction=".$mode_return."\">".ucfirst($album)."</a>";     
}  
?>

<table cellpadding="0" cellspacing="0" border="2"> 
<th> <?= sort_table_header("album", $_GET['direction']); ?> </th> 
<th> <?= sort_table_header("interpret", $_GET['direction']); ?> </th> 
<th> <?= sort_table_header("genre", $_GET['direction']); ?> </th> 
<?php 
if(isset($_GET['direction']) && isset($_GET['sortierung'])){
   @$sql = "SELECT * FROM albumliste ORDER BY '".$_GET['sortierung']."' '".$_GET['direction']."'" ;
} else {
  @$sql = "SELECT * FROM albumliste" ; 
}
@$result = mysql_query($sql) OR die(" datenbank".mysql_error()); 

 while($row = mysql_fetch_object($result)) { 
 echo"<tr><td> $row->interpret </td><td> $row->album</td><td> $row->genre </td></tr>"; 
 } 
  
?>
<?php
print" $sql";
?> 
</table> 
</body> 
</html>
 

Anhänge

  • Unbenannt.JPG
    Unbenannt.JPG
    50,1 KB · Aufrufe: 78
Wieso hast du den Fehler hier

PHP:
@$sql = "SELECT * FROM albumliste ORDER BY '".$_GET['sortierung']."' '".$_GET['direction']."'" ;

nicht berichtigt?

In:
PHP:
@$sql = "SELECT * FROM albumliste ORDER BY ".$_GET['sortierung']." ".$_GET['direction'].";
 
Ich hatte das aber auch schon gesagt :) mach das mal und wenns wieder schief geht, dann bitte genau den Fehler angeben.
 
So ich habs jetzt mal in myphpadmin gemacht da gehts. Da konnt ich es sortieren lassen aber ich wills ja auf meiner seite hinbekommen
 
Wenn diese abfrage in PhpMyAdmin geht, dann exportier sie zu php und füg sie ein. wenn es dann immer noch nicht geht:

dann a) hast du was gemacht was du uns nicht sagst

oder b) du machst einen fehler dabei

oder c) wir allesamt sind zu doof
 
*zustimm*


Wenn nicht gib mal ein Packet mit allem incl. SQL-Dump, dann schau ich nochmal drüber...
 
So habs jetzt wie ihr gesagt hab gemacht
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php

@mysql_connect(localhost, root ) OR
        die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
    mysql_select_db(oberflaeche) OR
        die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<table cellpadding="0" cellspacing="0" border="2"> 
<?
 @$sql = "SELECT * FROM albumliste ORDER BY album desc"; 

@$result = mysql_query($sql) OR die(" datenbank".mysql_error()); 

 while($row = mysql_fetch_object($result)) { 
 echo"<tr><td> $row->interpret </td><td> $row->album</td><td> $row->genre </td></tr>"; 
 } 
  
?>
<?php
print" $sql";
?> 
</table> 
</body> 
</html>
Das geht auch aber eben nicht mit dieser funktion. Seid ihr sicher das diese Funktion richtig ist Hier nochmal der Code

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php

@mysql_connect(localhost, root ) OR
        die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
    mysql_select_db(oberflaeche) OR
        die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php

function sort_table_header($album, $mode="desc"){ 
   if($mode == "desc") { 
      $mode_return = "asc"; 
   } elseif (!isset($mode) || $mode = "") { 
      $mode_return = "desc"; 
   }  else {
      $mode_return = "desc";
   }
      return "<a href=\"musikliste.php?sortierung=".$album."&direction=".$mode_return."\">".ucfirst($album)."</a>";     
}  
?>

<table cellpadding="0" cellspacing="0" border="2"> 
<th> <?= sort_table_header("album", $_GET['direction']); ?> </th> 
<th> <?= sort_table_header("interpret", $_GET['direction']); ?> </th> 
<th> <?= sort_table_header("genre", $_GET['direction']); ?> </th> 
<?php 
if(isset($_GET['direction']) && isset($_GET['sortierung'])){
   @$sql = "SELECT * FROM albumliste ORDER BY '".$_GET['sortierung']."' '".$_GET['direction']."'" ;
} else {
  @$sql = "SELECT * FROM albumliste" ; 
}
@$result = mysql_query($sql) OR die(" datenbank".mysql_error()); 

 while($row = mysql_fetch_object($result)) { 
 echo"<tr><td> $row->interpret </td><td> $row->album</td><td> $row->genre </td></tr>"; 
 } 
  
?>
<?php
print" $sql";
?> 
</table> 
</body> 
</html>
 
Setz mal ziemlich am Anfang ein:

PHP:
error_reporting(E_ALL);

hin und entferne ALLE @ Zeichen im Quellcode. Der unterdrückt mögliche Fehler, die wir ja sehen wollen...
 
Zurück