yxcvbnm1234
Goto Top

Sortier-Funktion einbauen in PHP-Script

In meinem Browserfenster sieht es folgendermassen aus (siehe JPG unten):
255525343368a0276b068691864c01b8

Dies habe ich soweit mal mit PHP&MySQL (Zusammenspiel PHP&MySQL) hingekriegt. Ich würde (muss eig. dringend) gerne ein Suchfunktion eibauen, so, dass ich die Daten sortieren kann, z.B:

- sortieren nach Geburtstag
- sortieren nach Ort (Anfangsbuchstabe alphabetisch)

-> egal wie, hauptsache ich kann sortieren direkt im Browserfenster..


Wüsste vielleicht jem. von euch eine Lösung?

Vielen Dank!!

Content-ID: 156071

Url: https://administrator.de/contentid/156071

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

knut4linux
knut4linux 30.11.2010 um 17:10:47 Uhr
Goto Top
Mahlzeit,

die einfachste Lösung wäre, du baust über die Tabelle oder was wohin, ein Tropdownmenu wo du nach einem klick sortieren kannst.

Ich nehme mal du setzt XAMPP ein??
yxcvbnm1234
yxcvbnm1234 30.11.2010 um 17:26:27 Uhr
Goto Top
Genau! XAMPP wird eingesetzt! Das wäre natürlich mal was, wie ich es aber anstellen soll, davon habe ich keinen schimmer.

Grüsse und vielen Dank dass du geantwortet hast!
knut4linux
knut4linux 30.11.2010 um 17:44:52 Uhr
Goto Top
OK, ich bin zwar jetzt nicht der PHP-Oerguru, aber ich werde mal schauen, was ich aus meiner Schatzkiste kramen kann. Wird aber frühestens erst morgen Abend. Ich weiß jetzt nicht wie fit du selbst schon in PHP bist, aber wenn du dich so lange selbst versuchen willst, dann schau setzt dich mit der PHP_SELF Funktion auseinander.


Bis Morgen
dog
dog 30.11.2010 um 19:00:25 Uhr
Goto Top
Wo ist da jetzt das Problem?

Du machst die Spaltenköpfe zu Links:

seite.php?sort=1&order=ASC
seite.php?sort=2&order=ASC
...

Und wenn man draufklickt baust du halt den SQL Query entsprechend:

<?php

  $query = "SELECT ...";  

  $columns = array(1 => 'column1', 2 => 'column2', 3 => 'column3' ...);  
  $sortOrders = array('ASC','DESC');  
  if(!empty($_GET['sort']) && array_key_exists($_GET['sort'], $columns) && in_array($_GET['order'], $sortOrders)) {  
    $query .= ' ORDER BY '.$columns[$_GET['sort']].' '.$_GET['order'];  
  }
  
  mysql_query($query);
  ...
?>

Und eine inverse Sortierung kann man beim Bauen der Tabelle ganz einfach einbauen:
<?php

  for(...) {
    if(!empty($_GET['sort']) && $columns[$_GET['sort']] == $col_id) {  
      $order = ($_GET['order'] == 'ASC')? 'DESC' : 'ASC';  
      
      #url bauen...
    }
  }
  
?>
knut4linux
knut4linux 30.11.2010 um 22:31:35 Uhr
Goto Top
Diese Lösung ist natürlich "Deluxe". Genau so ist es auch, wenn du dir deine Datenbank mit dem mitgelieferten Datenbankbrowser von PHPMyAdmin betrachtest. Hier sind die Spaltenköpfe ebenfalls zu Links programmiert.

Genauso.
yxcvbnm1234
yxcvbnm1234 01.12.2010 um 09:14:35 Uhr
Goto Top
Liebe Leute

Ich danke euch viel viel mal! Sehr nett von euch!


Liebe Grüsse. ps. Ich werde es direkt ausporobieren