?php
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)雞西梨樹免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
$host="localhost";
$username="root";
$password="root";
$db="db4"; //庫名
$mysql_table="person"; //表名
//連接數(shù)據(jù)庫,面向過程
$conn=mysqli_connect($host,$username,$password);
if(!$conn){
echo "數(shù)據(jù)庫連接失敗";
exit;
}
//選擇所要操作的數(shù)據(jù)庫
mysqli_select_db($conn,$db);
//設(shè)置數(shù)據(jù)庫編碼格式
mysqli_query($conn,"SET NAMES UTF8");
//編寫sql獲取分頁數(shù)據(jù) SELECT * FROM 表名 LIMIT 起始位置,顯示條數(shù)
//注意:以下id,name,age,say都是字段節(jié)點(diǎn)名,person是表名,db4是數(shù)據(jù)庫名,think是指定的關(guān)鍵字.
$sql = 'SELECT id, name, age, say
FROM person
WHERE say LIKE "%think%" order by id ASC LIMIT '.($page-1)*$pageSize .",{$pageSize}";
// 節(jié)點(diǎn)名 關(guān)鍵字 節(jié)點(diǎn)名 可指定數(shù)量limit后可寫一個(gè)指定的數(shù)字
//$sql="select * from $mysql_table"
//把sql語句傳送到數(shù)據(jù)庫
$result=mysqli_query($conn,$sql);
//將數(shù)據(jù)顯示到table中,并未table設(shè)置格式
echo "div class='content'";
echo "table border=1 cellspacing=0 width=30% align=center";
echo "trtdID/tdtdNAME/tdtdsay/td/tr";
while ($row = mysqli_fetch_assoc($result)) {
echo "tr";
echo "td{$row['id']}/td";
echo "td{$row['name']}/td";
echo "td{$row['say']}/td";
echo "tr";
}
echo "/table";
echo "/div";
//釋放結(jié)果
mysqli_free_result($result);
//關(guān)閉數(shù)據(jù)庫
mysqli_close($conn);
第一、foreach()
foreach()是一個(gè)用來遍歷數(shù)組中數(shù)據(jù)的最簡單有效的方法。
?php
$urls= array('aaa','bbb','ccc','ddd');
foreach ($urls as $url){
echo "This Site url is $url! br /";
}
?
顯示結(jié)果:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
第二、while() 和 list(),each()配合使用。
?php
$urls= array('aaa','bbb','ccc','ddd');
while(list($key,$val)= each($urls)) {
echo "This Site url is $val.br /";
}
?
顯示結(jié)果:
?
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
第三、for()運(yùn)用for遍歷數(shù)組
?php
$urls= array('aaa','bbb','ccc','ddd');
for ($i= 0;$i count($urls); $i++){
$str= $urls[$i];
echo "This Site url is $str.br /";
}
?
顯示結(jié)果:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
這幾種遍歷數(shù)組的方法哪個(gè)更快捷些呢,下面做個(gè)簡單的測試就明白了
=========== 下面來測試三種遍歷數(shù)組的速度 ===========
一般情況下,遍歷一個(gè)數(shù)組有三種方法,for、while、foreach。其中最簡單方便的是foreach。下面先讓我們來測試一下共同遍歷一個(gè)有50000個(gè)下標(biāo)的一維數(shù)組所耗的時(shí)間。
?php
$arr= array();
for($i= 0; $i 50000; $i++){
$arr[]= $i*rand(1000,9999);
}
function GetRunTime()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
######################################
$time_start= GetRunTime();
for($i= 0; $i count($arr); $i++){
$str= $arr[$i];
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of for:'.round($time_used, 7).'(s)br /br /';
unset($str, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
while(list($key, $val)= each($arr)){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of while:'.round($time_used, 7).'(s)br /br /';
unset($str, $key, $val, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
foreach($arr as$key= $val){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)br /br /';
?
測試結(jié)果:
Used time of for:0.0228429(s)
Used time of while:0.0544658(s)
Used time of foreach:0.0085628(s)
結(jié)果表明,對于遍歷同樣一個(gè)數(shù)組,foreach速度最快,最慢的則是while。從原理上來看,foreach是對數(shù)組副本進(jìn)行操作(通過拷貝數(shù)組),而while則通過移動(dòng)數(shù)組內(nèi)部指標(biāo)進(jìn)行操作,一般邏輯下認(rèn)為,while應(yīng)該比foreach快(因?yàn)閒oreach在開始執(zhí)行的時(shí)候首先把數(shù)組復(fù)制進(jìn)去,而while直接移動(dòng)內(nèi)部指標(biāo)。),但結(jié)果剛剛相反。原因應(yīng)該是,foreach是PHP內(nèi)部實(shí)現(xiàn),而while是通用的循環(huán)結(jié)構(gòu)。所以,在通常應(yīng)用中foreach簡單,而且效率高。在PHP5下,foreach還可以遍歷類的屬性。
希望能夠喜歡。
首先需要寫出模糊查詢的sql語句,連接數(shù)據(jù)庫把需要的數(shù)據(jù)匹配出來,然后使用循環(huán)把iD字段單獨(dú)拿出來就可以了
PHP中遍歷數(shù)組有三種常用的方法:
一、使用for語句循環(huán)遍歷數(shù)組;
二、使用foreach語句遍歷數(shù)組;
三、聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組。
這三種方法中效率最高的是使用foreach語句遍歷數(shù)組。從PHP4開始就引入了foreach結(jié)構(gòu),是PHP中專門為遍歷數(shù)組而設(shè)計(jì)的語句,推薦大家使用。
希望回答對你有幫助,如果有疑問,請繼續(xù)追問
mysql支持自然語言的全文搜索
對于字段的要求:
只能是CHAR, VARCHAR, 或 TEXT 類型的字段
表類型是MyISAM
在表建好,并導(dǎo)入數(shù)據(jù)后,建立一個(gè)fulltext index(索引)
用法:
select 字段1,字段2,字段3, MATCH(要匹配的字段名) AGAINST('keyword') as score from table having score0
命中的每一行都會有個(gè)分?jǐn)?shù),分?jǐn)?shù)越大表示結(jié)果越接近keyword,分?jǐn)?shù)越低的就是越模糊的結(jié)果
1.請注意php中的變量,始終以 $ 開頭,你有好幾處都沒寫正確
2.你連接和查詢用的mysqli,獲取行用了mysql_fetch_row,這是不對應(yīng)的,而且 mysql_fetch_row是函數(shù),你只寫了個(gè)名字,是調(diào)用錯(cuò)誤
3.根據(jù)報(bào)錯(cuò)頁面,你連接mysql的用戶名和密碼是錯(cuò)誤的,可能你沒弄清楚用法隨便填的吧
$connect?=?mysqli_connect('localhost',
'mysql用戶名,開發(fā)用的一般是root',
'用戶名對應(yīng)的密碼',
'要連接的數(shù)據(jù)庫');
4.mysqli庫不同于mysql庫,mysql連接上之后,使用查詢或其它函數(shù),會自動(dòng)調(diào)用之前的連接資源,mysqli需要手動(dòng)傳入連接對象
mysql_query('?SELECT?*?FROM?text_table?limit?10?');
mysqli_query($connect,?'?SELECT?*?FROM?text_table?limit?10?');
5.如果需要判斷有查詢關(guān)鍵字才搜索,那就把if放在外面,不然你這里沒關(guān)鍵字,數(shù)據(jù)庫查詢操作都會執(zhí)行,只不過沒獲取結(jié)果集而已
if(!empty($keyword)){
$conn?=?mysqli_connect(?...?);
if?(mysqli_connect_errno())?{
printf("連接失敗:?%s\n",?mysqli_connect_error());
exit();
}
$keyword?=?addslashes($keyword);
$sql?=?"SELECT?*?FROM?user?where?username?LIKE?'%$keyword%'";
$result?=?mysqli_query($conn,$sql);
$user?=?array();
while?($row?=?mysqli_fetch_assoc($result))
{
$user[]=$row;
}
mysqli_free_result($result);
mysqli_close($conn);
}