2012-12-13 25 views
0

This is the page that uses this code.我有一個php頁面,它從包含電子郵件地址的dbms中提取數據。這工作。然後它顯示電子郵件地址和其他存儲的dbms數據。然後用戶可以選擇將「X」放入稱爲emailselected的php頁面中設計的字段中。這也適用。我現在想要根據存儲的電子郵件地址用新字段更新dbms,但更新語句不起作用。請幫忙。該代碼是這裏列出:基於用戶輸入和現有的dbms數據更新dbms記錄(2)

include("db.php"); 
if (isset($_POST['ssubmit'])) 
    { 
    $id_save = $test['id']; 
    $emailselected_save = $_POST['emailselected']; 
    $email_save = $test['email']; 

    $rc = mysql_query("UPDATE emails SET selected='$emailselected_save' WHERE id = 'id'"); 
if (!$result) { 
    die('What?: ' . mysql_error()); 
} 
$num = mysql_affected_rows(); 
printf("Updated %d rows\n", $num); 

    echo "<input type='button' value='Email(s) sent' onclick='goBack()' />"; 
mysql_close($conn); 
    } else {echo "hello";} 
?> 
<form method='post'> 
    <div id='headd'> 
    <br /> 
    <input type='button' value='Close this window without Sending' onclick='goBack()' /> 
    <input type='submit' name='ssubmit' id='ssubmit' value='Send Email Now!!!' /> 
    <p>Place an "X" in the emails you wish to send!!!</p> 
    </div> 
     <br /><br/> 

<?php 
    include("db.php"); 
    $result = mysql_query("SELECT * FROM emails WHERE unsubscribe != 'x' ORDER BY lastname ASC"); 
      while($test = mysql_fetch_array($result)) 
      { 
?> 
    <table border='1' width='78%'> 
    <tr align=\"left\"> 
     <td width='4%'><font color='black'><input type='text' size='1' id='emailselected' name='emailselected' /></font></td> 
     <td width='15%'><font color='black'><?php echo $test['lastname']?></font></td> 
     <td width='15%'><font color='black'><?php echo $test['firstname']?></font></td> 
     <td width='40%'><font color='black'><?php echo $test['email']?></font></td> 
     <td width='4%'><font color='black'><?php echo $test['id']?></font></td> 
    </tr> 
</table> 
<?php 
      } 
?> 
</form> 
+0

不要使用mysql_ *,因爲它已被棄用使用mysqli_ *或PDO來代替 –

回答

0

錯誤是:

$rc = mysql_query("UPDATE emails SET selected='$emailselected_save' WHERE id = 'id'"); 

應該是:

$rc = mysql_query("UPDATE emails SET selected='$emailselected_save' WHERE id = '$id_save'"); 

您的代碼很容易受到SQL注入。所以你應該過濾你的數據。但我只需切換到PDO並使用準備好的語句。

http://php.net/manual/en/pdo.prepare.php

+0

它仍然無法正常工作。我有一個消息,如果它的成功和一個printr無論哪種方式。他們不顯示任何方式。這讓我覺得它沒有把它提交給ssubmit聲明。你有沒有想過 –

+0

'var_dump()'看到你的應用程序流,或者你可以使用'xdebug'來做同樣的事情? –

+0

抱歉,我對某些東西很懶。 var_dump()和xdebug是其中的兩個。你能否更詳細地解釋一下。謝謝....大衛 –