導航:首頁 > 編程語言 > php關聯刪除

php關聯刪除

發布時間:2022-05-25 05:37:27

1. 如何添加,刪除php關聯數組

示例如下:

<?php
//定義一個數組
$arr=array();

//添加元素
$arr['name']='';
$arr['url']='com';

//刪除某個元素
unset($arr['url']);

//刪除數組
unset($arr);

2. php刪除一篇文章的同時,也要刪除它相關的評論內容,sql語句怎麼寫.

方法一:評論表作為文章表的子表,外鍵關聯
CREATE TABLE `NewTable` (
`id` int(255) NULL ,
CONSTRAINT `parent` FOREIGN KEY (`id`) REFERENCES `table1` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
);
上述這個表和table1這個表的id欄位關聯,當table表中有數據刪除時這個表中id和其對應的數據也跟著刪除(ON DELETE CASCADE),不推薦 這么做,畢盡有些版本低的資料庫不支持這一特性。

方法二,聯合刪除:
DELETE table1 FROM table1,table2 WHERE table1.id IN(1) AND table1.id=table2.id
刪除table1中的id=1的數據,同時刪除tabl2中所有id等於1的數據(table1.id=table2.id)

3. PHP中,如何同時刪除兩個表

首先你的問題與PHP無關,PHP總是把SQL語句不做任何解釋就教給資料庫,由資料庫管理系統進行處理。

其次你這樣的要求有什麼意義呢,先刪除一個表再刪除一個表有什麼問題呢?

最後是否可以執行你這樣的功能,我現在使用過的資料庫都沒有相應的語法同事刪除兩個表,要實現你這樣的功能可以兩個思路。一是建立一個存儲過程(PROCEDURE),調用這個存儲過程實現兩個表的數據刪除,但是本質上是先後刪除的。另外一個辦法就是建立一個可以更新的試圖(VIEW),這個試圖是從兩個表裡面獲取數據(比如CREATE v1 AS SELECT uid FROM A UNION SELECT uid FROM B),然後從這個試圖裡面刪除數據(DELETE FROM v1 WHERE uid=$q_id)。

4. php資料庫添加、刪除、修改數據(mysql)

