在同一个脚本php

时间:2016-10-26 00:53:01

标签: php mysql sql

我制作了一个脚本,假设同时更新2个不同的表。问题是只有一个表得到更新,我不知道为什么?

逻辑是:

在我点击更新按钮后,脚本应该同时更新job.status和customer.status的记录。

只有表格工作得到更新。

我试图只运行第二个查询但不起作用。 我试图在同一个数据库上运行查询到另一个表但是没有工作。

有什么建议吗?

这是我的代码:

     <?php
include("connection.php");

if (isset($_POST['update'])) {
  $results = $link->query("UPDATE job SET status='$_POST[status]', priority='$_POST[priority]' WHERE id='$_POST[hidden]'");
  $results = $link->query("UPDATE customer SET status='$_POST[status]' WHERE id='$_POST[hidden]'");
             }    
$sql = "SELECT * from job";
if (!$result = $link->query($sql)) {
    die('There was an error running the query [' . $link->error . ']');
}
echo "
<table class='table'>
    <thead>
        <tr>";
/* Get field information for all columns */
while ($finfo = $result->fetch_field()) {
    echo "  <th>" . $finfo->name . "</th>";  }
echo "
        </tr>  </thead> <tbody>";

while ($row = $result->fetch_assoc()) {
   $job_id = $row['id'];

    echo "<form action='' method=post>";
    echo "<tr class='info'>

                 <input type=hidden name=hidden value=" . $row['id'] . ">
                <td>" . $row['id'] . "</td> 
                <td>" . $row['device'] . "</td>
                  <td>" . $row['model'] . "</td> 
                <td>" . $row['problem'] . "</td>
            <td>

           <select class='form-control col-sm-10' id='status' name='status'>
                <option value='new' ". ($row['status'] == 'new'? 'selected ': '') .">New</option>
                <option value='progress' ". ($row['status'] == 'progress'? 'selected ': '') .">Progress</option>
                <option  value='wait' ". ($row['status'] == 'wait'? 'selected ': '') .">Wait</option>
                <option value='done' ". ($row['status'] == 'done'? 'selected ': '') .">Done</option>
                <option value='close' ". ($row['status'] == 'close'? 'selected ': '') .">Close</option>
            </select>
            </td>        

          <td> 
             <button type='submit' class='btn btn-primary btn-sm' name='update'>Update</button>
         </td>
          <td> 
                <a class='btn btn-primary btn-sm get_info'  data-toggle='modal' data-target='#myModal' name='job_id'  value= '[$job_id]'> Customer Info</a>              
             </form>                 
                </td>

           </tr>"; 
    echo "</form>";


}
echo "
    </tbody>

</table>";

?>

---- ---- UPDATE

我注意到当我发送此查询时正在运行。

$results = $link->query("UPDATE customer SET status='changethevalue' WHERE id='$_POST[hidden]'");

当我发送这个正在工作

 $results = $link->query("UPDATE customer SET status='changevalue'");

----更新2 ----

我重写了这样的查询,显然正在运作。但我不知道为什么。

if (isset($_POST['update'])) {

  $results = $link->query("UPDATE customer SET status='$_POST[status]' WHERE id='$_POST[hidden]'");

  $results = $link->query("UPDATE job SET status='$_POST[status]' WHERE id='$_POST[hidden]'");

}

2 个答案:

答案 0 :(得分:0)

更新查询中没有问题,但请确保使用核心列名称或尝试echo第二个查询并在php myadmin f.ex中运行。

echo $query="customer SET status='$_POST[status]' WHERE id='$_POST[hidden]'"

然后

$results = $link->query($query);

答案 1 :(得分:0)

查询应该有效。也许您的表格customer实际上是customers,或者列statusid的名称不同,或者数据类型错误。

我会小心地将第二个查询直接复制/粘贴到PhpMyAdmin或直接粘贴到您的数据库中,看看它是否会给您带来任何错误。也许它试图分配一个空白状态但是不接受空值?