要用javascript調(diào)用php獲取數(shù)據(jù)庫(kù)接口,是一個(gè)很常見(jiàn)的前后端交互操作
章貢網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
通過(guò)javascript發(fā)送http請(qǐng)求php的API接口,php連接數(shù)據(jù)庫(kù)并查詢結(jié)果,最后返回出來(lái)
這樣javascript就能獲取到數(shù)據(jù)庫(kù)的數(shù)據(jù)
Node.JS 服務(wù)器可以在 后端 連接mysql,這時(shí)的情況和php是一樣的。
我從未見(jiàn)過(guò)前端JS直接連接mysql的,原因是:
(1)瀏覽器內(nèi)置的javascript 引擎一般只支持websocket,即基于http連接的套接字高層協(xié)議,而不是真正的socket,因此除非服務(wù)器端也開啟websocket服務(wù)并拆開套接字轉(zhuǎn)發(fā)到mysql,否則無(wú)法代理連接
(2)我見(jiàn)過(guò)的絕大多數(shù)mysql 服務(wù)器都工作在服務(wù)器環(huán)境下的一個(gè)虛擬子網(wǎng),換句話說(shuō),直接的遠(yuǎn)程3306端口是拒絕連接的,這樣可以隔絕端口直接攻擊
如果前段js直接可以連接后端服務(wù)器mysql的端口,那么就不叫B/S結(jié)構(gòu)了,而是C/S結(jié)構(gòu)(比如傳統(tǒng)的windows桌面程序),安全上有很多問(wèn)題,所以大多數(shù)瀏覽器也不支持這個(gè)操作。
其實(shí)不用再前端提交IP的,
用戶提交數(shù)據(jù)給后端處理的時(shí)候,就可以獲取到用戶的IP地址的
$ip = GetyonghuIP(); 這樣你就能獲取到用戶IP地址,
然后 插入數(shù)據(jù)庫(kù)中即可,
壓根不用前端提交的。
html
head
title智能遞歸菜單-讀取數(shù)據(jù)庫(kù)/title
style
TD {
FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; LINE-HEIGHT: 130%; letter-spacing:1px
}
A:link {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:visited {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:active {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:hover {
COLOR: #ff0000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: underline; letter-spacing:1px
}
.Menu {
COLOR:#000000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; CURSOR: hand
}
/style
script language=javascript
function ShowMenu(MenuID)
{
if(MenuID.style.display=="none")
{
MenuID.style.display="";
}
else
{
MenuID.style.display="none";
}
}
/script
/head
body
?php
//基本變量設(shè)置
$GLOBALS["ID"] =1; //用來(lái)跟蹤下拉菜單的ID號(hào)
$layer=1; //用來(lái)跟蹤當(dāng)前菜單的級(jí)數(shù)
//連接數(shù)據(jù)庫(kù)
$Con=mysql_connect("localhost","root","123456");
mysql_select_db("menu");
//提取一級(jí)菜單
$sql="select * from menu where parent_id=0";
$result=mysql_query($sql,$Con);
//如果一級(jí)菜單存在則開始菜單的顯示
if(mysql_num_rows($result)0) ShowTreeMenu($Con,$result,$layer,$ID);
//=============================================
//顯示樹型菜單函數(shù) ShowTreeMenu($con,$result,$layer)
//$con:數(shù)據(jù)庫(kù)連接
//$result:需要顯示的菜單記錄集
//layer:需要顯示的菜單的級(jí)數(shù)
//=============================================
function ShowTreeMenu($Con,$result,$layer)
{
//取得需要顯示的菜單的項(xiàng)目數(shù)
$numrows=mysql_num_rows($result);
//開始顯示菜單,每個(gè)子菜單都用一個(gè)表格來(lái)表示
echo "table cellpadding='0' cellspacing='0' border='0'";
for($rows=0;$rows$numrows;$rows++)
{
//將當(dāng)前菜單項(xiàng)目的內(nèi)容導(dǎo)入數(shù)組
$menu=mysql_fetch_array($result);
//提取菜單項(xiàng)目的子菜單記錄集
$sql="select * from menu where parent_id=$menu[id]";
$result_sub=mysql_query($sql,$Con);
echo "tr";
//如果該菜單項(xiàng)目有子菜單,則添加JavaScript onClick語(yǔ)句
if(mysql_num_rows($result_sub)0)
{
echo "td width='20'img src='tree_expand.gif' border='0'/td";
echo "td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'";
}
else
{
echo "td width='20'img src='tree_collapse.gif' border='0'/td";
echo "td class='Menu'";
}
//如果該菜單項(xiàng)目沒(méi)有子菜單,并指定了超級(jí)連接地址,則指定為超級(jí)連接,
//否則只顯示菜單名稱
if($menu[url]!="")
echo "a href='$menu[url]'$menu[name]/a";
else
echo $menu[name];
echo "
/td
/tr
";
//如果該菜單項(xiàng)目有子菜單,則顯示子菜單
if(mysql_num_rows($result_sub)0)
{
//指定該子菜單的ID和style,以便和onClick語(yǔ)句相對(duì)應(yīng)
echo "tr id=Menu".$GLOBALS["ID"]++." style='display:none'";
echo "td width='20'?/td";
echo "td";
//將級(jí)數(shù)加1
$layer++;
//遞歸調(diào)用ShowTreeMenu()函數(shù),生成子菜單
ShowTreeMenu($Con,$result_sub,$layer);
//子菜單處理完成,返回到遞歸的上一層,將級(jí)數(shù)減1
$layer--;
echo "/td/tr";
}
//繼續(xù)顯示下一個(gè)菜單項(xiàng)目
}
echo "/table";
}
?
?php
$id = 1;
function test()
{
global $id;
unset($id);
}
test();
echo"font class=menu".($id)."/font"; // 在 PHP 4 中這里會(huì)打印出 1
?
?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo "font class=menu".$b."/font";
?
/body
/html
呵呵,看咋樣,是遞歸出來(lái)的......
標(biāo)題名稱:phpjs連接數(shù)據(jù)庫(kù) php連接數(shù)據(jù)庫(kù)的函數(shù)
當(dāng)前路徑:http://muchs.cn/article12/dospidc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、App設(shè)計(jì)、定制網(wǎng)站、響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)