一、PHP操作MySql資料庫
新增數據
?php
$query
=
"INSERT
INTO
grade
(name,email,point,regdate)
VALUE
('
李三','[email protected]',,NOW())"
;
@mysql_query($query)
or
die(
'添加數據出錯:'
.mysql_error());
?
修改數據
?php
$query
=
"UPDATE
grade
SET
name='小可愛'
WHERE
id=6"
;
@mysql_query($query)
or
die(
'修改出錯:'
.mysql_error());
?
刪除數據
?php
$query
=
"DELETE
FROM
grade
WHERE
id=6";
@mysql_query($query)
or
die(
'刪除錯誤:'
.mysql_error());
?
顯示數據
?php
$query
=
"SELECT
id,name,email,point
FROM
grade";
$result
=
@mysql_query($query)
or
die(
'查詢語句出錯:'
.mysql_error());
while
(!!
$row
=
mysql_fetch_array($result))
{
echo
$row[
'id'
].
'----'
.$row['name'
].'----'
.$row
['email'
].
'----'
.$row['point'
];
echo
'<br
/
';
}
?>
二、其他常用函數
mysql_f
etch_row()
:從結果集中取得一行作為枚舉數組
mysql_f
etch_assoc()

從結果集中取得一行作為關聯數組
mysql_f
etch_array()

從結果集中取得一行作為關聯數組,或數字數組,或二者兼有
mysql_f
etch_lengths
()

取得結果集中每個輸出的長度
mysql_f
ield_name():
取得結果中指定欄位的欄位名
mysql_num_rows():
取得結果集中行的數目
mysql_num_f
ields():取得結果集中欄位的數目
mysql_get_client_inf
o()

取得
MySQL
客戶端信息
mysql_get_host_info():
取得
MySQL
主機信息
mysql_get_proto_info():
取得
MySQL
協議信息
mysql_get_server_inf
o()

取得
MySQL
伺服器信息

5. thinkPHP關聯刪除問題,謝謝大家了!

你在mysql里建立了外鍵約束了嗎?要有級聯刪除的。做好之後直接在作為外鍵的表裡使用M('x')->where()->delete()就可以同時刪除倆表中數據了。

6. 在php中做級聯刪除的sql語句怎麼寫(一般的就行)但要是用觸發器的話在php代碼中又怎麼寫呢

首先說明一下,做級聯最好用ajax實現才好,例如下面這個例子。用ajax 實現三級級聯菜單。
index.php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Ajax聯動菜單</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
//函數showMenu(str) - 功能函數1
function showMenu(str)
{
xmlHttp=GetXmlHttpObject() //調用GetXmlHttpObject()函數,創建XMLHttpRequest對象
if (xmlHttp==null) //如果創建失敗,則
{
alert ("Browser does not support HTTP Request")
return
}

var url="get2.php" //定義url , 其主要讀取資料庫
url=url+"?q="+str
url=url+"&sid="+Math.random() //Math對象的random方法,取隨機數
xmlHttp.onreadystatechange=stateChanged //設置當XMLHttpRequest對象xmlHttp狀態改變時調用的函數,注意函數名後不要添加小括弧
xmlHttp.open("GET",url,true) //使用XMLHttpRequest對象的open()方法 , 創建HTTP請求
xmlHttp.send(null) //使用XMLHttpRequest對象的open()方法 , 發送HTTP請求
}

//函數showMenu(str) - 功能函數1
function showMenu2(str)
{

xmlHttp2=GetXmlHttpObject() //調用GetXmlHttpObject()函數,創建XMLHttpRequest對象
if (xmlHttp2==null) //如果創建失敗,則
{
alert ("Browser does not support HTTP Request")
return
}

var url="get2.php" //定義url , 其主要讀取資料庫
url=url+"?q2="+str

url=url+"&sid="+Math.random() //Math對象的random方法,取隨機數
xmlHttp2.onreadystatechange=stateChanged2 //設置當XMLHttpRequest對象xmlHttp狀態改變時調用的函數,注意函數名後不要添加小括弧
xmlHttp2.open("GET",url,true) //使用XMLHttpRequest對象的open()方法 , 創建HTTP請求
xmlHttp2.send(null) //使用XMLHttpRequest對象的open()方法 , 發送HTTP請求
}

//函數BuildSel() , 根據返回的的字串 , 重新構建新的下拉菜單控制項Select - 功能函數2
function BuildSel(str,sel)
{
//先清空原來的數據.
sel.options.length=0;
//定義一個數組對象
var arrstr = new Array();
//以","號拆分傳入的字串,並存入數組
arrstr = str.split(",");
if(str.length>0)
{
//循環
for(var i=0;i<arrstr.length;i++)
{
var subarrstr=new Array();
//以"|"拆分
subarrstr=arrstr[i].split("|");
sel.options.add(new Option(subarrstr[1],subarrstr[0]));
}
sel.options[0].selected=true;
}
}

//函數stateChanged() - 響應HTTP請求狀態變化
function stateChanged()
{
//判斷XMLHttpRequest對象的readyState屬性值是否為4,如果為4表示非同步調用完成(注意:非同步調用完成 不代表非同步調用成功)
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
//如果非同步調用成功 --> XMLHttpRequest對象的status屬性值為200 , html文件在本地運行,則xmlHttp.status的返回值為0,故應該加上xmlHttp.status==0
if(xmlHttp.status==200 || xmlHttp.status==0)
{
//調用文檔對象模型DOM的getElementById()方法查找html文件中的標簽txtHint ,
//innerHTML為IE瀏覽器中的屬性,可以用來更改標簽間文本的內容 ,
//xmlHttp.responseText , 通過XMLHttpRequest的responseText屬性來獲取數據 responseText,結果為字元串;responseXML,結果為XML形式
// document.getElementByIdx("txtHint").innerHTML=xmlHttp.responseText
BuildSel(xmlHttp.responseText,document.getElementsByTagName_r("*").sel2)
showMenu2(document.getElementsByTagName_r("*").sel2.value);
}
}
}

//函數stateChanged() - 響應HTTP請求狀態變化
function stateChanged2()
{
//判斷XMLHttpRequest對象的readyState屬性值是否為4,如果為4表示非同步調用完成(注意:非同步調用完成 不代表非同步調用成功)
if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete")
{
//如果非同步調用成功 --> XMLHttpRequest對象的status屬性值為200 , html文件在本地運行,則xmlHttp.status的返回值為0,故應該加上xmlHttp.status==0
if(xmlHttp2.status==200 || xmlHttp2.status==0)
{
//調用文檔對象模型DOM的getElementById()方法查找html文件中的標簽txtHint ,
//innerHTML為IE瀏覽器中的屬性,可以用來更改標簽間文本的內容 ,
//xmlHttp.responseText , 通過XMLHttpRequest的responseText屬性來獲取數據 responseText,結果為字元串;responseXML,結果為XML形式
// document.getElementByIdx("txtHint").innerHTML=xmlHttp.responseText
BuildSel(xmlHttp2.responseText,document.getElementsByTagName_r("*").sel3)
}
}
}
//函數GetXmlHttpObject() - 創建XMLHttpRequest對象,即創建一個非同步調用對象
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');
//連接、選擇資料庫,設置字元集
$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] 是選項中 option 的值就可以了。

7. 在php中,用CI框架開發程序,有兩個表相連接,可以同時刪除兩個表相關聯的數據嗎怎麼寫刪除的代碼

delete from A where A.ID in (select B.ID from B where B.sum >100) 這只是一個例子 連表刪除 還有連表查詢 select * from a left join b on a.id=b.id where a.id=1 連表更新 update a,b set a.id=12 wehre b.id=2 沒有經過測試啊

8. php 刪除數組重復的值

$arr = array(1,2,4,2,0,9,8,5);//定義一個數組。

$arr1 = $arr; //定義另一個數組和上一個數組一樣。

//循環第一個數組讓後循環第二個數組 用第一個數組的每個值和第二個數組比較如果相同就刪除,最後輸出第二個數組就行了。

for($i = 0;$i<count($arr);$i++){

for($j=$i+1;$j<count($arr);$j++){

if($arr[$i] == $arr[$j])

unset($arr1[$i]);

}

}

echo'<pre>';

print_r($arr1);

第二 如果允許使用array_uniqe()函數的話,直接array_uniqe(直接寫數組名就ok)。

在PHP中可以使用內置函數array_unique()來直接刪除重復元素,也可以使用array_flip()函數來間接刪除重復元素。

1.array_unique()函數

array_unique()函數可以移除數組中的重復的值,並返回結果數組;當幾個數組元素的值相等時,只保留第一個元素,其他的元素被刪除。

代碼示例:

<?php$result1 = array("a" => "green", "red", "b" => "green", "blue",

"red");var_mp($result1);$result2 = array_unique($result1);var_mp($result2);?>

2.array_flip()函數

array_flip()是反轉數組鍵和值的函數,它有個特性就是如果數組中有二個值是一樣的,那麼反轉後會保留最後一個鍵和值,利用這個特性我們用他來間接的實現數組的去重。

代碼示例:

<?phpheader("content-type:text/html;

charset=utf-8");$a = array(1, 5, 2, 5, 1, 3, 2, 4, 5);// 輸出原始數組echo "原始數組

:";var_mp($a);// 。

通過使用翻轉鍵和值移除重復值$a = array_flip($a);

// 通過再次翻轉鍵和值來恢復數組元素$a = array_flip($a);// 重新排序數組鍵$a = array_values($a);// 輸出更新後的數組echo "更新數組 :";var_mp($a);?>

(8)php關聯刪除擴展閱讀:

在 PHP 中創建數組:

在 PHP 中,array()函數用於創建數組:

array();

在 PHP 中,有三種數組類型:

索引數組- 帶有數字索引的數組。

關聯數組- 帶有指定鍵的數組。

多維數組- 包含一個或多個數組的數組。

1、PHP 索引數組

有兩種創建索引數組的方法:

索引是自動分配的(索引從 0 開始):

$cars=array("porsche","BMW","Volvo");

或者也可以手動分配索引:

$cars[0]="porsche";

2、遍歷索引數組:

如需遍歷並輸出索引數組的所有值,可以使用 for 循環,就像這樣:

實例:

<?php

$cars=array("porsche","BMW","Volvo");

$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++) {

echo $cars[$x];

echo "<br>";

}

