0
我已经写了一些php代码以表格的形式从mysql数据库中检索一些记录。该表有三列,其中前两个从数据库填满,第三个列是每行的下拉列表。现在我想从填充行中选择下拉列表,并将每行的信息存储在新数据库中。将行数组存储到mysql数据库中
请查看密码并回复您的建议。
<html>
<?
// data from the "recordentry.php";
$date = $_POST['date'];
$course = $_POST['course'];
$period = $_POST['period'];
$batch = $_POST['batch'];
$subject = $_POST['subject'];
$faculty = $_POST['faculty'];
?>
<p> Current Date&Time:<? echo $date ?></p>
<form enctype="multipart/form-data" name="f1" method="POST" ACTION="<?=$self ?>"">
<?
$db = "contact";
//mysql_connect(localhost,$_POST['username'],$_POST['pass']);
$link = mysql_connect("localhost", "root", "");
if (!$link)
die("Couldn't connect to MySQL");
mysql_select_db($db, $link) or die("Couldn't open $db: " . mysql_error());
$result = mysql_query("SELECT name,uic FROM student where batch='$batch' AND course='$course' order by name") or die("SELECT ERROR: " . mysql_error());
$num_rows = mysql_num_rows($result);
echo "<table border='1' align='center'><tr><th>Name</th><th>Unique Identification Code</th>
<th>Attendance</th></tr>";
while ($row = mysql_fetch_array($result))
{
//Display the results in different cells
echo "<tr><td align=center>" . $row['name'] . "</td><td align=center>" . $row['uic'] . "</td><td align=center><select name='attendance' style='background-color:#FFC'>
<option>Present
<option>Absent
</select></td></tr>";
$data[] = array(
'name' => $row['name'],
'uic' => $row['uic'],
'attendance' => $row['attendance']
);
}
echo "<tr><td><input type='submit' value='Submit' name='submit_button' />";
echo "</table>";
foreach ($data as $value)
{
$name = mysql_result($value['name']);
$uic = mysql_result($value['uic']);
$a_status = mysql_result($value['attendance']);
$db = "contact";
$link = mysql_connect("localhost", "root", "");
//$link = mysql_connect("localhost",$_POST['username'],$_POST['password']);
if (!$link)
die("Couldn't connect to MySQL");
mysql_select_db($db, $link) or die("Select Error: " . mysql_error());
$result = mysql_query("INSERT INTO attendance(date, course, period, batch, subject, faculty,name, uic, attendance) VALUES ('$date', '$course', '$period', '$batch', '$subject', '$faculty', '$name', '$uic', '$a_status')") or die("Insert Error: " . mysql_error());
mysql_close($link);
}
?>
</form>
</html>
上面的代码可以填充表中的所有从数据库中检索到的数据。但提交后它不能存储最后三个字段$ name,$ uic和$ attendance。所以,请帮助我。
你为什么要做mysql_result($ value ['name']),etc?这只是一个字符串值,不是一个mysql结果集 – kennypu
不使用'短标签' –
**警告!**您的代码包含[SQL注入漏洞](http://en.wikipedia.org/wiki/SQL_injection) - 您将未经过滤的未经验证的用户输入($ _POST)直接传递给SQL字符串。请[切换到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli),以便您可以使用[带有参数化查询的预准备语句](http: //en.wikipedia.org/wiki/Prepared_statement)。 – Charles