DELETE! При удалении статьи нужно удилить комментарии статьи!

Basior

Новичок
Добрый день всем!
Помогите пожалуйста правильно реализовать запрос в mysql.
При удалении статьи нужно удалить все комментарии принадлежащие этой статье.
Вот запрос на удаление статьи:
PHP:
$ids = implode(",", $_POST["id"]);
$sql = mysql_query ("DELETE FROM articles WHERE id IN (".$ids.")");
Я мыслю что как бы нужно связать таблицу articles с таблицой comments.
PHP:
// Что-то вроде того:
$sql = mysql_query ("DELETE FROM articles a, comments c WHERE a.page_url=c.post id IN (".$ids.")");
// page_url и post имеют идентичное значение.
Но чего-то не хватает, непойму чего...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Basior
Мыслить надо в сторону Foreign key constraints
 

Basior

Новичок
А поискать информацию ты не пробовал? Или тебе разжевать и в рот положить нужно?
Иногда, что бы в чем-то разобраться нужно именно разжевать и в рот положить, моя ошибка была в том, что Я думал раньше как Вы: найти, скопировать, вставить! не понимая что та строка значит.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Так надо пойти в гугл, вбить строку, и почитать. И не надо будет писать никаких запросов к подчиненной таблице.
 

Basior

Новичок
Так надо пойти в гугл, вбить строку, и почитать. И не надо будет писать никаких запросов к подчиненной таблице.
Я спрашиваю людей у которых была такая ситуация или людей которые знают как помочь.
Не спорю гугл много чего знает, но там нет конкретной ситуации как у меня, я искал ), и при чем здесь гугл, чуть что сразу иди ты в гугл...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Автор, создай внешний ключ на таблице комментов к основной таблице и будет тебе счастье
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Если не InnoDB, то можно сконвертировать таблицу в этот тип и сделать внешний ключ. Если нет желания, то можешь дальше мучаться с запросами. Запрос кстати неверный у тебя, там ошибка в синтаксисе.
 

Basior

Новичок
Если не InnoDB, то можно сконвертировать таблицу в этот тип и сделать внешний ключ. Если нет желания, то можешь дальше мучаться с запросами. Запрос кстати неверный у тебя, там ошибка в синтаксисе.
Всетаки прийдеться мучаться дальше.
 

Basior

Новичок
РЕШЕНО!!!
Наконец-то мои мучения оправдались... Возможно кому-то пригодиться... Решение:
PHP:
// $ids = implode(",", $_POST["id"]); Как бы уже эта строчка неуместна!
 
isset($_POST['id']) ? $id = $_POST['id'] : print "There is no value in the variable";
if(!empty($id)){
     foreach($id as $values)
     $sql = mysql_query ("DELETE ta, tc FROM articles ta LEFT JOIN comments tc ON ta.id=tc.post_id WHERE id='$values'") or die(mysql_error());
     }
 

Vladson

Сильнобухер
Это не решение, это суицид...

Совет даю. Никогда никому не говорите адрес сайта где стоит этот скрипт. Честно, если кто узнает, проблем не оберётесь...
 

Basior

Новичок
Это не решение, это суицид...
Совет даю. Никогда никому не говорите адрес сайта где стоит этот скрипт. Честно, если кто узнает, проблем не оберётесь...
Интересно почему? Хочу обьяснения, что бы самом понять и разобраться в чем же этот скрипт уязвим?
Говорю сразу что скрипт служит для удаления статтей в админ-панели, в которой вход осуществляется по паролю и IP-адресу...
К тому же код у меня совсем не такой как я указал в примере...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
если навоз положить в пакет, убрать в чулан и закрыть на замок, портить воздух в комнате он, конечно, не будет, но все-равно у тебя дома будет лежать куча навоза,
с говнокодом все точно так же
 

Basior

Новичок
если навоз положить в пакет, убрать в чулан и закрыть на замок, портить воздух в комнате он, конечно, не будет, но все-равно у тебя дома будет лежать куча навоза,
с говнокодом все точно так же
Ну почему Вы не предъявите свой превосходный код, что бы работал на 100%, как мой говнокод...
Тема еще была создана 24 авг 2013, но вместо того что бы помочь, обьяснить человеку как лучше, Вы пытаетесь попустить человека и как бы показать себя, что умнее.
На словах я понимаю что все умные, а что бы привести рабочий пример, то как я понял здесь таких не много ...
 

Basior

Новичок
потому что форум создан для другого
а свой говнокод я выкладываю в специальных местах - репозиториях открытых проектов
Во-во:
Суть любого технического форума – это обмен знаниями, навыками, опытом.
Если не можете помочь, то критика неуместна!
 
Сверху