2012-08-01 26 views
0
$as = mysql_query('SELECT u.id,u.username,c.score FROM user u, course c WHERE u.id = c.userid '); 
echo '<form action="score.php" method="post"><table>'; 
while($row = mysql_fetch_array($as) 
{ 
    $uid = $row['id']; 
    $username = $row['username']; 
    $score = $row['score']; 
    echo '<tr><td>'.$username.'</td> 
      <td><input type="hidden" name="uid" value='.$uid.'> 
       <input type="text" name="score" value='.$score.'> 
      </td> 
     </tr> 
} 
echo '<tr><td><input type="submit" name="submit" value="update"></td></tr>'; 
echo '</table></form>'; 
if($_SERVER['REQUEST_METHOD == 'POST'] 
{ 
    $uid = $_POST['uid']; 
    $score = $_POST['score']; 
    $sql = mysql('UPDATE user SET c.score = '.$score.' WHERE c.userid = '.$uid.''); 
} 

課程表環文本字段的值,並提交到數據庫

userid score 
4   45% 
3   30% 
5   80% 

它沒有更新表。我想呼應的變量,它是隻顯示最後一排,但我編輯的用戶3任何人都可以建議我哪裏錯了

+1

你究竟在問什麼?你的代碼問題在哪裏? – Fluffeh 2012-08-01 08:17:28

+0

注意:c.score是指已被分配了別名'c'的表格 – Waygood 2012-08-01 08:26:17

回答

1

你重複使用相同的輸入,所以它只會提交的最後一個

改變

echo '<tr><td>'.$username.'</td> 
     <td><input type="hidden" name="uid" value='.$uid.'> 
      <input type="text" name="score" value='.$score.'> 
     </td> 
    </tr> 

echo '<tr><td>'.$username.'</td> 
     <td><input type="hidden" name="uid['.$uid.']" value='.$uid.'> 
      <input type="text" name="score['.$uid.']" value='.$score.'> 
     </td> 
    </tr> 

ALSO

if(sizeof($_POST)>0) 
{ 
    if(is_array($_POST['uid'])) 
    { 
    while(list($key,$value)=each($_POST['uid']) 
    { 
     $sql="UPDATE user SET score='".mysql_real_escape_string($_POST['score'][$key])."' WHERE userid=".intval($value); 
     mysql_query($sql); 
    } 
    } 
} 
+0

謝謝你Waygood,它的工作 – ronquiq 2012-08-01 09:39:39

+0

嗨Waygood,這不起作用Iam能夠獲得所有uid和分數,但不更新爲表。你能幫我們在上面的代碼 – ronquiq 2012-08-02 18:47:03

+0

任何人都可以建議我我需要更新的分數和更新到數據庫 – ronquiq 2012-08-03 09:56:07

相關問題