2016-12-06 3 views
-1

Ich habe die folgenden Kontrollkästchen (Auszug aus einem Formular):Einfügen mehrerer Kontrollkästchen, um MySQL PHP: nur ein Eintrag hinzugefügt

<input type="checkbox" name="Cat_Ref_Array[]" value="2" /> 
<label for="Cat_Ref_Array[]">Category 2</label> 

<input type="checkbox" name="Cat_Ref_Array[]" value="3" /> 
<label for="Cat_Ref_Array[]">Category 3</label> 

<input type="checkbox" name="Cat_Ref_Array[]" value="5" /> 
<label for="Cat_Ref_Array[]">Category 5</label> 

<input type="checkbox" name="Cat_Ref_Array[]" value="7" /> 
<label for="Cat_Ref_Array[]">Category 7</label> 

<input type="checkbox" name="Cat_Ref_Array[]" value="13" /> 
<label for="Cat_Ref_Array[]">Category 13</label> 

Und die folgende PHP es in eine Tabelle einzufügen:

<?php 

$chkbox = $_POST['Cat_Ref_Array']; 
$i = 0; 

while ($i < sizeof($chkbox)) { 
    $insertSQL = sprintf(
     "INSERT INTO table (Data, `Call`, Cat_Ref) VALUES (%s, %s, %s)", 
     GetSQLValueString($_POST['Data'], "text"), 
     GetSQLValueString($_POST['Call'], "text"), 
     GetSQLValueString($chkbox[$i], "int") 
    ); 
    $result = mysql_query($insertSQL, $site) or die(mysql_error()); 
    $i++; 
} 

Aber es fügt nur einen Datensatz jedes Mal ein, egal wie viele Kontrollkästchen aktiviert sind?

Wie kommt es?

+0

*** Bitte [mehr verwenden 'mysql_ *' Funktionen] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). * ** [Diese Erweiterungen] (http://php.net/manual/en/migration70.removed-exts-sapis.php) wurden in PHP 7 entfernt. Erfahren Sie mehr über [prepared] (http: //en.wikipedia. org/wiki/Prepared_statement) Anweisungen für [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) und [MySQLi] (http://php.net/manual/en/mysqli .quickstart.prepared-statements.php) und erwäge die Verwendung von PDO, [es ist wirklich ziemlich einfach] (http://jayblanchard.net/demystifying_php_pdo.html). –

+0

Können Sie das Array in '$ chkbox' anzeigen. Ich glaube nicht, dass du das bekommst, was du dort erwartest. –

Antwort

0

Warum nicht nur ein einfaches für jeden?

$chkbox = $_POST['Cat_Ref_Array']; 

foreach($chkbox as $value){ 
.... 
} 
+0

Danke + Tim. Anfangs wollte ich einfach nicht "Insert ..." -Funktionen wiederholen, aber das funktioniert einfach! – user1259798

Verwandte Themen