ORDER BY ändern, ohne Reload?


tobee

Erfahrenes Mitglied
Ich wollte mir eine Funktion schreiben, die mir ein SQL SELECT Statement durchführt, das ganze dann in eine html Tabelle schreibt und ausgibt.

Jetzt wollte ich fragen ob man die Tabelle auch ohne einen Reload neu sortieren kann?
z.B. sortiere mir die Benutzernamen alphabetisch.

Ich habe es schon mit Hilfe eines JavaScript Array probiert.
PHP:
<?php
class com_db 
{

  function Table ( $query )
  {

    $columns = array();
    $widths = array();

    $output = "";
    $javascript = "";

    // Datenbankanbidung
    $this->Connect();
    
    // Die eizelnen Spalten ermitteln
    $sql = "SHOW COLUMNS FROM `user`";
    $result = mysql_query($sql);
    while ( $column = mysql_fetch_array($result) ) {
      $widths[] = strlen($column['Field'])*20;
      $columns[] = $column['Field'];
    }

    $output .= "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
    
    // Breite der eizelnen Spalten definieren
    $output .= "<colgroup>";
    for ( $i = 0; $i < count($widths); $i++ )  {
      $output .= "<col width=\"" . $widths[$i] . "\">";
    }
    $output .= "</colgroup>";

    // Überschriften definieren
    $output .= "<tr>";
    for ( $i = 0; $i < count($columns); $i++ )  {
      $output .= "<td style=\"font-weight:bold;\">" . ucfirst($columns[$i]) . "</td>";
    }
    $output .= "</tr>";

    // Die Tabelle mit Daten füllen
    $result = mysql_query($query);
    $count = mysql_num_rows($result);

    // JavaScript Code
    $javascript .= "<script type=\"text/javascript\">";
    $javascript .= "var data = new Array();";
    for ( $i = 0; $i < $count; $i++ ) {
      $javascript .= "data[$i] = new Object();";
    }

    while ( $row = mysql_fetch_assoc($result) )  {
      $output .= "<tr>";
        for ( $i = 0; $i < count($columns); $i++ )  {
          $javascript .= "data[$i][\"" . $columns[$i] . "\"] = '" . $row[$columns[$i]] . "';";
          $output .= "<td>" . $row[$columns[$i]] . "</td>";
        }
      $output .= "</tr>";
    }
    $output .= "</table>";
    $javascript .= "</script>";

    $r = $javascript . $output;

    return $r;

  }

  function Connect()
  {
    $db = mysql_connect("localhost","root","");
    mysql_select_db("intranet",$db);
  }


}
$com_db = new com_db;
echo $com_db->Table("SELECT * FROM `user`");
?>
 

Gumbo

Erfahrenes Mitglied
Ja das ist mit JavaScript möglich. Such einfach mal nach den Stichwörtern „javascript sortable table“.
 

Neue Beiträge