![](/img/trans.png)
[英]How do i create a site that uses menus/radio buttons to extract data from MySQL Database?
[英]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'
的字段中,该字段的类型为INT
或ENUM
。
BOOL: https://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html的别名(它是 TINYINT 的别名)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.