我简化了以下示例来说明我的问题。
我想使用复选框向登录用户发表意见。 例如,将显示一个动态列表,列出各种水果,每种水果旁边有两个复选框,意思是“是的,我喜欢这个”和“不,我不喜欢这个”。用户可以选中任一复选框,或者根本不选中其中一个复选框。 看起来有点像这样:
[] [] Apple
[] []梨
[] []橙色
[提交]
然后需要将其提交到MySQL数据库,具有以下结构。 它可能不是最简单的设置,但不幸的是,这是我现在可以使用的全部内容。 (意见是数字值,代表“是”或“否”)
ID |用户ID |水果|看来
我将如何制作此产品?
答案 0 :(得分:1)
根据评论。
假设字段Opinion
是一个tinyint,其中0 = NO,1 = YES。
你说你动态加载你的'水果',我不知道它是一个数组还是数据来自数据库。您可能需要将代码更改为,我只是假设它是一个数组。我们将创建一个包含所有结果的表单以及选项yes和no
<?php
$fruits = array( 'apple', 'pear', 'orange' );
echo '<form ...>';
foreach( $fruits as $fruit ) {
echo '<p>Do you like ' . $fruit . '</p>';
echo '<input type="radio" name="fruits[' . $fruit . ']" value="0" /> No ';
echo '<input type="radio" name="fruits[' . $fruit . ']" value="1" /> Yes ';
}
echo '</form>';
?>
您需要添加更多代码才能使其正常运行。
接下来,我们需要处理表单。
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
if($_SERVER['REQUEST_METHOD'] == 'POST' ) {
foreach( $_POST['fruits'] as $fruit => $opinion) {
$stmt = $mysqli->prepare("INSERT INTO tableName (UserID, Fruit, Opinion) VALUES (?, ?, ?)");
$stmt->bind_param('isi', $userID, $fruit, $opinion);
$stmt->execute();
$stmt->close();
}
}
?>
我认为你知道如何从数据库中调用数据来显示它。根据意见,您可以使用以下内容:
<?php
$opinion = ( $row['opinion'] == 1 ) 'yes' : 'no';
echo 'User: ' . $row['UserID'] . '<br />';
echo 'Fruit: ' . $row['fruit'] . '<br />';
echo 'Opinion: ' . $opinion . '<br />';
?>
上面的代码块并不完整,但它会帮助您。祝你好运!
答案 1 :(得分:0)
您可以在mysql中使用TINYINT数据类型来存储布尔值,例如是或否。使用值0表示“否”,值1表示“是”。