[英]Entering checkbox values correctly in database
我有一個簡化的以下示例來說明我的問題。
我想從使用復選框的已登錄用戶獲得意見。 例如,將顯示一個動態列表,其中列出了各種水果,每種水果旁邊都有兩個復選框,表示“是,我喜歡”和“否,我不喜歡”。 用戶可以選中其中一個復選框,也可以根本不選中其中一個復選框。 它看起來像這樣:
[] [] 蘋果
[] [] 梨
[] [] 橙子
[提交]
然后需要將其提交到具有以下結構的MySQL數據庫。 這可能不是最簡單的設置,但是不幸的是,這是我目前可以使用的全部設置。 (意見是一個數字值,表示“是”或“否”)
ID | 用戶名| 水果 意見
我要怎么做呢?
根據評論。
假設“ Opinion
”字段是tinyint,其中0 =否和1 =是。
您說您是動態加載“水果”的,我不知道它是數組還是數據是否來自數據庫。 您可能需要更改代碼,我只是假設它是一個數組。 我們將創建一個包含所有結果的表格,並選擇是和否
<?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 />';
?>
上面的代碼塊還不完整,但是可以幫助您。 祝好運!
您可以在mysql中使用TINYINT數據類型來存儲布爾值,例如yes或no。 將值0表示為“否”,將值1表示為“是”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.