Hallo,
ich bin neu im Thema PHP und habe folgendes Problem.
Ich habe folgendes script:
<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="abc"; // MySQL-User angeben
$mysqlpwd="abc"; // Passwort angeben
$mysqldb="Projekte"; // Gewuenschte Datenbank angeben$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql = "SELECT * FROM Projekt ORDER BY ID";
$projekte_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");
$anzahl = mysql_num_rows($projekte_query);
echo "Anzahl der Projekte: $anzahl";
?>
<body>
<table cellpadding="1" cellspacing="1" border="1" frame="box">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><thead>
<tr>
<td BGCOLOR="#D8D8D8"><b>ID</b></td>
<td BGCOLOR="#D8D8D8"><b>Kurzname</b></td>
<td BGCOLOR="#D8D8D8"><b>Langname</b></td>
<td BGCOLOR="#D8D8D8"><b>Beschreibung</b></td>
<td BGCOLOR="#D8D8D8"><b>Aufnahmedatum</b></td>
<td BGCOLOR="#D8D8D8"><b>Projektleiter</b></td>
<td BGCOLOR="#D8D8D8"><b>Bereich</b></td>
<td BGCOLOR="#D8D8D8"><b>Zeitbedarf</b></td>
<td BGCOLOR="#D8D8D8"><b>Prozent Fertig</b></td>
<td BGCOLOR="#D8D8D8"><b>Bearbeiter</b></td>
<td BGCOLOR="#D8D8D8"><b>Aktiv</b></td>
<td BGCOLOR="#D8D8D8"><b>Erledigt</b></td>
</tr>
</thead>
<?phpwhile ($pro = mysql_fetch_array($projekte_query)){
?>
<tbody>
<td><?=$pro['ID']?></td>
<td><?=$pro['Kurzname']?></td>
<td><?=$pro['Langname']?></td>
<td><?=$pro['Beschreibung']?></td>
<td><?=$pro['Aufnamedatum']?></td>
<td><?=$pro['Projektleiter']?></td>
<td><?=$pro['Bereich']?></td>
<td><?=$pro['Zeitbedarf']?></td>
<td><?=$pro['Fertigstellungsgrad']?></td>
<td><?=$pro['Bearbeiter']?></td>
<td><?=$pro['Aktiv']?></td>
<td><?=$pro['Erledigt']?></td>
</tr>
</tbody>
<?php
}
?>
</table>
>
>
> Jetzt möchte ich durch klicken auf z.B. Datum, dass die Daten sortiert werden. Nur wie mache ich das mit dem klick und der Funktion?
>
>
> Gruß
>
>
> Haruzept
Das gibts zwei Möglichkeiten.
Wenn das ganze eine Tabelle sein soll, dann kannst du ein Javascript "Grid" benutzen. Da gibt es sehr machtvolle Frameworks, die dir eine Tabelle inklusive Sortierung und Filterung bauen. Der Vorteil ist eine sehr sehr schnelle verarbeitung, da die Daten im Javascript vorliegen und somit vom Browser Sortiert bzw. gefiltert werden. Nachteil wäre, dass man alle Daten bei der Initialisierung übermitteln muss. Ergo hast du eine lange Anfangsladezeit (es sein den die Daten werden nach und nach per Ajax geholt), dann jedoch eine schnelle Ausführungszeit.
Zweite Möglichkeit wäre das ganze im PHP zu machen. Dann brauchst du aber Dynamische Punkte um die Sortierreinfolge von Außen zu beeinflussen. Rudimentär sieht das so aus:
if($\_GET["sort"] == "name\_asc")
{
$orderby = "NAME ASC";
} else if($\_GET["sort"] == "mail\_asc")
{
$orderby = "MAIL ASC";
}
je nachdem was in $\_GET["sort"] steht reagierst du mit einer entsprechend anderen suche. Das ganze kann man wie "suit" bereits angedeutet hat noch kürzer darstellen. Ungefähr so:
//--- $\_GET["sort"] = "NAME ASC"
$orderby = $\_GET["sort"];
Die Variable $orderby musst du dann noch entsprechend in deinen MySQL Code einpflegen.
Gruß
Europapark geschädigter
T-Rex