我制作了一个脚本,假设同时更新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]'");
}
答案 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
,或者列status
或id
的名称不同,或者数据类型错误。
我会小心地将第二个查询直接复制/粘贴到PhpMyAdmin或直接粘贴到您的数据库中,看看它是否会给您带来任何错误。也许它试图分配一个空白状态但是不接受空值?