?>

3、多維數組:

將在 PHP 高級教程出現多維數組。

參考資料來源:網路-PHP

9. PHP怎麼同時刪除伺服器里的文件和數據表中的數據

這個需要分兩個步驟完成。
1、刪除資料庫數據;
2、刪除文件。
一般存入資料庫的數據和文件都有關聯性,如文件名存在資料庫某欄位中,這時候可以查詢出要刪除的某條數據,找到這條數據中的文件名,然後先將這條數據刪除,再把文件名對應的文件刪除。
刪除資料庫數據使用delete語法,刪除伺服器文件使用unlink函數。

10. 如何添加、刪除PHP關聯數組

?嚳矗?憧梢醞?鄙?韃⑻畛涫?欏H綣?閼?詿?硎?炙饕??椋?憧贍芟朧褂孟允久??暮??爸煤妥芳釉?兀?鏰rray_push()和array_unshift()函數,但這些函數不能操作關聯數組。 2、刪除數組元素 如果要從數組中刪除一個元素,請使用unset()函數, 使用數字索引數組時,刪除數組元素的辦法更多,更靈活,可以使用array_shift()和array_pop()函數分別從數組的開頭和末尾刪除一個元素。 3、交換鍵和值 假設你想創建一個名叫$states的新數組,使用州府作為索引,使用州名作為關聯值,使用array_flip()函數很容易完成這個任務。 4、合並數組 假設前面的數組由一個基於Web的「FlashCard」服務使用,你想提供一種方法測試學生對美國各州首府的掌握情況,你可以使用array_merge()函數合並包含州和首府的數組。 5、編輯數組值 假設在數組中的數據包含大小寫錯誤,在插入到資料庫之前,你想糾正這些錯誤,你可以使用array_map()函數給每個數組元素應用一個回調。 6、按鍵對數組排序 FlashCard程序常常使用各種排序,如按字母順序排序,你可以使用ksort()函數按鍵對關聯數組進行排序。因為數組是通過參數傳遞給ksort()函數的,意味著你不再需要將排序結果分配給另一個變數。 7、隨機數組排序 在FlashCard程序中還涉及到另一種隨機排序技術,這時你要使用shuffle()函數實現數組項目的隨機排序。如果不需要打亂數組順序,你只是想隨機選擇一個值,那麼使用array_rand()函數即可。 8、確定鍵和值是否存在 你可以使用in_array()函數確定一個數組元素是否存在。 9、搜索數組 你可能想搜索數組資源,這樣用戶就可以方便地用一個特定的州府檢索關聯的州,可以通過array_search()函數實現數組搜索。 10、標准PHP庫 標准PHP庫(Standard PHP Library,SPL)為開發人員提供了許多數據結構,迭代器,介面,異常和其它以前PHP語言沒有的功能,使用這些功能可以通過面向對象的語法遍歷數組。這僅僅是SPL眾多偉大功能中的一個,一定要閱讀PHP文檔了解更多信息。

閱讀全文

與php關聯刪除相關的資料

熱點內容
qt下編譯生成mqtt庫 瀏覽:541
南京中興招收專科程序員嗎 瀏覽:297
代理商php源碼 瀏覽:983
蘋果手機怎麼解壓軟體app 瀏覽:650
游戲資源被編譯 瀏覽:152
代碼編譯後黑屏 瀏覽:8
程序員情侶寫真 瀏覽:505
python3孿生素數 瀏覽:36
計算楊輝三角Python 瀏覽:404
linux目錄重命名 瀏覽:196
演算法設計的最終形態是代碼 瀏覽:262
程序員社團招新橫幅 瀏覽:238
拖鞋解壓視頻大全 瀏覽:887
租伺服器主機鏈接軟體叫什麼 瀏覽:856
交叉編譯工具的linux版本號 瀏覽:156
python開發應用軟體 瀏覽:32
hdl綜合器與c編譯器的區別 瀏覽:899
編譯原理最左推導代碼 瀏覽:702
加密三 瀏覽:131
通過編譯鏈接後形成的可執行程序 瀏覽:680