2012-11-21 78 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