2012-11-21 75 views
1

我搜索這個網站的解決方案,但沒有結果。 我卡在下面的問題,我的代碼給未知科拉姆在「where子句」錯誤「member_id」。從未聽說過..所以我現在有點困惑。未知列'member_id「where子句」

這是我的代碼:

<?php 
require("db.php"); 
$id = $_REQUEST['member_id']; 

$result = mysql_query("SELECT * FROM members WHERE member_id = '$id'"); 
$test = mysql_fetch_array($result); 
if (!$result) 
    { 
    die("Error: Data not found.."); 
    } 
$admin=$test['admin'] ; 
$firstname=$test['firstname'] ; 
$lastname=$test['lastname'] ; 
$mail= $test['mail'] ; 
$login=$test['login'] ; 
$passwd=$test['passwd'] ; 

if(isset($_POST['save'])) 
{ 
$admin_save = $_POST['admin']; 
$firstname_save = $_POST['firstname']; 
$lastname_save = $_POST['lastname']; 
$mail_save = $_POST['mail']; 
$login_save = $_POST['login']; 
$passwd_save = md5($_POST['password']); 

mysql_query("UPDATE lijst SET admin ='$admin_save',firstname ='$firstname_save',lastname ='$lastname_save', mail ='$mail_save', login ='$login_save', 
    passwd ='$passwd_save' WHERE member_id = '$id'") 
      or die(mysql_error()); 
echo "Saved!"; 

header("Location: main.php"); 
} 
mysql_close($conn); 
?> 

形式:

<form method="post"> 
<table> 
    <tr> 
     <td>Admin</td> 
     <td><input type="text" name="admin" class="text w_20" value="<?php echo $admin ?>"/></td> 
    </tr> 
    <tr> 
     <td>Voornaam</td> 
     <td><input type="text" name="firstname" class="text w_20" value="<?php echo $firstname ?>"/></td> 
    </tr> 
    <tr> 
     <td>Achternaam</td> 
     <td><input type="text" name="lastname" class="text w_20" value="<?php echo $lastname ?>"/></td> 
    </tr> 
    <tr> 
     <td>E-mail</td> 
     <td><input type="text" name="mail" class="text w_20" value="<?php echo $mail ?>"/></td> 
    </tr> 
    <tr> 
     <td>Gebruikersnaam</td> 
     <td><input type="text" name="login" class="text w_20" value="<?php echo $login ?>"/></td> 
    </tr> 
    <tr> 
     <td>Password</td> 
     <td><input type="text" name="passwd" class="text w_20" value="<?php echo $passwd ?>"/></td> 
    </tr> 
    <tr> 
     <td>&nbsp;</td> 
     <td><input type="submit" name="save" value="update" /></td> 
    </tr> 
</table> 
</form> 
+0

有啥你的成員表的結構? –

回答

2

錯誤是說沒有在數據庫表lijst沒有現場member_id。添加字段或從WHERE子句中刪除條件。

鑑於您剛剛發佈的SQL,你的表稱爲memberslijst。因此更改查詢:

UPDATE members ...... 

編輯:你的MD5的問題是,因爲你的HTML輸入被命名爲passwd有你的POST陣列中針對password

$passwd_save = md5($_POST['password']); 

更改爲:

$passwd_save = md5($_POST['passwd']); 

最後,您的查詢容易受到SQL注入的影響。作爲快速修復,請通過mysql_real_escape_string()運行您的用戶輸入。或者甚至更好,切換到現代MySQL API(如PDO),並使用參數化查詢。

+0

這是我的成員表: CREATE TABLE'members'( 'member_id' INT(11)無符號NOT NULL的auto_increment, 'admin' VARCHAR(15)NOT NULL默認 '0',' VARCHAR firstname'(100 )default NULL, 'lastname' varchar(100)default NULL, 'mail' varchar(150)NOT NULL, 'login' varchar(100)NOT NULL default'', 'passwd' varchar(32)NOT NULL默認 '', PRIMARY KEY('member_id') )ENGINE = MyISAM的默認字符集= LATIN1 AUTO_INCREMENT = 13; –

+1

這就是'會員'表@DavePiersma。錯誤是由'lijst'表上的'UPDATE'語句引起的。 –

+0

@DavePiersma看到我的編輯...如果你的表是'members'那麼不要在查詢中使用'lijst',使用'members'。 – MrCode