Checkboxen als Array nutzen
Hi,
machs am besten so:
du legst die Checkboxen mit einem Array als Namen an und schreibst die Bezeichnung daneben z.B.:
<checkbox name="chkArray[0]">name
<checkbox name="chkArray[1]">vorname
In der Seite wo die Checkboxen übergeben werden, definierst Du ein Array mit den Spaltenüberschriften. Dann fragst Du die Checkboxen in einer Schleife ab. Wenn eine Checkbox gewählt wurde, nimmst Du den Namen aus dem Array mit den Spaltenüberschriften und schreibst ihn 1. in Deine Query und 2. in ein weiteres Array, welches dann die ausgewählten Spaltenüberschriften beinhaltet.
// ich gehe in dem Beispiel davon aus, daß es nur 2 Einträge gibt
// Globalisierung
global $chkArray;
// Spaltenüberschriften festlegen (TabellenSpaltenNamen)
$arrSpaltenueberschrift[0] = "name";
$arrSpaltenueberschrift[1] = "vorname";
// Variablen festlegen
$strQuery = "";
$arrSpaltenDarstellung = array();
$intZaehler = 0;
// Schleife über das übergebene Array
for($i = 0; $i<2; $i++){
if(isset($chkArray[$i]){
if($i==0){
$strQuery = $arrSpaltenueberschrift[$i];
}
else{
$strQuery+=", ".$arrSpaltenueberschrift[$i];
}
$arrSpaltenDarstellung[$i]=$arrSpaltenueberschrift[$i];
$intZaehler++;
}
}
Damit hast Du dann die Felder die in Deiner Query stehen + Deine Spaltenüberschriften. Der Zaehler gibt die Anzahl der ausgewählten Felder in Deiner Tabelle an. Nun mußt Du nur noch die Daten aus der Tabelle in ein Array bzw. in ein Resultset und das ganze in einer Tabelle ausgeben. Da Du wahrscheinlich weißt, wie man Daten aus einer Tabelle liest, zeige ich hier nur die Ausgabe.
<table>
<tr>
<?php
// Spaltenüberschriften festlegen
for($i = 0; $i<$intZaehler; $i++){
echo "<td>".$arrSpaltenDarstellung[$i]."</td>";
}
echo "</tr><tr>";
// Die Abgrenzung der Felder zu den Werten
for($i = 0; $i<$intZaehler; $i++){
echo "<td>====</td>";
}
// Die Ausgabe der Werte aus der DB, ich gehe davon aus, das sie in einem
// 2-Dimensionalen Array stehen, getrennt nach [Nummer][Name]
for($idxWerte=0; $idxWerte<$arrWerte.length(); $idxWerte++){
for($i = 0; $i<$intZaehler; $i++){
echo "<td>".$arrWerte[$idxWerte][$arrSpaltenDarstellung[$i]]."</td>";
}
echo "</tr><tr>";
}
?>
</tr>
</table>
Durch dieses Vorgehen erhälst Du eine druckbare Tabellenansicht.
Bitte schreiben obs gefunzt hat
Gruss,
Thomas