これは私の最初のウェブサイトで、サーバー側の技術を利用しています。 それはまた、MYSQL
に沿って働いているPHP
に私の最初の掘り下げです。 私は働いていて、勉強しています。PHP - チェックボックスのフォームからMYSQLにデータを挿入する
私は小規模なウエディングドレスビジネスのための製品エントリーのデータベースのための基本的な管理ページを作成しました。
私は、管理者が新しいエントリをデータベースにアップロードするために使用できるフォームの機能に取り組んできました。
これらのエントリのいくつかが含まれます:私は悩み複数のチェックからデータを取得するに実行した
ドレス名[テキスト入力]
カラー可用性 [チェックボックスをオン]
をボックスをHTMLフォームからデータベースに追加します。チェックボックスで
選択肢は(はい/いいえ - 1/0)ブール値を表すべきではありません
ここではフォームの構造です:
<form action="inventory_list.php" enctype="multipart/form-data" name="myForm" id="myform" method="post">
<table width="90%" border="0" cellspacing="0" cellpadding="6">
<tr>
<td width="20%" align="right">Dress Name</td>
<td width="80%"><label>
<input name="Dress_name" type="text" id="Dress_name" size="64" />
</label>
</td>
</tr>
<tr>
<td align="right">Collections</td>
<td>
<label>
<select name="collections" id="collections">
<option value="other">Other</option>
<option value="hermione">Hermione</option>
<option value="jora">Jora</option>
<option value="manon">Manon</option>
</select>
</label></td>
</tr>
<tr>
<td align="right">Available Sizes</td>
<td>
<input type="checkbox" name="sizes[]" value="1" /> Sizes 2-6<br />
<input type="checkbox" name="sizes[]" value="1" /> Sizes 6-10 <br />
<input type="checkbox" name="sizes[]" value="1" /> Sizes 10-14<br />
<input type="checkbox" name="sizes[]" value="1" /> Sizes 14-18 <br />
<input type="checkbox" name="sizes[]" value="1" /> Sizes 18-22<br />
<input type="checkbox" name="sizes[]" value="1" /> Sizes 22-26 <br />
</td>
</tr>
<tr>
<td align="right">Dress Colours</td>
<td>
<input type="checkbox" name="colours[]" value="1" /> Pinks/Reds <br />
<input type="checkbox" name="colours[]" value="1" /> Blues/Greens <br />
<input type="checkbox" name="colours[]" value="1" /> Violet/Purple<br />
<input type="checkbox" name="colours[]" value="1" /> Yellow/Orange/Brown/Gold <br />
<input type="checkbox" name="colours[]" value="1" /> Black/White<br />
</td>
</tr>
<tr>
<td align="right">Product Image</td>
<td><label>
<input type="file" name="fileField" id="fileField" />
</label></td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="submit" name="button" id="button" value="Add This Item Now" />
</label></td>
</tr>
</table>
</form>
そして、ここでは、私が構築したPHPでデータベースにデータを提出するフォームを処理します。
<?php
if (isset($_POST['Dress_name'])) {
$dress_name = mysql_real_escape_string($_POST['Dress_name']);
$collections = mysql_real_escape_string($_POST['collections']);
$sizesArray = $_POST['sizes'];
$coloursArray = $_POST['colours'];
foreach ($sizesArray as $key => $value)
{
echo "Key = $key || Value = $value<br />";
}
foreach ($coloursArray as $ckey => $cvalue)
{
echo "Key = $ckey || Value = $cvalue<br />";
}
//See if that product name is an identical match to another product in the system
$sql = mysql_query("SELECT ID FROM names WHERE Dress='$dress_name' LIMIT 1");
$productMatch = mysql_num_rows($sql); // count the output amount
if ($productMatch > 0) {
echo 'Sorry you tried to place a duplicate "Product Name" into the system, <a href="inventory_list.php">click here</a>';
exit();
}
//Add this product into the database now
$sql = mysql_query("INSERT INTO names (Dress)
VALUES('$dress_name')") or die (mysql_error());
$pid = mysql_insert_id();
//Place image in the folder
$newname = "$pid.jpg";
move_uploaded_file($_FILES['fileField']['tmp_name'], "../inventory_images/$newname");
header("location: inventory_list.php");
exit();
}
?>
ご覧のとおり、データを配列に入れています。そして今、私はちょっとしたレンガの壁に当たっています。私はどこでも理にかなった答えを見つけられないようです。
ブール値をデータベーステーブルの正しい列に取得するにはどうすればよいですか?
あなたの時間を感謝してください!
HTMLフォームのチェックボックスはすべて同じ値を持っています。適切なサイズ? – andrewsi
MySQLの[論理型](http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html)は0と1のように見えます。値がtrueの場合は、列に1を格納します。値がfalseの場合(またはより単純に真でない場合)は、ゼロを格納します。 – buley
実際、MySQLがブーリアンを処理する方法のために、TINYINTを使用する方がはるかに優れています。 boolean型は奇妙なエラーを引き起こす可能性があります。単に上向きまたは下向きのフラグが必要な場合は、長さ1の整数を使用してください。 –