以前に簡単な投票関数を作成しました。その関数は、PHP のポスト値がデータベースの内容と一致する場合に count + 1 するというものです。スクリーンショットは次のとおりです
<form method="post" action="check.php"> <input type="text" name="test"> <input type="hidden" name="action" value="send"> <input type="submit" name="Submit" value="提交"> </form> <?php$conn = mysql_connect("127.0.0.1:8889","root","root"); $action = $_POST['action']; if($action == 'send'){ $test = $_POST['test']; mysql_select_db("test3",$conn); $sql = ("update tll set count=count+1 where tl01='$test'");$result = mysql_query($sql,$conn); } ?>
<form method="post" action="check.php"> <input type="text" name="test[]"> <br /><input type="text" name="test[]"> <br /><input type="text" name="test[]"> <br /><input type="hidden" name="action" value="send"> <input type="submit" name="Submit" value="提交"> </form> <?php$conn = mysql_connect("127.0.0.1:8889","root","root"); $action = $_POST['action']; if($action == 'send'){ $test = $_POST['test[]']; mysql_select_db("test3",$conn); $sql = ("update tll set count=count+1 where tl01='$test'");$result = mysql_query($sql,$conn); } ?>
$_POST['test'] でこれらを取得でき、結果は配列になります
$_POST['test[]'] の値を取得できません。値が配列である $_POST['test'] を取得する必要があります。たとえば、
array('111', '222','333')
配列 Traverse をペアにしてデータベースに挿入します。等号を使用するだけではデータベースを取得できません:
tl01='$test'"
mysql にはそのようなステートメントがありません。Mysql は複数のステートメントを処理するために in オペレーションを使用する必要があります。 :
where tl01 in ( '111', '222', '333')
したがって、次のことを実現するには、配列を mysql で必要な文字列に変換する必要があります: ('111', '222', '333')関数
$_POST['test[]'] は値を取得できません。その値は配列です。たとえば、
array('111') です。 , '222','333 ')
次に、配列を走査してデータベースに挿入する必要があります。等号を使用するだけではデータベースを取得できません:
tl01='$test'"
Mysql にはありません。このようなステートメントは、MySQL で複数のステートメントを処理する必要があります。操作で使用します:
where tl01 in ('111', '222', '333')
したがって、配列を mysql で必要な文字列に変換する必要があります: (' 111'、'222'、'333') 、あなたの機能を実現するために
rree
$conn = mysql_connect("127.0.0.1:8889","root","root"); $action = $_POST['action']; if($action == 'send'){ $test = join("','", $_POST['test']); mysql_select_db("test3",$conn); $sql = ("update tll set count=count+1 where tl01 in ('$test')"); $result = mysql_query($sql,$conn); }
$conn = mysql_connect("127.0.0.1:8889","root","root"); $action = $_POST['action']; if($action == 'send'){ $test = join("','", $_POST['test']); mysql_select_db("test3",$conn); $sql = ("update tll set count=count+1 where tl01 in ('$test')"); $result = mysql_query($sql,$conn); }