2013-03-05 11 views
0

我想從sql數據庫中選擇一些行。第一個用戶應該插入兩個變量,我可以選擇這些行。然後在這個頁面中有表將會更新這些行,但問題是當我選擇沒有輸入的列時我可以更新數據庫,但是當我想使用輸入變量時它會顯示錶但它不能更新它。我在哪裏犯了一個錯誤?如何從mysql中選擇不同的行並在單個頁面中更新它們

選擇DATABSE列,而不使用輸入:

<?php 
include 'mytool.php'; 
     // username and password sent from form 
    $myusername=$_SESSION["mys"]; 

    $host="localhost"; // Host name 
    $username='username'; // Mysql username 
    $password='password'; // Mysql password 
    $db_name="db"; // Database name 
    $tbl_name="test"; // Table name 

    // Connect to server and select database. 

    $link=mysql_connect($host,$username,$password)or die("cannot connect"); 
    $selected=mysql_select_db($db_name,$link)or die("cannot select DB"); 
    $sql="SELECT * FROM $tbl_name where classnum='106' and level='i4' "; 

    $result=mysql_query($sql,$link); 

    $count=mysql_num_rows($result);  

?> 

輸入變量:

<form id="searchform" method="post" dir="rtl" action=""> 
        level :<input name="level" type="text" id="level" /> 
        classnumber :<input name="classnum" type="text" id="classnum" /> 

          <input style="margin-top:10px; margin-left:120px; font-size: 14px; padding: 5px 14px;" type="submit" value="search" name="enter" /> 

       </form> 

       <?php 
        if(isset($_POST['enter'])){   
        $sql="SELECT * FROM $tbl_name where classnum='106' and level='i4' "; 

        $result=mysql_query($sql,$link); 

        $count=mysql_num_rows($result); 
        } 
       ?> 

更新表的代碼上面的代碼後:

<form name="form1" action="" method="POST"> 
           <center> 
            <div> 
             <div align="center" width = 615> 
              <table class="stats" cellspacing="0" width="615" border="1"> 
               <tr> 
                <th width="20" scope="col" >Id</th> 
                <th width="60" scope="col">Name</th> 
                <th width="60" scope="col">Last Name</th> 
                <th width="42" scope="col">Midterm</th> 
                <th width="54" scope="col">Class mark</th> 
                <th width="42" scope="col">Final Quiz</th> 
                <th width="54" scope="col">State</th> 
                <th width="54" scope="col">Details</th> 

               </tr> 
               <?php 
               while($rows=mysql_fetch_array($result)){ 
                $id[]=$rows['id']; 
               ?> 
               <tr> 
                <td align="center"> 
                <input name="id[]" type="text" id="id" value="<? echo $rows['id']; ?>" > 
                </td> 
                <td align="center"><input type="text" name="name[]" id="name" value= "<? echo $rows['name']; ?>" /></td> 
                <td align="center"><input type="text" name="lastname[]" id="lastname" value= "<? echo $rows['lastname']; ?>" /></td> 
                <td align="center"><input type="text" name="midmark[]" id="midmark" /></td> 
                <td align="center"><input type="text" name="classmark[]" id="classmark" /></td> 
                <td align="center"><input type="text" name="finalmark[]" id="finalmark" /></td> 
                <td align="center"><input type="text" name="state[]" id="state" /></td> 
                <td align="center"><input type="text" name="details[]" id="details" /></td> 

               </tr> 
               <?php 
               } 
               ?> 
              </table> 
             </div> 

           <input type="submit" value="ثبت" name="Submit" /> 
           </form> 

           <?php 
           // Check if button name "Submit" is active, do this 
           if(isset($_POST['Submit'])) 
           { 
            for($i=0;$i<$count;$i++) 
            { 
            $sql1=mysql_query(" UPDATE `".$tbl_name."` SET midmark='".$_REQUEST['midmark'][$i]."' , classmark='".$_REQUEST['classmark'][$i]."' , finalmark='".$_REQUEST['finalmark'][$i]."' , state='".$_REQUEST['state'][$i]."' , details='".$_REQUEST['details'][$i]."' WHERE id='".$_REQUEST['id'][$i]."' "); 
            $result1=mysql_query($sql1); 
            } 
           } 

            if($result1){ 
            header("location:results.php"); 
            } 
            mysql_close(); 
           ?> 

回答

1

比較這些行。

if(isset($_POST['Submit'])) 
      { 
       for($i=0;$i<$count;$i++) 
       { 
        **$sql1=mysql_query(" UPDATE `".$tbl_name."` SET midmark='".$_REQUEST['midmark'][$i]."' , classmark='".$_REQUEST['classmark'][$i]."' , finalmark='".$_REQUEST['finalmark'][$i]."' , state='".$_REQUEST['state'][$i]."' , details='".$_REQUEST['details'][$i]."' WHERE id='".$_REQUEST['id'][$i]."' "); 
        $result1=mysql_query($sql1);** 
       } 
      } 

與這些之一。

$sql1=" UPDATE `".$tbl_name."` SET midmark='".$_REQUEST['midmark'][$i]."' , classmark='".$_REQUEST['classmark'][$i]."' , finalmark='".$_REQUEST['finalmark'][$i]."' , state='".$_REQUEST['state'][$i]."' , details='".$_REQUEST['details'][$i]."' WHERE id='".$_REQUEST['id'][$i]."' "; 
$result1=mysql_query($sql1); 
+0

你能告訴我更具體嗎?哪一行? – 2013-03-05 10:10:41

+0

我很抱歉,但我通過比較這些行來混淆你的意思?第一個是mysql_query之間的區別。我刪除了這部分,但我仍然有問題。 – 2013-03-05 10:38:10

+0

嘗試爲錯誤添加error_reporting(E_ALL)。粘貼任何錯誤,如果發生。 – user991554 2013-03-05 10:51:12

相關問題