2012-11-05 50 views
0

插入多条基于搜索结果的记录时遇到问题。搜索字段工作正常。但问题是插入不起作用。此外,在插入记录之前,我必须根据自己的需要编辑“等级”字段。这是我的代码。如何根据搜索结果插入多条记录

<?php 
require_once('../../_includes/initialize.php'); 
?> 


<html><br /> 

<form action="search.php" method="POST"> 
<?php 
echo "<b><center>Search Results</center></b><br><br>"; 

if (isset($_POST['search_name'])) { 

    $search_name = $_POST['search_name']; 
if (!empty($search_name)) { 

$query="SELECT * FROM students WHERE course like       '%".mysql_real_escape_string($search_name)."%'"; 

$result=mysql_query($query); 
$num=mysql_num_rows($result); 

if (($num) >=1) { 
//echo 'Found.'; 

$i=0; 
while ($i < $num) { 
$id=mysql_result($result,$i,"id"); 
$f_name=mysql_result($result,$i,"f_name"); 
$g=mysql_result($result,$i,"dump"); 

?> 

<input name="id" type="text" value="<?php echo @$id; ?>" size="40" /> 
<input name="f_name" type="text" value="<?php echo @$f_name; ?>" size="40" /> 
<input name="a" type="text" value="<?php echo $g; ?>" size="40" /> 

<br /> 

<?php 
$i++; 
} 

} else { 

echo 'No results found.'; 
} 
} 
} 

?> 
<?php 
if (isset($_POST['Submit_Grade'])) { 

$query = "INSERT INTO samplestudgrade (id, name, grade) VALUES ('".$_POST["id"]."','".$_POST["f_name"]."','".$_POST["a"]."')"; 
      $query_run = mysql_query($query); 

      } 

?> 

<input name="search_name" type="text" value="search..." /> 
<input type="submit" value="Search"/> 
<input type="submit" name="Submit_Grade" value="submit" /> 
</form> 
</html> 

回答

0

试试这个代码:

编辑:

<html><br /> 

    <form action="search.php" method="POST"> 
     <?php 
     echo "<b><center>Search Results</center></b><br><br>"; 

     if (isset($_POST['search_name'])) { 

      $search_name = $_POST['search_name']; 
      if (!empty($search_name)) { 

       $query = "SELECT * FROM students WHERE course like '%" . mysql_real_escape_string($search_name) . "%'"; 

       $result = mysql_query($query); 
       $num = mysql_num_rows($result); 

       if (($num) >= 1) { 
        //echo 'Found.'; 

        $i = 0; 
        while ($i < $num) { 
         $id = mysql_result($result, $i, "id"); 
         $f_name = mysql_result($result, $i, "f_name"); 
         $g = mysql_result($result, $i, "dump"); 
         ?> 

         <input name="id[]" type="text" value="<?php echo @$id; ?>" size="40" /> 
         <input name="f_name[]" type="text" value="<?php echo @$f_name; ?>" size="40" /> 
         <input name="a[]" type="text" value="<?php echo $g; ?>" size="40" /> 

         <br /> 

         <?php 
         $i++; 
        } 
       } else { 

        echo 'No results found.'; 
       } 
      } 
     } 
     ?> 
     <?php 
     if (isset($_POST['Submit_Grade'])) { 
      $ctr = 0; 
      foreach ($_POST['id'] as $id) : 
       if ($_POST["a"] >= 75) { 
        $status = "Passed"; 
       } elseif ($_POST["a"] >= 73) { 
        $status = "Conditional"; 
       } elseif ($_POST["a"] >= 70) { 
        $status = "Failed"; 
       } else { 
        $status = "Incomplete"; 
       } 
       $query = "INSERT INTO samplestudgrade (id, name, grade, status) VALUES ('" . $id . "','" . $_POST["f_name"][$ctr] . "','" . $_POST["a"][$ctr] . "','" . $status . "')"; 
       $query_run = mysql_query($query); 
       $ctr++; 
      endforeach; 
     } 
     ?> 

     <input name="search_name" type="text" value="search..." /> 
     <input type="submit" value="Search"/> 
     <input type="submit" name="Submit_Grade" value="submit" /> 
    </form> 
</html> 
+0

太感谢你了。它现在效果很好。 – Caspersky12

+0

顺便说一句,如果I级输入的数据少于74-73,我会如何添加,如果0输入标记为不完整,则72-70标记为“失败”时它将标记“有条件”状态。 – Caspersky12

+0

这将是另一个问题。如果您发现我的答案正确无误,请随时查看答案,也许可以加快速度。干杯! – Lao