需要代码进入不同用户的列值特定行

问题描述:

嗨,我创建MySQL中的表名为结果这将有4个领域,即需要代码进入不同用户的列值特定行

结果

name , 
subject1_score , 
sub2_score , 
sub3_score 

现在我正在做的是给3位老师分别输入各自的科目分数。例如,* teacher_1 *将会看到所有的卷号,并将被要求放subject1_score然后提交。其他两名教师也是如此。因此,我必须在phpmysql中使用哪些代码才能为特定学生排列值。

我不确定什么名字代表(学生或老师),我假设有3个科目,每个老师必须提交相应的分数,并且您希望将所有数据设置为一行,如( roll_num,姓名,学科1分,学科2分,学科3分)。 如果这是真的,那么这应该适合你:

if (isset("name") && isset("roll_number)){ 

$name = $_GET["name"]; 
$roll_no = $_GET["roll_number"]; 

if (isset("subject1_score")){ 
$subject = "subject1_score"; 
$score = $_GET['subject1_score']; 
}elseif(isset("subject2_score")){ 
$subject = "subject2_score"; 
$score = $_GET['subject2_score']; 
}elseif(isset("subject3_score")){ 
$subject = "subject3_score"; 
$score = $_GET['subject3_score']; 
}else{ 
$subject = ""; 
$score = ""; 
} 


$con = mysql_connect("host","username","password"); 
if (!$con) die('Could not connect: ' . mysql_error()); 
mysql_select_db($con, dbname); 

$query1 = "SELECT * FROM result WHERE roll_number='$roll_no'"; 
$result1 = mysql_query($query1) or die(mysql_error()); 
$num = mysql_num_rows($result); 

if($num == 0 && $subject != ""){ 
$query2 = "INSERT INTO result(roll_number, name, $subject) VALUES('$roll_no', '$name', '$score')"; 
mysql_query($query2) or die(mysql_error()); 
}elseif($num > 0 && $subject != ""){ 
$query2 = "UPDATE result SET $subject='$score' WHERE roll_number='$roll_no'" 
}else{ 
echo "subject score is empty"; 
} 
mysql_close($con); 

有两种方法,首先你要用学生姓名/ roll_nos填充表格,或者把它留空。但请保留一个字段,因为它们是唯一的,并可以作为主键。

在第一种方法中,您只需编辑已输入标记的特定卷号的特定行。为此,您只需运行mysql的更新查询,如

mysql_query("UPDATE table_name SET subject1_score='$subject!_score' WHERE roll_no='$roll_no'"); 

等等。在这里你必须通过PHP获取表单中的no和标记。

在第二种方法中,你必须先检查卷没有通过运行SELECT查询,并通过`mysql_num_rows'计数没有行的数据库表存在。如果行数大于0,则必须通过运行更新查询来更新roll_no。如果返回的行数为0,则需要通过运行插入查询来插入日期。

希望这会有所帮助!

+0

thanx很多兄弟。我会尽力回复你 – dhruvan 2013-02-22 14:31:25