我更喜欢在PHP中而不是因为时间而在mysqli中。
如何使用php在MySQL中插入部分列?
例如,我在sql中的列表是:courseid,code,title,cr,prerequisite,std_id,status,grade。我使用table来获取php中的数据,但状态和等级是空的数据,因为我希望用户在他们之间查看每个学生从课程列表中完成的课程。 我希望用户将其与使用特定数据修复的其他列插入。 我在这段代码中遇到的问题是插入数据是新的记录,我想在两个列中插入状态和等级,当然是名称。
如何仅在状态和成绩中插入
enter code here
<?php
error_reporting(0);
include('config.php');
$sql="select * from studyplan";
$result=mysql_query($sql);
while ($row = mysql_fetch_array($result)){
$id=$row['courseid'];
$code=$row['code'];
$Title=$row['title'];
$cr=$row['cr'];
$pre=$row['prerequisite'];
$std=$row['std_id'];
$status=$row['status'];
$grade=$row['grade'];
echo "<tr class='edit_tr' id='$id'>
<td class='edit_td'>
<span class='text' id='one_$id' >$id </span>
</td>
<td class='edit_td'>
<span class='text' id='one_$id' >$code </span>
</td>
<td class='edit_td'>
<span class='text' id='two_$id' >$Title</span>
</td>
<td class='edit_td'>
<span class='text' id='three_$id' >$cr</span>
</td>
<td class='edit_td'>
<span class='text' id='three_$id' >$pre</span>
</td>
<td class='edit_td'>
<span class='text' id='three_$id' >$std</span>
</td>
<td class='edit_td'>
<span class='text' id='three_$id' >$status</span>
<select name='status' id='status'>
<option value=''>Completed</option>
<option value='B'>Not complate</option>
</select>
</td>
<td class='edit_td'>
<span class='text' id='three_$id' >$grade</span>
<select name='grade' id='grade'>
<option value=''>A</option>
<option value='B'>B</option>
<option value='C'>C</option>
<option value='D'>D</option>
<option value='F'>F</option>
</select>
</td>
</tr>";
}
echo '<input type="hidden" name="courseid" value="' . $id . '" />';
?>
<p align="center"><a href="year.html">Go Back</a> </p>
<p><input type="submit" value="Add Link"></p>
</tr>
</table>
</form>
</div>
</body>
</html>
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$status=$_POST['status'];
$grade=$_POST['grade'];
插入声明
$SQL = " INSERT INTO studyplan ";
$SQL = $SQL . " (status, grade) VALUES ";
$SQL = $SQL . " ('$status', '$grade') ";
$result = mysql_db_query($db,"$SQL",$cid);
if (!$result) {
echo("ERROR: " . mysql_error() . "\n$SQL\n"); }
echo ("New Link Added\n");
}
mysql_close($cid);
?>
我希望它像小图片
答案 0 :(得分:3)
您的表单没有名为courseid
的输入元素,这就是索引未定义的原因。在这种情况下,可能想要将其添加为隐藏元素,因为它似乎不是用户输入的值:
echo '<input type="hidden" name="courseid" value="' . $id . '" />';
有几点需要注意:
form
标记,这可能会导致意外行为,因为您似乎打算在该表中为每个记录创建一个单独的表单。表结构本身似乎也被破坏了(我看到多个</tr>
标签),所以没有人知道浏览器将如何解释这一点。请修复您的标记,否则您可能会遇到一些非常奇怪且难以诊断的错误。