一次更新数据库中的多个记录

时间:2016-02-12 04:45:28

标签: php mysql sql database sql-update

我刚刚在edit_mision_vision.php中添加了那些未定义索引的名称。我已经更新了我的代码并且它现在正在工作。谢谢你的帮助:)

update_mission_vision.php //更新发生的位置以及通知显示的位置(但现在已修复),表明愿景,任务和值未定义

<?php
    $conn=mysql_connect("localhost", "root");
    mysql_select_db("alumni", $conn);
    if (! $conn)
    {
        DIE('Could not connect: ' . mysql_error());
    }

    if(isset($_POST['update']))
    {
    $vision = $_POST['vision'];
    $mission = $_POST['mission'];
    $values = $_POST['values']; 

    $query="UPDATE about SET description='$vision' WHERE title='Vision'";
    $retval = mysql_query( $query, $conn );
    $query1="UPDATE about SET description='$mission' WHERE title='Mission'";
    $retval = mysql_query( $query1, $conn );
    $query2="UPDATE about SET description='$values' WHERE title='Values'";
    $retval = mysql_query( $query2, $conn );

    if(! $retval )  {
        DIE('Could not enter data: ' . mysql_error());
    }else{
        echo "<script type='text/javascript'>alert('Changes saved!!');
                    window.location.assign('/alumni/mission_vision.php');</script>";
    }
    }
    if (isset($_POST['cancel']))
    {
        header("Location: /alumni/admin_profile.php");
    }
    mysql_close($conn);
?>

edit_mission_vision.php 我在哪里编辑任务,愿景和价值观描述// 这是我添加了名称=&#34; vision&#34;,name =&# 34;使命&#34;,名称=&#34;价值观&#34;这解决了我的问题。

<form action="/alumni/admin/update_mission_vision.php" method="post">
<?php
    include_once 'db.php';
    $sql="SELECT * FROM about";
    $result_set=mysql_query($sql);
    while($row=mysql_fetch_array($result_set))
    {
?>

<?php if($row['title']=='Vision') { ?>
 <label>Vision</labrl><br><br>
<textarea id="vision" name="vision" maxlength="1000" height="1000000px" rows="10" cols="100"><?php echo $row['description']; ?></textarea>
<br><br>
<?php  } ?>

<?php if($row['title']=='Mission') { ?>
<label>Mision</label><br><br>
<textarea id="mission" name="mission" maxlength="1000" height="1000000px" rows="10" cols="100"><?php echo $row['description']; ?></textarea>
<br><br>
<?php  } ?>

<?php if($row['title']=='Values') { ?>
<label>Values</label><br><br>
<textarea id="values" name="values" maxlength="1000" height="1000000px" rows="10" cols="100"><?php echo $row['description']; ?></textarea>
<br><br>

<?php  } ?>


  <?php
    }
    ?>

    <input type="submit" name="update" value="Save Changes"/>
    <input type="submit" name="cancel" value="Cancel"/>
</form>

2 个答案:

答案 0 :(得分:1)

将此代码替换为“edit_mission_vision.php”文件

<form action="/alumni/admin/update_mission_vision.php" method="post">
<?php
    include_once 'db.php';
    $sql="SELECT * FROM about";
    $result_set=mysql_query($sql);
    while($row=mysql_fetch_array($result_set))
    {
?>

<?php if($row['title']=='Vision') { ?>
 <label>Vision</labrl><br><br>
<textarea name="vision" id="vision" maxlength="1000" height="1000000px" rows="10" cols="100"><?php echo $row['description']; ?></textarea>
<br><br>
<?php  } ?>

<?php if($row['title']=='Mission') { ?>
<label>Mision</label><br><br>
<textarea name="mission" id="mission" maxlength="1000" height="1000000px" rows="10" cols="100"><?php echo $row['description']; ?></textarea>
<br><br>
<?php  } ?>

<?php if($row['title']=='Values') { ?>
<label>Values</label><br><br>
<textarea name="values" id="values" maxlength="1000" height="1000000px" rows="10" cols="100"><?php echo $row['description']; ?></textarea>
<br><br>

<?php  } ?>


  <?php
    }
    ?>

    <input type="submit" name="update" value="Save Changes"/>
    <input type="submit" name="cancel" value="Cancel"/>
</form>

如果你在所有三个记录中得到相同的值,那么你需要创建数组,然后通过while循环更新查询中的数组。 并在textarea的name属性后添加“[]”。 希望它会有所帮助。

答案 1 :(得分:0)

1)您需要在所有textareas中定义名称。

2)为什么你需要三个查询才能更新单个字段?

尝试此查询:

library(methods)
  

旁注:停止使用update `about` set `description` = case when title='Vision' then '$vision' when title='Mission' then '$mission' when title='Values' then '$values' end 。它不再可用。使用   mysql_*mysqli_*