Jump to content

MYSQL delete loop


sandersomers

Recommended Posts

Hello fellow php scripters,

I am new to this forum, so please be easy on me.
I don't have much experience, but i like to tell myself i do.  ;)
I made a database driven navigation menu, or a folder structure menu... whatever you would like to call it.

it's structure is quit easy.

CREATE TABLE `file_manager` (
  `id` int(11) NOT NULL auto_increment,
  `menu_id` int(11) NOT NULL,
  `menu_name` varchar(128) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=138 ;

So let's say i have 5 menu items and all items have several sub items.. I want to delete a item with sub items, here i get stuck with my loop.

  $result = mysql_query("SELECT * FROM article_menu WHERE id='$is_the_first_item_to_delete'");  
while($row = mysql_fetch_array($result)){

  $result_sub = mysql_query("SELECT * FROM article_menu WHERE id='$row[menu_id]'");  
while($row_sub = mysql_fetch_array($result_sub)){
  mysql_query("DELETE FROM article_menu WHERE menu_id='$row_sub[id]'");
}
  mysql_query("DELETE FROM article_menu WHERE menu_id='$is_the_first_item_to_delete'");
}

This will only delete the first sub items, however i would like to have all sub items to be deleted.
I have searched this site but i couldn't find anything useful. This could be caused by my searching skills.

Hopefully one of you scripters could help me out. ???
Link to comment
https://forums.phpfreaks.com/topic/17819-mysql-delete-loop/
Share on other sites

From what you've stated, this should, in theory, should work:

[code]<?php
$query = mysql_query("SELECT menu_id FROM article_menu WHERE id='$is_the_first_item_to_delete'") or die ('Aye, I think we have a problem!');
$r = mysql_fetch_array($query) //Results from query
$menu_id = $r['menu_id']; //The menu id

//Delete all items where menu_id is $menu_id
mysql_query("DELETE FROM article_menu WHERE menu_id='$menu_id'");
?>[/code]

This would essentially delete all items with the menu_id of x, where x is the value of $menu_id.
Link to comment
https://forums.phpfreaks.com/topic/17819-mysql-delete-loop/#findComment-77078
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.