将多个表单传递给单个MYSQL UPDATE查询

时间:2012-10-06 18:08:37

标签: php mysql

首次处理将多个表单传递给单个UPDATE查询(新增到php)

此脚本正在拉动并显示数据库表行中的所有数据,并通过textarea(s)中的$ currentadcode显示它 根据数据库中的行数,它会反复重复此代码以显示数据,然后显示下一页的限制,以查看其余部分。

textarea(s)名称adcode $ ID成为adcode1 adcode2 adcode3,提交按钮名称editad $ ID成为editad1 editad2 editad3。

echo "<div class=\"adcodearea\">";
echo "<h2>$ID : $adname</h2><a href=\"?action=deletead&IDnum=$ID\">Delete Ad</a><br />\n";
echo "Preview :<br /><div class=\"adcode\">$currentadcode</div><br /> \n";
//echo "<br />\n";
echo "<form action=\"editad.php?action=editad\" name=\"addAD$ID\" method=\"post\">\n";
echo "AD code (can be any type of script) text link, javascript or banner :<br />\n";
echo "Current AD Code :<br /><textarea name=\"adcode$ID\" wrap=\"physical\" cols=\"72\" rows=\"6\" onKeyDown=\"textCounter(document.addAD$ID.adcode$ID,document.addAD$ID.remLen$ID,5000)\" onKeyUp=\"textCounter(document.addAD$ID.adcode$ID,document.addAD$ID.remLen$ID,5000)\">$currentadcode</textarea>";
echo "<br /><input readonly type=\"text\" name=\"remLen$ID\" class=\"adcountdown\" size=\"2\" maxlength=\"3\" value=\"5000\">Characters Left \n";
echo "<input type=\"submit\" name=\"editad$ID\" class=\"adsubmit\" value=\"Edit AD Code\"></form>\n";
echo "</div>";
echo "<br /><hr />";
//echo "$letknownedited";

它将textarea中的数据传递给此代码接收的editad.php。

if ($_GET['action'] == "editad") {  // Edit AD
    $newadcode = mysql_real_escape_string($_POST['adcode' . $ID]);
    $doedit = "UPDATE `adgate`.`ads` SET `ads`.`adcode` = '$newadcode' WHERE `ads`.`ID` = '$ID' LIMIT 1" or die(mysql_error());
    $retval = mysql_query( $doedit, $connection );
    if(! $retval )
    {
        die('Could not update data: ' . mysql_error());
    }
    echo "Updated data successfully\n";
    //header("Location: displayads.php");

但它只获得页面上的第一个textarea数据/最低广告代码$ ID - 即使您编辑页面上的最后一个。 如果您尝试编辑页面上第一个(adcode8)以外的任何其他广告,则会抛出此

  • 注意:未定义的索引:C:\ Program Files中的adcode8 第29行的(x86)\ Zend \ Apache2 \ htdocs \ adgate \ editad.php

当前页面上的第一个广告(adcode8)。

所以我的想法可能会将代码传递给IF,ELSEIF,ELSE,但这不会起作用,因为它可能是无限量的广告。

所以留下HIDDEN表单字段我不认为我需要做,因为我将一个唯一的名称= \“editad $ ID \”传递给

$newadcode = mysql_real_escape_string($_POST['adcode' . $ID]);

这一行是错误的还是我正在尝试做的事情,并且需要尝试HIDDEN表单字段? 这是变量

  1. $ ID(唯一)
  2. $ adname(唯一但具体名称为ex:Google Banner)
  3. $ currentadcode(唯一但具体代码)
  4. 然后..

    • 如果需要隐藏表单字段且无法通过动态提交按钮名称进行更新,则...

    如果HIDDEN表单字段是这样的

    <input type="hidden" name="$ID" value="$ID">
    

    如何调整此代码,我甚至可以通过

    $ newadcode = mysql_real_escape_string($ _ POST ['adcode'。$ ID]);

    目标: 允许任何TEXTAREA和UPDATE仅在MYSQL数据库中的代码/行的可用性

0 个答案:

没有答案