繁体   English   中英

如何一次将多个单选按钮存储到 MySQL 中?

[英]How do I store several radio buttons at once into MySQL?

这是我的 PHP 脚本,其中列出了我的所有标签(来自 MySQL 数据库),每行有两个单选按钮(启用和禁用)。 如何将更改(如果启用或禁用某些内容)保存到 MySQL 数据库中? 无论我启用还是禁用一本书,它都应该保存值 1 或 2。

<?php
$result = mysqli_query($mysqli,"SELECT * FROM tags ORDER BY id ASC");
while($row = mysqli_fetch_array($result)) {
if($row['enabled'] == 1) {
echo '<input type="radio" name="' . $row['id'] . '" value="1" checked>Enable' . 
     '<input type="radio" name="' . $row['id'] . '" value="2">Disable ';
} else {
echo '<input type="radio" name="' . $row['id'] . '" value="1">Enable' .  
     '<input type="radio" name="' . $row['id'] . '" value="2" checked>Disable ';
}
echo $row['tagname'] . "<br />";
}
?>

谢谢。 我希望你能理解我的问题:-)

我将进一步解释/* */中引用的代码,因为我是 go:

<?php

/* ESTABLISH YOUR CONNECTION */

$mysqli=mysqli_connect("Host","Username","Password","Database"); /* JUST REPLACE THE NECESSARY HOST, USERNAME, PASSWORD AND DATABASE */

if(mysqli_connect_errno()){

echo "Error".mysqli_connect_error();
}

if(isset($_POST['submit'])){ /* IF FORM HAS BEEN SUBMITTED */

/* STORE THE SUBMITTED POST DATA */

$counter=$_POST['hiddencounter'];
$radio=$_POST['radio'];
$id=$_POST['id'];

for($x=0;$x<=$counter;$x++){ /* FOR LOOP BASED ON THE HIDDEN COUNTER */

mysqli_query($mysqli,"UPDATE tags SET enabled='$radio[$x]' WHERE id='$id[$x]'"); /* UPDATE THE enabled COLUMN WITH THE CORRESPONDING SUBMITTED RADION BUTTON */

} /* END OF FOR LOOP */

} /* END OF ISSET */

$result = mysqli_query($mysqli,"SELECT * FROM tags ORDER BY id ASC");

echo "<form action='' method='POST'>"; /* SUBMIT ON PAGE ITSELF */

$counter=0; /* WILL SET AS YOUR COUNTER FOR ARRAY PURPOSES */

while($row = mysqli_fetch_array($result)) {

if($row['enabled'] == 1) {
echo "<input type='radio' name='radio[$counter]' value='1' checked> Enable <input type='radio' name='radio[$counter]' value='2'> Disable "; /* STORE THE RADIO BUTTON'S VALUE IN AN ARRAY */
}

else {
echo "<input type='radio' name='radio[$counter]' value='1'> Enable <input type='radio' name='radio[$counter]' value='2' checked> Disable "; /* STORE THE RADIO BUTTON'S VALUE IN AN ARRAY */
}

echo "<input type='hidden' name='id[$counter]' value='$row[id]'>"; /* STORE THE ID IN AN ARRAY */

$counter=$counter+1;
echo $row['tagname'] . "<br />";
} /* END OF WHILE LOOP */

echo "<input type='hidden' name='hiddencounter' value='$counter'>"; /* STORE THE TOTAL COUNT IN THE LOOP */
echo "<input type='submit' name='submit' value='Update'>";
echo "</form>";

?>

您不应该保存单选按钮,而是 state。 如果 state 可以启用或禁用(或:启用,是或否),那么您只需将其存储在名为'enabled'的字段中,该字段属于 boolean 类型,在 Z62A004B45946BB937541A 中为BOOL

如果您还想保留存储其他状态的可能性,则可以将其存储在名为'state'的字段中,该字段的类型为INTENUM

BOOL: https://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html的别名(它是 TINYINT 的别名)

枚举: https://dev.mysql.com/doc/refman/5.0/en/enum.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM