Meowsalot: Werte an eine Funktion übergeben - Funktionierende Version

Beitrag lesen

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)