php - 从两个表内连接中删除 *
问题描述
大家好,我在我的项目中创建了两个具有相同 id 的表,表的结构是这样的:
坎帕涅:
id_campagna
data_inizio
data_fine
和表campagne_cliente
id_campagna_cliente
cliente_id_campagna
impianto_id_campagna
我的意愿是删除id时两个表中包含的所有数据
id_campagna
id_campagna_cliente
是相同的。
还要放置消除程序,从显示它们的表中我必须选择的所有数据:id_campagna_cliente
这样:
<a href="#elimina<?php echo $row['id_campagna_cliente']; ?>" data-toggle="modal" class="btn-floating btn-sm btn-pin "><span class="glyphicon glyphicon-trash"></span> <i class='fa fa-remove' aria-hidden='true'></i></a>
这是模态:
<div class="modal fade" id="elimina<?php echo $row['id_campagna_cliente']; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header text-center">
<h4 class="modal-title w-100 font-weight-bold">Elimina Impianto</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php
$elimina=mysqli_query($connessione,"select * from campagne_cliente where id_campagna_cliente='".$row['id_campagna_cliente']."'");
$row_due=mysqli_fetch_array($elimina);
?>
<div class="modal-body mx-3">
<h5 style="text-align: center;">Eliminare Campagna di: <?php echo $row_due['nome'].' '?>?</h5>
</div>
<div class="modal-footer d-flex justify-content-center">
<a href="elimina.php?id_campagna_cliente=<?php echo $row['id_campagna_cliente']; ?>" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span>Elimina</a>
</div>
</div>
</div>
</div>
这是我使用 $ _GET: id_campagna_cliente 恢复的删除页面
<?php
include '../../connessione.php';
$id_campagna_cliente=$_GET['id_campagna_cliente'];
mysqli_query($connessione,"DELETE * FROM campagne
LEFT JOIN campagne_cliente
ON campagne.id_campagna=campagne_cliente.id_campagna_cliente
WHERE campagne.id_campagna = '$id_campagna_cliente'");
header('location: campagne.php');
?>
但是当我运行删除它不会发生类似的事情?我想删除这两个表中包含的所有数据
解决方案
如果要使用删除连接从多个目标表中删除,则需要指定要删除的所有表或别名。像这样的东西应该工作:
DELETE ca, cc
FROM campagne ca
LEFT JOIN campagne_cliente cc
ON ca.id_campagna = cc.id_campagna_cliente
WHERE
ca.id_campagna = ?;
然后,您将在 PHP 中绑定一些值id_campagna
,最好使用 PHP 准备好的语句。
请注意,这DELETE *
在您使用时无效;只允许别名跟随DELETE
,然后只在多表删除的上下文中。
推荐阅读
- vim - 如何在`:global`中的`norm`之后使用另一个命令?
- php - CBC 模式下的 AES(块大小 128 位),在 PHP 8 中使用 PKCS#5 填充
- python - Python:使用 seaborn 的消费热图
- angular - 如何以角度从另一个组件调用函数?
- reactjs - Redux Toolkit:state.filter 未更改 state 而 state.map 更改
- python - 将 args 传递给 Python3 中的 Tkinter 回调验证函数,这可能吗?
- c - 面对此错误:tempCodeRunnerFile.c:3:38:注意:预期为“int *”,但参数为“int”类型 void printArray(int row,int col,int *marks){
- mysql - 如何让我的查询返回列名以及 MariaDB 中的相应数据?
- json.net - 属性的自定义 JSON.net 序列化/反序列化
- c# - 通过 http 使用 ASP.NET Core gRPC 服务时获取此“Grpc.Core.RpcException”