Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL]Usuwanie wielu wpisów o takim samym ID
kcx
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.10.2008

Ostrzeżenie: (0%)
-----


Witam!

Mam taka tabelkę w bazie, która przyporządkowuje artykuły do odpowiednich kategorii. Kolumny są 2: id_kategorii i id_artykulu. W obu kolumnach wartosci sie powtarzaja (jeden art moze nalezec do wielu kat i odwrotnie).

Zrobiłem formularz usuwający dana kategorie z tabeli "kategorie", ale za nic nie mogę usunąć rekordów dot. tych kategorii z tabeli przyporzadkowań.

Przykład: W tabeli przyporządkowań mam np 5 wpisów gdzie id_kategorii = 1 a id_artykolow to 5 roznych wartości. Zapytanie:
CODE
DELETE FROM przyp_art WHERE id_kategorii='1'
nie daje zadnego rezultatu.

Jak powinno wyglądać poprawne zapytanie?

Ten post edytował kcx 5.11.2008, 21:49:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Lombi
post
Post #2





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Ja bym to zrobił przy pomocy checkboxów i usuwał po PRIMARY KEYu danej tabeli.
Jeśli trzeba hurtem to zawsze robie tak i zawsze działa:
  1. <?php
  2. mysql_query("DELETE FROM menu WHERE type = '5'");
  3. ?>


Ten post edytował Lombi 5.11.2008, 01:46:16
Go to the top of the page
+Quote Post
Ociu
post
Post #3





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Proszę dodać tag do tematu.
Go to the top of the page
+Quote Post
nevt
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


to jest relacja wiele-do-wielu. usuwasz kategorię ale nie usuwasz artykułów z nią powiązanych. jeżeli te tabele są powiązane relacją, to najpierw usuń artykuły a potem wpisy w tabeli łączącej, albo zmień ustawienia relacji na kaskadowe usuwanie / aktualizację... zrób w phpMyAdmin SHOW CREATE TABLE `xxx`; (zamiast xxx daj kolejno nazwy tabel: z artykułami, z kategoriami i łączącej) i pokaż tu rezultaty. wtedy będzie można ci pomóc...
Go to the top of the page
+Quote Post
kcx
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.10.2008

Ostrzeżenie: (0%)
-----


Tabela Atykuly:

CODE
CREATE TABLE `artykuly` (
`Id` int(11) NOT NULL auto_increment,
`tytul` varchar(255) default NULL,
`opis` varchar(255) default NULL,
`sciezka_pliku` varchar(255) NOT NULL default '',
`id_ikony` tinyint(3) unsigned default NULL,
`dodano` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=utf8


tabela Kategorie:

CODE
CREATE TABLE `kategorie` (
`Id` int(11) NOT NULL auto_increment,
`kategoria` varchar(255) default NULL,
`opis` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8


Tabela łącząca przyp_art:

CODE
CREATE TABLE `przyp_art` (
`id_kategorii` tinyint(3) unsigned NOT NULL default '0',
`id_artykulu` tinyint(3) unsigned NOT NULL default '0',
KEY `art` (`id_artykulu`),
KEY `kat` (`id_kategorii`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


Co do realacji.... Do tej pory mialem do czynienia wylacznie z accessem gdzie bylo takie specjalne okienko do edycji relacji. Tutaj nic takiego nie ustawialem... moze tu tkwi moj błąd...

No tak.... dzisiaj po raz kolejny usiadłem do DW i proszę. Zadziałało! Zaraz po tym jak poprawiłem kod PHP i dodałem brakujący znak "$" (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) . Nie wiem jak jego braku przez ponad 2 godz nie zauważyłem i przez kolejną szperania po sieci w poszukiwaniu rozwiązania (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) . Zastosowalem metodę hurtową (DELETE FROM przyp_art WHERE id_art... itd.) Co do relacji i kaskadowego usuwania rekordów to juz nie będę teraz zawracał Wam głowy - najpierw poczytam manual'a od MySQL .

Pozdrawiam i dziękuję za odpowiedzi!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 13:30