tabellen mit php/mysql sortieren?

Lord_Bender

Neuling
Thread Starter
Mitglied seit
10.02.2006
Beiträge
769
Ort
Dortmund
Hey,

Ich habe ein Interface gebaut, welches aus mehreren Tabellen Daten per INNER JOIN holt und als Tabelle ausgibt.

Aufbau:

Rechnername / RAM / Grafikarten / CPU / MHZ / etc.

Nun möchte ich gerne, das wenn ich zum Beispiel auf "CPU" klickte, mir die Tabelle absteigend / aufsteigend nach der CPU sortiert wird. Und diese auch bei den anderen Feldern.

Ich habe schon viel im Netz gesucht und sehr viele verschiedene Wege gefunden, aber keiner hat so richtig funktioniert.

Vielleicht kann mir ja hier jemand helfen.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
du uebergibts ein parameter welches feld zu anzeigen willst und die richtung. Und dann haengst du das einfach in dem select an direkt nach der Where Clause an. 'ORDER BY cpu ASC' oder 'ORDER BY ram DESC'
 
Also ich hab das mal so gelöst, hoffe es hilft dir

PHP:
	function get_views($sql)
	{
		$res = mysql_query($sql) or die ("SQL Abfrage Fehler!");
		$rows =  array();
		while($row = mysql_fetch_object($res))
		{
			$rows[] = $row;
		}
		return $rows;
	}

	$dbAbfrage = get_views("Select Rechnername, RAM, Grafikkarten, CPU, MHZ from Table");

	for($i = 0; $i < count($dbAbfrage); $i++){
	    	switch($sort){
		    		case "Rechnername":
		    			$sort2 = $dbAbfrage[$i]->Rechnername;
		    		break;
		    		case "RAM":
		    			$sort2 = $dbAbfrage[$i]->RAM;
		    		break;
		    		case "Grafikkarten":
		    			$sort2 = $dbAbfrage[$i]->Grafikkarten;
		    		break;
		    		case "CPU":
		    			$sort2 = $dbAbfrage[$i]->CPU;
		    		break;
		    		case "MHZ":
		    			$sort2 = $dbAbfrage[$i]->MHZ;
		    		break;
		    	}
      	$lines[] = array(
      	"id"           => "00_".$sort2,
				"Rechnername"  => $dbAbfrage[$i]->Rechnername,
				"RAM"          => $dbAbfrage[$i]->RAM,
				"Grafikkarten" => $dbAbfrage[$i]->Grafikkarten,
				"CPU"          => $dbAbfrage[$i]->CPU,
				"MHZ"          => $dbAbfrage[$i]->MHZ);
	}
	if($how_sort == "up"){
		rsort($lines);
	}else{
		sort($lines);
	}
	?>
	<table>
	<?php
	if($how_sort == "up"){
	?>
  <tr>
	<td><a href='<? echo $_PHP_SELF."?sort=Rechnername&how_sort=down"  ?>'>Rechnername  <? if($sort == "Rechnername")  { echo "v"; } ?></a></td>
	<td><a href='<? echo $_PHP_SELF."?sort=RAM&how_sort=down"          ?>'>RAM          <? if($sort == "RAM")          { echo "v"; } ?></a></td>
	<td><a href='<? echo $_PHP_SELF."?sort=Grafikkarten&how_sort=down" ?>'>Grafikkarten <? if($sort == "Grafikkarten") { echo "v"; } ?></a></td>
	<td><a href='<? echo $_PHP_SELF."?sort=CPU&how_sort=down"          ?>'>CPU          <? if($sort == "CPU")          { echo "v"; } ?></a></td>
	<td><a href='<? echo $_PHP_SELF."?sort=MHZ&how_sort=down"          ?>'>MHZ          <? if($sort == "MHZ")          { echo "v"; } ?></a></td>
  </tr>
	<?php
	}else{
	?>
  <tr>
	<td><a href='<? echo $_PHP_SELF."?sort=Rechnername&how_sort=up"  ?>'>Rechnername  <? if($sort == "Rechnername")  { echo "^"; } ?></a></td>
	<td><a href='<? echo $_PHP_SELF."?sort=RAM&how_sort=up"          ?>'>RAM          <? if($sort == "RAM")          { echo "^"; } ?></a></td>
	<td><a href='<? echo $_PHP_SELF."?sort=Grafikkarten&how_sort=up" ?>'>Grafikkarten <? if($sort == "Grafikkarten") { echo "^"; } ?></a></td>
	<td><a href='<? echo $_PHP_SELF."?sort=CPU&how_sort=up"          ?>'>CPU          <? if($sort == "CPU")          { echo "^"; } ?></a></td>
	<td><a href='<? echo $_PHP_SELF."?sort=MHZ&how_sort=up"          ?>'>MHZ          <? if($sort == "MHZ")          { echo "^"; } ?></a></td>
  </tr>
	<?php
	}
	foreach ($lines as $key => $val) {
		?>
		<tr>
			<td id='<? echo $val['id'] ?>'><? echo $val['Rechnername'] ?></td>
			<td><? echo $val['RAM'] ?></td>
			<td><? echo $val['Grafikkarten'] ?></td>
			<td><? echo $val['CPU'] ?></td>
			<td><? echo $val['MHZ'] ?></td>
		</tr>
	<?php
}
?>
</table>
 
wieso zum geier sortierst du das im php wenn es dir die datenbank schon sortiert anliefern kann?
 
wieso zum geier sortierst du das im php wenn es dir die datenbank schon sortiert anliefern kann?

Ganz einfach, weil ich das Script nur schnell abgeändert habe, meine Daten, für die ich das Script damals benötigt habe, kamen nämlich nicht aus einer Datenbank, sondern aus dem Filesystem. Und als Lösungsansatz reicht es allemal. Daher zum Geier!
 
Ganz einfach, weil ich das Script nur schnell abgeändert habe, meine Daten, für die ich das Script damals benötigt habe, kamen nämlich nicht aus einer Datenbank, sondern aus dem Filesystem. Und als Lösungsansatz reicht es allemal. Daher zum Geier!
klar reicht es als loesungsansatz aber du musst ihn ja nicht zwanghaft auf eine vollkommen falsche faehrte fuehren, zumal es eine eigentliche leichte aufgabe doch unnoetig kompliziert macht.
Und wenn schon im PHP sortieren, dann geht es doch ueber methoden wie 'uasort' und einem Callback deutlich eleganter.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh