mysql
白銀網(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年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
有一個(gè)默認(rèn)的數(shù)據(jù)庫(kù),叫做information_schema
連上這個(gè)庫(kù),執(zhí)行下面的語句(你自己那可能的改下下面的sql)
//table_schema
是你的數(shù)據(jù)庫(kù)名字
table_name是表名
select
*
from
tables
where
table_schema
=
'storage'
and
table_name
like
'product%'
你看看庫(kù)中這個(gè)表結(jié)構(gòu)就明白了,呵呵
原生SQL查詢有 query() 和 execute() 兩個(gè)方法:
query():用于 SQL 查詢操作,并返回符合查詢條件的數(shù)據(jù)集
execute():更新和寫入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數(shù)據(jù)集。
例子:
public function read(){
// 實(shí)例化一個(gè)空模型,沒有對(duì)應(yīng)任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$list = $Dao-query("select * from user where uid5");
if($list){
$this-assign('list', $list );
$this-display();
} else {
$this-error($Dao-getError());
}
}
對(duì)于 query() 方法返回的數(shù)據(jù)集,跟 select() 一樣,可以在模板里直接循環(huán)輸出。
execute()
execute() 方法用于更新和寫入數(shù)據(jù)的 SQL 操作(注:非查詢操作,無返回?cái)?shù)據(jù)集),返回影響的記錄數(shù)。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實(shí)例化一個(gè)空模型,沒有對(duì)應(yīng)任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無記錄更新';
}
}
如果查詢比較復(fù)雜或一些特殊的數(shù)據(jù)操作不能通過 ThinkPHP 內(nèi)置的 ORM 和 ActiveRecord 模式實(shí)現(xiàn)時(shí),就可以通過直接使用原生 SQL 查詢來實(shí)現(xiàn)。
注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應(yīng)該寫實(shí)際的表名字(包括前綴)。
頁(yè)面加載時(shí) distinct 一下班級(jí),把得到的列表加載到班級(jí)的 dropdownlist里,至于性別的直接手動(dòng)添加男女就行了。
點(diǎn)擊查詢的時(shí)候 select * from xxx where 班級(jí)=班級(jí)dorpdownlist.text and 性別=性別dorpdownlist.text
先向大家說明需求:按照系統(tǒng)的要求,將通過部門名稱、員工姓名、PC名稱、IP地址等等字段來進(jìn)行組合查詢從而得到想要的數(shù)據(jù)結(jié)果。那么,為了簡(jiǎn)單起見,我們用兩個(gè)條件(部門名稱、員工姓名)的組合查詢來向大家說明這一技術(shù)技巧。當(dāng)只輸入部門名而員工姓名為空值時(shí),那么部門內(nèi)所有員工信息將被呈現(xiàn),只有當(dāng)同時(shí)限制部門與員工姓名時(shí),才能查詢出唯一信息。
那就讓我們開始。
首先建立查詢頁(yè)面search.php,不同于上次單一條件查詢,這次需要兩個(gè)條件的組合進(jìn)行查詢。
html
body
h3查詢/h3
form action="search_result.php" method="POST"
部門名稱:input type="text" size=25 name="depart" value="" brbr
員工姓名: input type="text" size=25 name="ename" value="" brbr
input type="submit" name="提交" value="提交"
/form
/body
/html
和上次一樣,我們將depart與ename的值通過Post的方法傳遞給search_result.php文件。
然后便到了這次主題的關(guān)鍵,search_result.php文件如何接受這兩個(gè)參數(shù)值,并判斷當(dāng)其中一個(gè)字段為空值時(shí),如何將其排除查詢條件。
怎么理解上面這句話,舉例子來說,如果我們單純地將接收參數(shù)的查詢語句寫成 select * from info where depart='部門值參數(shù)' and ename='員工姓名參數(shù)' 的話,那么如果其中一個(gè)參數(shù)為空時(shí)我們就將得到 select * from info where depart='技術(shù)部' and ename='' ,顯然,這樣的查詢很有可能返回空的結(jié)果,因?yàn)檫@句查詢語句的意思就是,查詢所有技術(shù)部沒有姓名的人的數(shù)據(jù),這不是很荒唐么,倒過來如果是 select * from info where depart='' and ename='sunec' ,那么它的意思就是查詢員工姓名為sunec但是不屬于任何部門的人,那自然也是查詢不到結(jié)果的。
正確的做法應(yīng)該是,在查詢語句中過濾掉那個(gè)為空值的的參數(shù)。比如,當(dāng)輸入部門名時(shí)應(yīng)該得到 select * from info where depart='技術(shù)部' 。這樣,查詢語句的意思就變成查詢所有部門為技術(shù)部員工的信息了,這就是了。
?php
$link =mysql_connect("localhost","root","管理員密碼");
mysql_select_db("infosystem", $link);
?
?php
//注釋1-----------------------------
$depart=$_POST["depart"];
$ename=$_POST["ename"];
//注釋2------------------------
if($depart != null){
$a = " and depart like '%$depart%'";}
if($ename != null){
$b = " and ename like '%$ename%'";}
//注釋3--------
$q = "SELECT * FROM info where (1=1)";
$q .=$a;
$q .=$b;
//注釋4----------------
mysql_query("SET NAMES GB2312");
$rs = mysql_query($q, $link);
echo "table";
echo "trtd部門/tdtd員工姓名/td/tr";
while($row = mysql_fetch_object($rs)) echo "trtd$row-depart/tdtd$row-ename/td/tr";
echo "/table";
mysql_close($link);
?
注釋1:接收search.php通過post傳遞出的參數(shù),把兩個(gè)參數(shù)分別存儲(chǔ)入變量:depart和ename。
注釋2:判斷參數(shù)是否為空,如果為空,不作任何操作。如果有參數(shù)傳出,則生成相應(yīng)SQL語句。
注釋3:用追加的方法生成SQL語句。
注釋4:生成數(shù)據(jù)集,顯示數(shù)據(jù),最后關(guān)閉數(shù)據(jù)庫(kù)連接。
SELECT * FROM `表名` WHERE bookid=22
獲取BOOKID為22的記錄,輸出$uid=
if(strpos($uid,"2")!==false):echo"包含";else:echo"不包含";endif;
判斷UID中是否含有2
MYSQLI方法統(tǒng)計(jì)數(shù)量
$num=mysqli_num_rows(mysqli_query($mysqli,"SELECT id FROM `表名` where pinglun=1"));
統(tǒng)計(jì)該表中pinglun=1的記錄數(shù)量
完全可以吧數(shù)據(jù)庫(kù)插入數(shù)據(jù)庫(kù)在是現(xiàn)在查詢操作,之接寫算法 你打算讀多是詞文本?
還有你這個(gè)XML 要是很大內(nèi)存 怎么放的下。
多條件排序 循環(huán)數(shù)組。自定義排序算法,傳值返回排序好值從新插入新的數(shù)組。