如何使用php在MySQL中插入部分列? 例如,我在sql中的列表是:code,Title,Cr,prerequisite,Addit,Grade I使用表来获取php中的数据,但是Addit和Grade是空的。 我希望用户插入它们,另一列用特定数据修复。
如何在Addit和Grade中插入?
我在这段代码中遇到的问题是插入数据是单独出现在行中而不是Addit和Grade中的当然名称。
我希望从学生那里定义课程名称大学学习天气A,B,C,D。并且,定义天气学生完成或不完成本课程。
enter code here
<html>
<head>
</head>
<body>
<form action="insert.php" name="frmAdd" method="post">
<table border='1' cellpadding='5' cellspacing='1' id='mytable'>
<tr align='center'>
<th>code</th>
<th>Title</th>
<th>Cr</th>
<th>prerequisite</th>
<th>Addi</th>
<th>grade</th>
</tr>
<?php
error_reporting(0);
$sql="select code,Title,Cr,prerequisite,Addit,Grade from study_p";
$result=mysql_query($sql);
while ($row = mysql_fetch_array($result))`
$code = $row['code'];
$Title = $row['Title'];
$cr = $row['Cr'];
$pre = $row['prerequisite'];
$addit= $row['Addit'];
$grade = $row['Grade'];
echo "<tr class='edit_tr' id='$id'>
<td class='edit_td'>
<span class='text' id='one_$ssn' >$code </span>
<input type='text' class='editbox_search' id='one_input_$ssn'
value='$code ' >
</td>
<td class='edit_td'>
<span class='text' id='two_$ssn' >$Title</span>
<input type='text' class='editbox_search' id='two_input_$ssn'
value='$Title' >
</td>
<td class='edit_td'>
<span class='text' id='three_$ssn' >$cr</span>
<input type='text' class='editbox_search' id='three_input_$ssn'
value='$cr' >
</td>
<td class='edit_td'>
<span class='text' id='three_$ssn' >$pre</span>
<input type='text' class='editbox_search' id='three_input_$ssn'
value='$pre' >
</td>
<td class='edit_td'>
<span class='text' id='three_$ssn' >$addit</span>
<select name='Addit' id='addit'>
<option value='A'>Completed</option>
<option value='B'>Not complate</option>
</select>
</td>
<td class='edit_td'>
<span class='text' id='three_$ssn' >$grade</span>
<select name='Grade' id='grade'>
<option value='A'>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>";
}
?>
<p><input type="submit" value="Add Link"></p>
</tr>
</table>
</div>
insert.php
enter code here
<?php
$usr = "";
$pwd = "";
$db = "adv";
$host = "localhost";
$cid = mysql_connect($host,$usr,$pwd);
if (!$cid) { echo("ERROR: " . mysql_error() . "\n"); }
?>
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$addit= $_POST['Addit'];
$grade = $_POST['Grade'];
$sql = " INSERT INTO study_p";
$sql = $sql . " (code,Title,Cr,prerequisite,Addit,Grade) VALUES ";
$sql = $sql . " ('','','','','$addit', '$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);
?>
SQL
enter code here
CREATE TABLE IF NOT EXISTS `study_p` (
`Study_pID` int(25) NOT NULL,
`code` varchar(25) DEFAULT NULL,
`Title` varchar(100) DEFAULT NULL,
`Cr` int(200) DEFAULT NULL,
`prerequisite` varchar(25) DEFAULT NULL,
`Addit` varchar(25) DEFAULT NULL,
`Grade` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
insert into studyplancourses values(2, 'UNS 100', 'University Study
Skills', 3, 'No Prerequisite', NULL, ''),
insert into studyplancourses values(3, 'ENG 100', 'English I', 3, 'ELI
Exit
Test or TOEFL 50', NULL, ''),
答案 0 :(得分:0)
您使用的是错误的sql命令。 INSERT命令将新记录插入表中。你想要的是更新现有的记录。您需要使用UPDATE命令来完成此任务。
您需要在update语句中使用WHERE子句来告诉mysql您要更新哪些行。
示例sql代码:
UPDATE study_p --which table to update
SET addit='...', grade='...' --which fields to update
WHERE code='...' --which record to update
请注意,我假设代码字段唯一标识记录。如果不是这种情况,那么您需要根据数据使用不同的where标准。