2016-03-18 9 views
1

に印刷され得る複数のチェックボックスをカチカチした後、私は、フォーラムを使用してチェックボックスグループを構築していると、すべてが作成されますが、私は以上のいずれかを選択AFTE私のユーザーのシステムに追加するとき、私は配列を取得スタンドアロンスクリプトで動作します私はスクリプトに追加したときに、生産スクリプトiは、アレイは、画面

<?php 
session_start(); 
include 'dbconfig.php'; 
$chkbox = array('option1', 'option2', 'option3'); 
if (isset($_POST['submit'])) 
{ 
$chkbox = $_POST['chkbox']; 

$chkNew = ""; 

foreach($chkbox as $chkNew1) 
    { 
     $chkNew .= $chkNew1 . ","; 
    } 


$query = "INSERT INTO demo_table_5 (MultipleValue) VALUES ('$chkNew')"; 

mysqli_query($conn,$query) or die(mysqli_error()); 

    } 

?> 
<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>PHP Insert/Store multiple selected checkbox values in MySQL database</title> 
</head> 

<body> 

<h2>PHP Insert multiple checkbox values in MySQL database</h2> 
<form method="post" action=""> 
<table> 
<tr> 
<td><input type="checkbox" name="chkbox[]" value="option1"><label>option1</label></td> 
<td><input type="checkbox" name="chkbox[]" value="option2"><label>option2</label></td> 
<td><input type="checkbox" name="chkbox[]" value="option3"><label>option3</label></td> 
</tr> 
<tr> 
<td colspan="4"><input type="submit" name="submit" Value="submit"></td> 
</tr> 
</table> 
</form> 

<?php 
$sql = "SELECT MultipleValue FROM demo_table_5"; 
$result = mysqli_query($conn, $sql); 

if ($result->num_rows > 0) { 
    echo "<table><tr><th>Interests</th></tr>"; 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "<tr><td>".$row["MultipleValue"]."</td></tr>"; 
    } 
    echo "</table>"; 
} else { 
    echo "0 results"; 
} 
$conn->close(); 
?> 

</body> 
</html> 

ので、私は自己

を形成レジスタの

<table> 
<tr> 
<td><input type="checkbox" name="chkbox[]" value="option1"><label>option1</label></td> 
<td><input type="checkbox" name="chkbox[]" value="option2"><label>option2</label></td> 
<td><input type="checkbox" name="chkbox[]" value="option3"><label>option3</label></td> 
</tr> 

を入れているリストは、以下のことになっている場所をエコーされ

はその後、私は登録ページ

$chkbox = array('option1', 'option2', 'option3'); 

の一番上にPHPブロックに次のように入れて、私は、データベース内の既存のUserInfoテーブルに列を追加し、それmultipleValue命名し、データベース

を更新するために、以下の行を追加しました
MultipleValue  = '".$_POST['chkbox']."', 

は、私はあなたがデシベルconcatenaに挿入されている

<?php 
$sql = "SELECT MultipleValue FROM user_info"; 
$result = mysqli_query($conn, $sql); 

if ($result->num_rows > 0) { 
echo "<table><tr><th>Interests</th></tr>"; 
// output data of each row 
while($row = $result->fetch_assoc()) { 
    echo "<tr><td>".$row["MultipleValue"]."</td></tr>"; 
} 
echo "</table>"; 
} else { 
echo "0 results"; 
} 
$conn->close(); 
?> 
+0

したがって、$ row ['MultipleValue']はおそらく配列そのものです。 var_dump()またはprint_r()を使用するとわかります。破():渡された無効な引数あなたは)(あなたの中の内側に別のループを配置する必要がある場合があります.... –

答えて

2

を含む1行を返しますが、これは$_POST['chkbox']がすべて確認のボックスの値を含む配列であることを意味しています。あなたは

MultipleValue  = '".$_POST['chkbox']."', 

のように、文字列として配列を使用しようとPHPでは、配列は、文字列"Array"に変換されます。あなたは、カンマ区切りのリストに変換するimplodeを使用する必要があります。

MultipleValue  = '".implode(',', $_POST['chkbox'])."', 

しかし、私はあなたのテーブルデザインを変更をお勧めします。表のセル内のカンマ区切りの値は、検索や更新が難しいため、リストを表すには悪い方法です。たとえば、インデックスを使用してリスト内の個々の値を検索することはできません。各ユーザー+オプションの組み合わせの行がある多対多テーブルを使用する必要があります。

+0

あなたの助けと援助のために素晴らしい仕事を大事にする:) –

0

プロフィールページに次のビットを追加しました"option1、option2、option3"のような文字列でなければなりません。あなたの入力はname="chkbox[]"を持っているので、SQLのSELECT文によって

Retreievingデータが連結

+0

それはまた、無効な引数エラー警告を取得イム罰金フン –

+0

を働いた生産のように別々のデータベースを維持するのが最善だろう/home/jktempla/public_html/registration3.php on line 6 –

+0

編集後に無効な引数が保存されなくなりました –

関連する問題