Удалить * из двух таблиц внутреннего соединения - PullRequest
0 голосов
/ 28 октября 2018

привет всем, я создал в своем проекте две таблицы с одинаковым идентификатором, структура таблиц такая:

campagne:

id_campagna

data_inizio

data_fine

и таблица campagne_cliente

id_campagna_cliente

cliente_id_campagna

impianto_id_campagna

Я хочу удалить все данные, содержащиеся в двух таблицах, когда идентификаторы

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');



?>

но когда я запускаю удаление, ничего подобного не происходит?Я хотел бы удалить все данные, содержащиеся в этих двух таблицах

1 Ответ

0 голосов
/ 28 октября 2018

Если вы хотите удалить из нескольких целевых таблиц, используя объединение удаления, вам нужно указать все таблицы или псевдонимы, которые вы хотите удалить.Примерно так должно работать:

DELETE ca, cc
FROM campagne ca
LEFT JOIN campagne_cliente cc
    ON ca.id_campagna = cc.id_campagna_cliente 
WHERE
    ca.id_campagna = ?;

Затем вы должны связать некоторое значение для id_campagna в вашем PHP, в идеале, используя подготовленный оператор PHP.

Обратите внимание, что DELETE * недопустимокак вы использовали это;только псевдонимы могут следовать за DELETE, и только в контексте удаления из нескольких таблиц.

...