Baza danych ma 3 tabele (problemem jest tu to że trzecia tabela to powiązanie pomiędzy dwoma poprzednimi tabelami i ją trzeba najpierw usunąć)
Oto tabele:
CREATE TABLE tlumaczenie( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id_slowo_ang INT NOT NULL, id_slowo_pl INT NOT NULL, FOREIGN KEY(id_slowo_ang) REFERENCES slowo_ang(id), FOREIGN KEY(id_slowo_pl) REFERENCES slowo_pl(id) )ENGINE=InnoDB; CREATE TABLE slowo_pl( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nazwa VARCHAR(40) )ENGINE=InnoDB; CREATE TABLE slowo_ang( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, wymowa VARCHAR(40), nazwa VARCHAR(40) )ENGINE=InnoDB;
i teraz żeby usunąć slowo_pl musze najpierw znaleźć id tego słowa w tabeli "tlumaczenie" usunąć rekord z tym id, a następnie znaleźć w tabeli slowo_pl to słowo i usunąć, próbuje wykonać to za pomocą następującego kodu (niestety nie wystepuje zaden błąd ale słowo nie usuwa się z bazy):
<?php if($_POST['submit']) { require_once("baza.php"); $slowko_ang = $_POST['slowko_ang']; $slowko_pl = $_POST['slowko_pl']; $query = "DELETE FROM tlumaczenie WHERE id_slowo_pl=(SELECT id FROM slowo_pl WHERE nazwa='$_slowko_pl')"; $objekt -> query($query); $query = "DELETE FROM slowo_pl WHERE nazwa='$slowko_pl'"; $objekt -> query($query); } ?> <h1>Usuń słówko</h1> <form action="usun_slowko.php" method="post"> Wpisz słowko do usunięcia:<br /> w języku polskim: <input type="text" name="slowko_pl" /><br /> <input type="submit" name="submit" value="usuń"><br /> </form>
czy ktoś mógłby doradzić jak to zrobić, albo chociaż co tu skopałem, ze nie działa tak jak trzeba?