Hallo,
so funktioniert es
$kat = array();
$kat = $_GET["kat"];
echo "<pre>";
var_dump($kat);
echo "</pre>";
function Vorlagen($mysqli, $kat) {
//$values = array('1','2');
$values = $kat;
$s = substr( str_repeat( ' , ?' , count( $values ) ) , 2 );
$stmt = $mysqli->prepare('SELECT id, datei, titel, format, kategorie, vk_titel FROM vorlagen
LEFT JOIN vorlagen_kategorie ON vorlagen_kategorie.vk_id = vorlagen.kategorie
WHERE kategorie IN (' . $s . ') ');
$typeDefinitions = str_repeat( 's' , count( $values ) );
$params = array( $typeDefinitions );
foreach ( $values as $k => $v ) {
${ 'varvar' . $k } = $v;
$params[] = &${ 'varvar' . $k };# provide references
}
call_user_func_array( array( $stmt , 'bind_param' ) , $params );
$stmt->execute();
$stmt->bind_result($id, $datei, $titel, $format, $kategorie, $vk_titel);
$stmt->store_result();
if($stmt->num_rows() > 0) {
while ($stmt->fetch()){
$Vorlagen[] = array(
'id' => $id,
'datei' => $datei,
'titel' => $titel,
'format' => $format,
'kategorie' => $kategorie,
'vk_titel' => $vk_titel
);
}
return $Vorlagen;
}
}
Die Ausgabe dann so
<?php $VorlagenBereiche = Vorlagen($mysqli, $kat); ?>
<?php if($VorlagenBereiche > 0) {?>
<?php foreach($VorlagenBereiche as $array){ ?>
<?php echo htmlspecialchars($array['datei']); ?><br>
<?php } }
?>
Das dazugehörige HTML
<form method="get">
<h3>Kategoriefilter</h3>
<fieldset>
<ul>
<li>
<label>
<input type="checkbox"
name="kat[]"
value="1" <?php echo (in_array("1",$kat) ?'checked="checked"':NULL) ?>>
User 1
</label>
</li>
<li>
<label>
<input type="checkbox"
name="kat[]"
value="2" <?php echo (in_array("2",$kat) ?'checked="checked"':NULL) ?>>
User 2
</label>
</li>
<li>
<label>
<input type="checkbox"
name="kat[]"
value="3" <?php echo (in_array("3",$kat) ?'checked="checked"':NULL) ?>>
User 3
</label>
</li>
<li>
<label>
<input type="checkbox"
name="kat[]"
value="4" <?php echo (in_array("4",$kat) ?'checked="checked"':NULL) ?>>
User 4
</label>
</li>
</ul>
</fieldset>
<button type="submit" name="action">Filter anwenden </button>
</form>
Was sagt ihr dazu?
Bis bald!
Meowsalot (Bernd)