我今年正在做我的最后一个项目。我需要将数据与月和日一起输入数据库。但是,从另一个数据库中调用月和日。一些代码不起作用。顺便说一下我使用php和mysql。
共有3页。
这是第一页:pilih.php
<html>
<form action="pilih_process.php" method="POST">
<table>
<tr>
<td>Month:</td>
<td><select name="month"/>
<option value="January">January</option>
<option value="February">February</option>
<option value="March">March</option>
</select>
</td>
</tr>
<tr>
<td>Day:</td>
<td><select name="day"/>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</td>
</tr>
<tr>
<td>Group:</td>
<td><select name="group"/>
<option>1</option>
<option>2</option>
</select>
</td>
</tr>
<tr>
<td><input type="submit" name="submit" value="submit"/></td>
</tr>
</table>
</form>
</html>
这是第二页:pilih_process.php
<html>
<?php
include ('connect_database.php')
$query1 = mysql_query("SELECT Student_ID, Student_Name FROM student_details WHERE Group_ID=$group");
$month = $_POST['month'];
$day = $_POST['day'];
$group = $_POST['group'];
echo "<table>";
echo "<tr>";
echo "<td>Month: $month</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Day: $day</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Group: $group</td>";
echo "</tr>";
echo "</table>";
echo "<form action='pilih_process2.php' method='POST'>";
echo "<table>";
echo "<tr>";
echo "<th>ID</th>";
echo "<th>Name</th>";
echo "</tr>";
while ($row = mysql_fetch_array($query1) )
{
echo "<tr>";
echo '<td>' . $row['Student_ID'] . '</td>';
echo '<td>' . $row['Student_Name']. '</td>';
echo "<td><input type='checkbox' name='status[]' value='Expert'/></td>";
echo "<td><input type='checkbox' name='status[]' value='Intermediate'/></td>";
echo "<td><input type='checkbox' name='status[]' value='Amature'/></td>";
echo "<td><input type='checkbox' name='status[]' value='Noob'/></td>";
echo "</tr>";
}
echo "<tr>";
echo "<td><input type='submit' name='submit' value='Submit'/></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
?>
</html>
这是第三页:pilih_process2.php
<html>
<?php
include ('connect_database.php');
$month = $_SESSION['month']; //From First page: pilih.php
$day = $_SESSION["day"]; //From First page: pilih.php
$student_id = $_SESSION["Student_ID"]; //From Second page: pilih_process.php
$student_name = $_SESSION["Student_Name"]; //From Second page: pilih_process.php
$group = $_POST['group']; //From First page: pilih.php
$status = $_POST['status']; //From Second page: pilih_process.php
mysql_query("INSERT into mencuba(Month_ID, Day_ID, Student_ID, Student_Name, Group_ID, Status) VALUES('$month', '$day', '$student_id', '$student_name', '$group', '$status')");
/*
$status_test = $_GET['status']; //I DONT KNOW WHETHER THIS ARRAY METHOD IS CORRECT
for($i=0; $i < count($checked); $i++){
echo "Selected " . $checked[$i] . "<br/>";
}
*/
?>
这是怎么回事:
从第一页开始,用户必须选择哪个月,日和组并提交。
在第二页上,它显示基于哪个组的学生ID,学生姓名,组和状态。
对于状态,用户必须选择一个并提交。
在第三页上。数据Month_ID,Day_ID,Student_ID,Student_Name,Group_ID和Status将被插入数据库中。
问题:
插入数据时,只将Month_ID,Day_ID,Group_ID和Status插入数据库。我无法调用变量Student_ID和变量Student_Name。
它只插入一个数据。如果要输入100个数据显然我必须使用我不确定如何使用的数组。
我们教授简单的PHP和MySql
答案 0 :(得分:1)
在启动查询之前,先在查询中放置$group
。您必须先启动它,然后将其置于查询状态。
喜欢这样:
$month = $_POST['month'];
$day = $_POST['day'];
$group = $_POST['group'];
$query1 = mysql_query("SELECT
Student_ID, Student_Name
FROM student_details
WHERE Group_ID=$group");
关于status
事
您必须使用select
而不是checkbox
,如果您想为表格中的每个字段提供多个选择,请使用另一个name
属性。
答案 1 :(得分:1)
正如其他答案所述,这里有一些事情发生。
mysql_real_escape_string
中换行,所以看起来你试过了。 $group = mysql_real_escape_string($_POST['group']);
至于主要问题:
您需要将第一个表单参数传递给第二个表单。把它们放在桌子上就不会保存它们。将它们作为隐藏的表单值传递
echo "<input type="hidden" name="group" value="'.$group.'" />";
除此之外,如果您希望查询有多个结果(即:来自一个组的多个人),那么您需要再次更改逻辑,因为每个人都将覆盖之前的表单值。