我希望使用数据作为单选按钮自动填充php / html表单,以允许用户从他自己的记录中进行选择,并将他们的选择转换为另一种形式的可重用变量。
我从数据库中获得了登录名和密码正常工作,并且可以使用相应的$variable
user_id
然后我陷入了正确的查询和html构造。我看了各种例子都无济于事。
我的表格如下
tableid Title Author published colour user_id ref_id
==================================================================
1 how to ski pete 2014 red 2 1
2 how to cook jones 2015 white 4 2
3 how to drive smith 2012 yellow 2 3
4 how to cook jones 2015 white 4 2
5 how to drive smith 2012 yellow 4 3
我已经创建了用于提取数据的基本查询,但我很难将其显示为单个选择的单选按钮。
$queryOrders2="SELECT * FROM books WHERE user_id=$user_id";
$resultOrders2=mysql_query($queryOrders2);
$row = mysql_fetch_assoc($resultOrders2);
print_r(mysql_fetch_assoc($resultOrders2));
$Title = $row["Title"];
$Author = $row["Author"];
$published = $row["published"];
$colour = $row["colour"];`
然后我尝试转换为单选按钮以允许单个记录选择
<form action="display-selections.php" method="POST">
<input class="radio_style" id="Title" name="Title" type="radio" value="Title">
<input class="radio_style" id="Author" name="Author" type="radio" value="Author">
<input class="radio_style" id="published" name="published" type="radio" value="published">
<input class="radio_style" id="user_id" name="user_id" type="radio" value="user_id">
<input name="submitted" type="submit" value="Submit">
</form>
但代码无效,因为我对PHP很新,还在学习。我很难过,而且有太多的例子似乎都不尽如人意。
我尝试了很多不同的语法,但我很难理解如何允许用户以可选择的格式从mysql中选择数据。
任何正确方向的帮助或推动都会很棒。
答案 0 :(得分:0)
首先:不要使用MYSQL_ *函数,不推荐使用它们。请改用PDO或MySQLi。请参阅:Why shouldn't I use mysql_* functions in PHP?
现在,一个有效的例子:
HTML表单,用于选择要显示的列:
<!DOCTYPE html>
<html>
<head>
<title>Form example</title>
</head>
<body>
<form action="process.php" method="post">
Choose columns (no selection = all columns) :
<input type="checkbox" name="title" value="1"> Title
<input type="checkbox" name="author" value="1"> Author
<input type="checkbox" name="published" value="1"> Published
<input type="checkbox" name="user_id" value="1"> User ID
<input type="submit" value="submit">
</form>
</body>
</html>
PHP文件的开头处理复选框并相应地构建请求:
<?php
$fields = array();
foreach($_POST as $label => $value) {
array_push($fields, "`" . $label . "`");
}
if(count($fields) > 0) {
$field_list = implode(",", $fields);
} else {
$field_list = "*";
}
echo $query = "SELECT " . $field_list . " FROM `table` WHERE condition";
//send query, retrieve and show data :)
?>