在php中更新单个列1或2

时间:2014-05-30 12:15:53

标签: php mysql

我有一个表单,我想更新数据库。如果我只想更新输入字段或第2行输入字段中的第1行,那么如何使用更新查询?注意:我希望以前的数据保留,因为它存储在数据库中。

这是来自代码。

    <?php  include 'header.php'; ?>

<?php

if(isset($_POST) && count($_POST)>0) {

    $description1 = $_POST['line1_desc'];
    $description2 = $_POST['line2_desc'];

    $sSQL =mysql_query("UPDATE tbl_images SET $description1,$description2 Where id=".intval($_GET['id']));
    if($sSQL){
        echo 'done';
    }
    else {
        mysql_error();
    }

    //header("location: show_property_pic.php");
}

?>

<div>

    <form name="frmProudct" id="frmProduct" action="" method="post" enctype="multipart/form-data">
        <table align='center'>
            <tr>
                <td>Line1:</td>
                <td> <textarea cols="100" name="line1_desc"></textarea></td>
            </tr>
            <td>Line2:</td>
                <td> <textarea cols="100" name="line2_desc"></textarea></td>
            </tr>

            <tr>
                <td></td>
                <td><input type="submit" id="btnSub" value="Save"  /> </td>
            </tr>
        </table>
    </form>

</div>

<?php include 'footer.php' ?>

提前致谢。

2 个答案:

答案 0 :(得分:0)

基本上,您的SQL语句是错误的。

应该是:

'UPDATE <tablename> SET <fieldname> = "<Content>", <fieldname> = "<Content>" WHERE <Condition>'

在你的情况下

'UPDATE tbl_images SET description1 = "' . $description1 . '", description2 = "' . $description2 . '" Where id='.intval($_GET['id'])

但请告知SQL InjectionPrepared Statements。并立即停止使用mysql_函数!最好使用mysqli_进行快速迁移,即使是PDO,也要好1.000倍。

答案 1 :(得分:0)

如果你想让第二个textarea可选,你可以创建一个初始字符串(这是第一个textarea),然后如果它不为空则只附加第二个。请考虑以下示例:Sample Fiddle

if(isset($_POST['line1_desc']) && (trim($_POST['line1_desc']) != '')) {
    $input[] = "`line1_desc` = '" . $_POST['line1_desc'] ."'";
}
if(isset($_POST['line2_desc']) && (trim($_POST['line2_desc']) != '')) {
    $input[] = "`line2_desc` = '" . $_POST['line2_desc'] ."'";
}

$values = implode(', ', $input);

$statement = "UPDATE `tbl_images` SET $values WHERE `id` = your_id";
echo $statement;

// if both textareas have input:
// UPDATE `tbl_images` SET `line1_desc` = 'comment 1', `line2_desc` = 'comment 2' WHERE `id` = your_id
// if only line1_desc1 textarea is only provided:
// UPDATE `tbl_images` SET `line1_desc` = '1' WHERE `id` = your_id
// if only line1_desc2 textarea is only provided:
// UPDATE `tbl_images` SET `line2_desc` = '2' WHERE `id` = your_id
  

注意:如果可能,请迁移/使用较新版本的mysql扩展名 MYSQLI 或使用 PDO