I have a function that is supposed to delete a product and, with it, delete its stock as well. But it keeps just deleting the stock. SSometimes I change the order of the querys and it shows an error that I can’t delete idproduto because its an FK, so I put the delete stock query first. It deletes the stock and there’s no error, but it doesn’t delete the product.
Database:
TABLE produtos(idproduto, descr) TABLE stock(idstock, idproduto, stock)
Code:
function removeProduto($idproduto){
        global $conn;
        $res="";
        $sql = "DELETE FROM stock WHERE idproduto= ".$idproduto.";";
    
        if($conn -> query($sql) === TRUE){
          $sql = "DELETE FROM produtos WHERE idproduto= ".$idproduto.";";
          
          $res = "Produto removido com sucesso";
    
        } else {
          $res = "Erro: ".$conn->error;
        }
    
        return($res);
    
    
    
    }
I also tried to put the delete produtos query right under the other, I switched them….
Advertisement
Answer
You can use left join
DELETE s,p FROM stock s
   LEFT JOIN produtos p ON s.idproduto = p.idproduto
      WHERE idproduto = idproduto