php - 从两个表内连接中删除*

标签 php mysql inner-join

大家好,我在项目中创建了两个具有相同 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">&times;</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:&nbsp;<?php echo $row_due['nome'].'&nbsp;'?>?</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 绑定(bind)一些值,最好使用 PHP 准备好的语句。

请注意,DELETE * 在您使用时无效; DELETE 后面只允许使用别名,并且只能在多表删除的上下文中使用。

关于php - 从两个表内连接中删除*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53033114/

相关文章:

MySQL:在联合表的子查询上添加条件

php - Facebook 喜欢状态 url 检测

mysql - 编写属性值与属性名称相同的查询

javascript - 如果我们点击页面中的任何地方,值就会更新

MySql 获取两条记录,但不是全部

mysql - Chef :了解 Chef::resource 提供?

php - 从带有连接表的两个表中选择数据

java - 如何加入 2 个列表

php - 使用 Zend 批量插入数据库

php - 用 CSS 隐藏代码?