【问题标题】:Updating MySQL Database using form variables使用表单变量更新 MySQL 数据库
【发布时间】:2014-11-09 18:44:03
【问题描述】:

我目前正在本地构建一个页面,该页面是我为客户所做的设计/创意在线审批系统。话虽如此,我有一个门户,客户可以登录到特定订单查看他们的订单并批准整个项目的每个项目的创意。

视觉参考:



问题来了:

当用户点击赞许表示同意或点击反对表示拒绝。该单选按钮的值不会写入到该广告素材的数据库中的该文件状态列。

我正在为单选按钮分组使用变量名称(特定的广告 ID)。如何将特定分组的值写入引用每个广告素材状态的数据库列?

<?php $uploadID = $row_order_upload['id']; ?>
<?php $reviewID = $row_order_upload['id'] . 'a'; ?>

<p class="document_item">
  <span class="document_status_container">
    <span class="document_status status_pendingapproval"><?php echo $row_order_upload['file_status']; ?></span><a data-options="width:<?php echo $row_order_upload['file_width'] ?>, height:<?php echo $row_order_upload['file_height'] ?>" href="http://localhost:8888/-portal/user_data/<?php echo $row_order_upload['file_name']; ?>" class="fancybox_swf"><?php echo $row_order_upload['file_width'].'x'.$row_order_upload['file_height'] ?></a></span>
  </p>
    <div class="adStatus_container">
    <label><input class="status_thumb adstatus" type="radio" name="<?php echo $reviewID ?>" value="Rejected" /><img class="rejectimg" src="_source/buttons-assets/rejected.png" width="23" height: "23"></label>
    <label><input class="status_thumb adstatus" type="radio" name="<?php echo $reviewID ?>" value="Approved" /><img class="approveimg" src="_source/buttons-assets/approved.png" width="23" height: "23"></label>
    <input name="id" type="hidden" value="<?php echo $uploadID ?>">
    </div>
<?php } while ($row_order_upload = mysql_fetch_assoc($order_upload)); ?>

<input type="submit">
<input type="hidden"  value="revisionRequest">
</form>

上面的代码是为每个上传的广告编写的,希望这是足够的信息来提供帮助!如果还有什么我可以提供的,请告诉我!

下面是为更新执行的 MySQL 代码,我知道这可能不是最好的方法,但它是从 Dreamweaver 自动生成的!:

    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form")) {
  $updateSQL = sprintf("UPDATE `14111_rfm_uploads` SET file_status=%s WHERE oid=%s",
                       GetSQLValueString($_POST['file_status'], "text"),
                       GetSQLValueString($_POST['oid'], "int"));

  mysql_select_db($database_localhost, $localhost);
  $Result1 = mysql_query($updateSQL, $localhost) or die(mysql_error());

  $updateGoTo = "#";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $updateGoTo));
}

【问题讨论】:

  • 你能把这个表单提交时执行的代码也贴出来吗?这就是数据库写入发生的地方,所以这就是我们必须分析和修改的代码。谢谢!
  • 我已经用数据库代码更新了信息。

标签: php mysql database forms


【解决方案1】:

我不确定我是否完全理解您的问题,但您似乎只想根据用户输入更新数据库?

一些提示:

1) 您将表单提交到哪里?你的表单语句是什么样的

2) 无论您的表单操作指向何处(例如 /post/index.php),此文件都需要对您的帖子的值采取一些操作。要了解更多关于您需要做的事情,您可以在该页面上执行 var_dump($_POST) 。您很可能需要利用 PHP PDO 将数据写入数据库。

现在,如果您正在寻找无需发布表单即可写入数据库的内容,这称为 Ajax。基本上使用 Javascrpit,您将在后台(只要用户单击)将对数据库的更改提交到另一个 PHP 文件。如果您不确定自己在做什么,我不确定我会先尝试这种方法,因为这更复杂。

我希望这会有所帮助。

【讨论】:

  • 更新了提交时触发的功能,希望对您有所帮助。
【解决方案2】:

http://www.w3.org/TR/html401/types.html#type-name

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 (" _")、冒号 (":") 和句点 (".")。

将“a”放在 ID 的开头而不是结尾。

<?php $reviewID = 'a' . $row_order_upload['id']; ?>

试试看等等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 2013-05-27
    • 2012-04-10
    • 2015-06-15
    • 2014-05-08
    相关资源
    最近更新 更多