简体   繁体   English

表单无法更新mysql表

[英]Form is failing to update mysql table

So I'm currently working with a form where the admin can select multiple users from the database via a tickbox system, then change the welcome message or general message to a client when they log in: 因此,我目前正在使用一种表单,其中管理员可以通过复选框系统从数据库中选择多个用户,然后在他们登录时将欢迎消息或常规消息更改为客户端:

<?php
    session_start();
    include_once("isadmin.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Update Client Message</title>
<link href="loginmodule.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
    if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
        echo '<ul class="err">';
        foreach($_SESSION['ERRMSG_ARR'] as $msg) {
            echo '<li>',$msg,'</li>'; 
        }
        echo '</ul>';
        unset($_SESSION['ERRMSG_ARR']);
    }
?>
<form id="updateform" name="updateform" method="post" action="updateexec.php">
  <table width="500" border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
      <th width="200">Select User</th>
      <td>
<?php
require_once('config.php');

    //Connect to mysql server
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    if(!$link) {
        die('Failed to connect to server: ' . mysql_error());
    }

    //Select database
    $db = mysql_select_db(DB_DATABASE);
    if(!$db) {
        die("Unable to select database");

        }


$useruploadids = mysql_query("SELECT member_id, firstname, lastname FROM members");
while ($row = mysql_fetch_assoc($useruploadids)) {
    $userid = $row['member_id']; 
    $firstname = $row['firstname'];
    $lastname = $row['lastname'];
?>
<input type="checkbox" name="userid_<?php echo $userid ?>" value="y" /><?php echo     $firstname ?><?php echo $lastname ?><br />
<?php } ?>
</td>
    </tr>
     <tr>
      <th>Message For Client </th>
      <td>
      <textarea input name="otherdeets" type="textarea" class="textfield" id="otherdeets" style="width: 356px; height: 176px">
          </textarea>
      </td>
    </tr>


    <tr>
      <td>&nbsp;</td>
          <td><input type="submit" name="Submit" value="Update" /></td>
    </tr>
  </table>
</form>
</body>
</html>

So this is the form, and it works fine, it calls all users from the database and displays them in tickbox fasion. 这样就可以了,它工作正常,可以从数据库中调用所有用户,并在复选框中显示它们。

I can only assume my issue is in the exec script: 我只能假设我的问题在exec脚本中:

<?php 

 echo( "<pre>" );
 print_r( $_POST );
 echo( "</pre>" );

include ("config.php"); 
$tbl_name="members";
    //Connect to mysql server
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    if(!$link) {
        die('Failed to connect to server: ' . mysql_error());
    }

    //Select database
    $db = mysql_select_db(DB_DATABASE);
    if(!$db) {
        die("Unable to select database");

        }

 //This gets all the other information from the form 
 $update = $_POST['otherdeets']; 
 $id = $_POST['userid'];

 // Cycle through each member and check that it needs to be added to the db
$useruploadids = mysql_query( "SELECT member_id FROM members" );
while ($row = mysql_fetch_assoc($useruploadids))
{
    // Check that the member was sent from the last form
    if( isset( $_POST['userid_'.$row['member_id']] ) &&     $_POST['userid_'.$row['member_id']] == "y" )
    {


// update data in mysql database
$sql="UPDATE $tbl_name SET otherdeets='$update' WHERE id='$id'";
$result=mysql_query($sql);  
    }
 }

 if($result){
echo "Successful";
echo "<BR>";
echo "<a href='admin-welcome.php'>Admin Home</a>";
}

else {
echo "ERROR";
}
 ?> 

When I run the script it simply says: 当我运行脚本时,它只是说:

Array
(
    [userid_1] => y
    [otherdeets] => Blah Blah
    [Submit] => Update
)

ERROR 

Any idea what is wrong? 知道有什么问题吗? Knowing my luck it would probabaly be a spelling mistake 知道我的运气很可能是拼写错误

Thank you 谢谢

Hey your query is wrong there should be where condition with appropriate column name ie "member_id" 嘿,您的查询错误,应该在适当的列名称(即“ member_id”)条件下

And one more thing you are fetching the $id = $_POST['userid']; 还有另一件事,您正在获取$id = $_POST['userid']; which is an error as there is no value exist with that key rather you do in the if condition before doing the update query, ie $id = $ POST['userid '.$row['member_id']]; 这是一个错误,因为该键不存在任何值,而是您在执行更新查询之前在if条件下执行,即$id = $ POST['userid '.$row['member_id']];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM