Give insert in another table

0

if (isset ($ _ POST ['menu'])) {

$menu = $_POST['menu'];

$delivery = null;
if (isset($_POST['delivery'])) {
    $delivery = $_POST['delivery'];
}
$cards = null;
if (isset($_POST['cards'])) {
    $cards = $_POST['cards'];
}
$wifi = null;
if (isset($_POST['wifi'])) {
    $wifi = $_POST['wifi'];
}
$music = null;
if (isset($_POST['music'])) {
    $music = $_POST['music'];
}
$holiday = null;
if (isset($_POST['holiday'])) {
    $holiday = $_POST['holiday'];
}
$acessible = null;
if (isset($_POST['acessible'])) {
    $acessible = $_POST['acessible'];
}
$address = null;
if (isset($_POST['address'])) {
    $address = $_POST['address'];
}

$dateFoundation = null;
if (isset($_POST['date'])) {
    $dateFoundation = $_POST['date'];
}
$cnpj = null;
if (isset($_POST['cnpj'])) {
    $cnpj = $_POST['cnpj'];
}
$latitude = null;
if (isset($_POST['latitude'])) {
    $latitude = $_POST['latitude'];
}
$longitude = null;
if (isset($_POST['longitude'])) {
    $longitude = $_POST['longitude'];
}
$link = null;
if (isset($_POST['link'])) {
    $link = $_POST['link'];
}
$site = null;
if (isset($_POST['site'])) {
    $site = $_POST['site'];
}
$facebook = null;
if (isset($_POST['facebook'])) {
    $facebook = $_POST['facebook'];
}
$instagram = null;
if (isset($_POST['instagram'])) {
    $instagram = $_POST['instagram'];
}
$googleplus = null;
if (isset($_POST['googleplus'])) {
    $googleplus = $_POST['googleplus'];
}
$pinterest = null;
if (isset($_POST['pinterest'])) {
    $pinterest = $_POST['pinterest'];
}



$stmtMoreInformations = $conn->prepare("SELECT only_delivery, card_on_delivery, wifi, live_music, 
                                        open_holiday, acessible FROM public.menu
                                        WHERE menu_id = :menu");

$stmtMoreInformations->bindValue(":menu", $menu);



if ($stmtMoreInformations->execute()) {

    $stmtUpdateMoreInformations = $conn->prepare("UPDATE menu SET only_delivery = :delivery, card_on_delivery = :card,
                                                 wifi = :wifi, live_music = :music, open_holiday = :holiday, 
                                                 acessible = :acessible
                                                 WHERE menu_id = :menu");

    $stmtUpdateMoreInformations->bindValue(':menu', $menu);
    $stmtUpdateMoreInformations->bindValue(':delivery', $delivery);
    $stmtUpdateMoreInformations->bindValue(':card', $cards);
    $stmtUpdateMoreInformations->bindValue(':wifi', $wifi);
    $stmtUpdateMoreInformations->bindValue(':music', $music);
    $stmtUpdateMoreInformations->bindValue(':holiday', $holiday);
    $stmtUpdateMoreInformations->bindValue(':acessible', $acessible);
    $stmtUpdateMoreInformations->execute();
}

I have a php file with several insert and update commands, if I run any of them I have another table where I should give an insert that something has changed. How do I assign a variable that recognizes that I must insert into the field such?

    
asked by anonymous 27.09.2016 / 14:24

1 answer

1

The question of executing an insert only after executing the update is to do the following:

if ($stmtMoreInformations->execute()) {

   $stmtUpdateMoreInformations = $conn->prepare("UPDATE menu SET only_delivery = :delivery, card_on_delivery = :card, wifi = :wifi, live_music = :music, open_holiday = :holiday, acessible = :acessible WHERE menu_id = :menu");

   $stmtUpdateMoreInformations->bindValue(':menu', $menu);
   $stmtUpdateMoreInformations->bindValue(':delivery', $delivery);
   $stmtUpdateMoreInformations->bindValue(':card', $cards);
   $stmtUpdateMoreInformations->bindValue(':wifi', $wifi);
   $stmtUpdateMoreInformations->bindValue(':music', $music);
   $stmtUpdateMoreInformations->bindValue(':holiday', $holiday);
   $stmtUpdateMoreInformations->bindValue(':acessible', $acessible);

   if($stmtUpdateMoreInformations->execute()){
      //Executar o teu insert normalmente, pois já executou o update
   }
}

As for the question of the fields and identify which one was changed, maybe it has some better way to do it, but at the moment, I thought of making a select before giving the update where the "menu_id =: menu" and save the fields , then you compare the data, for example (I'm assuming your select was executed and the old value of "wifi" has already been set for the variable $wifiOld :

if($stmtUpdateMoreInformations->execute()){ //Se executou o update, faça...
   if($wifi != wifiOld){ //Se o valor usado para dar update, for diferente do antigo, faça
     //Executa o que for necessário
   }
}
    
27.09.2016 / 15:30