可以用下邊的方法,僅供參考:
阿巴嘎網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
-- 創(chuàng)建測試主表. ID 是主鍵.
CREATE TABLE test_main (
id INT NOT NULL,
value VARCHAR(10),
PRIMARY KEY(id)
);
-- 創(chuàng)建測試子表.
CREATE TABLE test_sub (
id INT NOT NULL,
main_id INT ,
value VARCHAR(10),
PRIMARY KEY(id)
);
-- 插入測試主表數(shù)據(jù).
INSERT INTO test_main(id, value) VALUES (1, 'ONE');
INSERT INTO test_main(id, value) VALUES (2, 'TWO');
-- 插入測試子表數(shù)據(jù).
INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');
INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');
然后,創(chuàng)建外鍵,使用 ON DELETE CASCADE 選項(xiàng),刪除主表的時候,同時刪除子表
ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main ON DELETE CASCADE;
執(zhí)行刪除:
DELETE FROM TEST_MAIN WHERE ID = 1;
最后:
SELECT * FROM TEST_MAIN;
結(jié)果子表中就只有ID=2的記錄,也就說明級聯(lián)刪除成功。
可以刪除的,刪除的時候檢測是文件還是目錄,如果是目錄,進(jìn)入查看是否有文件,繼續(xù)刪除,
首先說明一下,做級聯(lián)最好用ajax實(shí)現(xiàn)才好,例如下面這個例子。用ajax 實(shí)現(xiàn)三級級聯(lián)菜單。
index.php:
html
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
titleAjax聯(lián)動菜單/title
script language="javascript" type="text/javascript" src="aa.js"/script
/head
body
form
label
select name="sel" id="sel" onChange="showMenu(this.value);"
option一級分類/option
?php
$conn = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
mysql_select_db('fitment', $conn) or die ('Can\'t use database : ' . mysql_error());
mysql_query("set names 'gb2312'");
$str = "SELECT * FROM `fitment_sort` where supid = '0' ORDER BY `id` ASC";
$result = mysql_query($str) or die("Invalid query: " . mysql_error());
if($result)
{
while ($arr = mysql_fetch_array($result)){
echo EOD
option value={$arr["id"]}{$arr["name"]}/option
EOD;
}
}
mysql_close($conn);
?
/select
/label
label
select name="sel2" id="sel2" onChange="showMenu2(this.value)"
option二級分類/option
/select
/label
label
select name="sel3" id="sel3"
option三級分類/option
/select
/label
/form
input type=button value="send value" onClick="alert(document.getElementByIdx('sel').options[document.getElementByIdx('sel').selectedIndex].text + '-' + document.getElementByIdx('sel2').options[document.getElementByIdx('sel2').selectedIndex].text + '-' + document.getElementByIdx('sel3').options[document.getElementByIdx('sel3').selectedIndex].text)"
/body
/html
aa.js
!--
var xmlHttp
var xmlHttp2
//函數(shù)showMenu(str) - 功能函數(shù)1
function showMenu(str)
{
xmlHttp=GetXmlHttpObject() //調(diào)用GetXmlHttpObject()函數(shù),創(chuàng)建XMLHttpRequest對象
if (xmlHttp==null) //如果創(chuàng)建失敗,則
{
alert ("Browser does not support HTTP Request")
return
}
var url="get2.php" //定義url , 其主要讀取數(shù)據(jù)庫
url=url+"?q="+str
url=url+"sid="+Math.random() //Math對象的random方法,取隨機(jī)數(shù)
xmlHttp.onreadystatechange=stateChanged //設(shè)置當(dāng)XMLHttpRequest對象xmlHttp狀態(tài)改變時調(diào)用的函數(shù),注意函數(shù)名后不要添加小括號
xmlHttp.open("GET",url,true) //使用XMLHttpRequest對象的open()方法 , 創(chuàng)建HTTP請求
xmlHttp.send(null) //使用XMLHttpRequest對象的open()方法 , 發(fā)送HTTP請求
}
//函數(shù)showMenu(str) - 功能函數(shù)1
function showMenu2(str)
{
xmlHttp2=GetXmlHttpObject() //調(diào)用GetXmlHttpObject()函數(shù),創(chuàng)建XMLHttpRequest對象
if (xmlHttp2==null) //如果創(chuàng)建失敗,則
{
alert ("Browser does not support HTTP Request")
return
}
var url="get2.php" //定義url , 其主要讀取數(shù)據(jù)庫
url=url+"?q2="+str
url=url+"sid="+Math.random() //Math對象的random方法,取隨機(jī)數(shù)
xmlHttp2.onreadystatechange=stateChanged2 //設(shè)置當(dāng)XMLHttpRequest對象xmlHttp狀態(tài)改變時調(diào)用的函數(shù),注意函數(shù)名后不要添加小括號
xmlHttp2.open("GET",url,true) //使用XMLHttpRequest對象的open()方法 , 創(chuàng)建HTTP請求
xmlHttp2.send(null) //使用XMLHttpRequest對象的open()方法 , 發(fā)送HTTP請求
}
//函數(shù)BuildSel() , 根據(jù)返回的的字串 , 重新構(gòu)建新的下拉菜單控件Select - 功能函數(shù)2
function BuildSel(str,sel)
{
//先清空原來的數(shù)據(jù).
sel.options.length=0;
//定義一個數(shù)組對象
var arrstr = new Array();
//以","號拆分傳入的字串,并存入數(shù)組
arrstr = str.split(",");
if(str.length0)
{
//循環(huán)
for(var i=0;iarrstr.length;i++)
{
var subarrstr=new Array();
//以"|"拆分
subarrstr=arrstr[i].split("|");
sel.options.add(new Option(subarrstr[1],subarrstr[0]));
}
sel.options[0].selected=true;
}
}
//函數(shù)stateChanged() - 響應(yīng)HTTP請求狀態(tài)變化
function stateChanged()
{
//判斷XMLHttpRequest對象的readyState屬性值是否為4,如果為4表示異步調(diào)用完成(注意:異步調(diào)用完成 不代表異步調(diào)用成功)
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
//如果異步調(diào)用成功 -- XMLHttpRequest對象的status屬性值為200 , html文件在本地運(yùn)行,則xmlHttp.status的返回值為0,故應(yīng)該加上xmlHttp.status==0
if(xmlHttp.status==200 || xmlHttp.status==0)
{
//調(diào)用文檔對象模型DOM的getElementById()方法查找html文件中的標(biāo)簽txtHint ,
//innerHTML為IE瀏覽器中的屬性,可以用來更改標(biāo)簽間文本的內(nèi)容 ,
//xmlHttp.responseText , 通過XMLHttpRequest的responseText屬性來獲取數(shù)據(jù) responseText,結(jié)果為字符串;responseXML,結(jié)果為XML形式
// document.getElementByIdx("txtHint").innerHTML=xmlHttp.responseText
BuildSel(xmlHttp.responseText,document.getElementsByTagName_r("*").sel2)
showMenu2(document.getElementsByTagName_r("*").sel2.value);
}
}
}
//函數(shù)stateChanged() - 響應(yīng)HTTP請求狀態(tài)變化
function stateChanged2()
{
//判斷XMLHttpRequest對象的readyState屬性值是否為4,如果為4表示異步調(diào)用完成(注意:異步調(diào)用完成 不代表異步調(diào)用成功)
if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete")
{
//如果異步調(diào)用成功 -- XMLHttpRequest對象的status屬性值為200 , html文件在本地運(yùn)行,則xmlHttp.status的返回值為0,故應(yīng)該加上xmlHttp.status==0
if(xmlHttp2.status==200 || xmlHttp2.status==0)
{
//調(diào)用文檔對象模型DOM的getElementById()方法查找html文件中的標(biāo)簽txtHint ,
//innerHTML為IE瀏覽器中的屬性,可以用來更改標(biāo)簽間文本的內(nèi)容 ,
//xmlHttp.responseText , 通過XMLHttpRequest的responseText屬性來獲取數(shù)據(jù) responseText,結(jié)果為字符串;responseXML,結(jié)果為XML形式
// document.getElementByIdx("txtHint").innerHTML=xmlHttp.responseText
BuildSel(xmlHttp2.responseText,document.getElementsByTagName_r("*").sel3)
}
}
}
//函數(shù)GetXmlHttpObject() - 創(chuàng)建XMLHttpRequest對象,即創(chuàng)建一個異步調(diào)用對象
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
--
get2.php
?php
//指定編碼
header('Content-Type:text/html;charset=GB2312');
//連接、選擇數(shù)據(jù)庫,設(shè)置字符集
$conn = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
mysql_select_db('fitment', $conn) or die ('Can\'t use database : ' . mysql_error());
mysql_query("set names 'gb2312'");
//如果傳遞過來q
if($_GET["q"]){
$strs = "SELECT * FROM fitment_sort WHERE supid=' ".$_GET["q"]."' ";
//echo $str;
$results = mysql_query($strs) or die("Invalid query: " . mysql_error());
if($results)
{
while ($arrs = mysql_fetch_array($results)){
$strings .= $arrs["id"]."|".$arrs["name"].",";
}
echo substr($strings,0,strlen($strings)-1);
}
}
//如果傳遞過來q2
if($_GET["q2"]){
$str = "SELECT * FROM fitment_sort WHERE supid= '".$_GET["q2"]."'";
//echo $str;
$result = mysql_query($str) or die("Invalid query: " . mysql_error());
if($result)
{
while ($arr = mysql_fetch_array($result)){
$string .= $arr["id"]."|".$arr["name"].",";
}
//去掉字串最后一個字符","
echo substr($string,0,strlen($string)-1);
}
}
mysql_close($conn);
?
刪除的sql語句
delete from class where classid=$_GET[classid]
其中是$_GET[classid] 是選項(xiàng)中 option 的值就可以了。