簡體   English   中英

在數據庫中正確輸入復選框值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM