if($query){
為潁州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及潁州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、潁州網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
只是判斷sql語句是否執(zhí)行成功,而不是判斷是不是有數(shù)據(jù)
只要你的sql語句語法正確,對應(yīng)的數(shù)據(jù)表和數(shù)據(jù)字段都正確,那么
無論你數(shù)據(jù)庫有沒有數(shù)據(jù)記錄存在,mysql_query()都是真,那么
if ( $query ) {
永遠都成立
而
else
永遠都不會執(zhí)行,
那么,他怎么會輸出 無數(shù)據(jù)呢???
個人建議是這樣改一下,判斷sql語句執(zhí)行是否成功,并且同時判斷sql返回的數(shù)據(jù)源相應(yīng)的行數(shù),沒有數(shù)據(jù)就是0行,有數(shù)據(jù)就返回有多少行,php中,0為假,大于0的數(shù)都為真,根據(jù)這個推論,那么,這樣改一下
if ( $query mysql_num_rows( $query ) ) {
mysql支持自然語言的全文搜索
對于字段的要求:
只能是CHAR, VARCHAR, 或 TEXT 類型的字段
表類型是MyISAM
在表建好,并導(dǎo)入數(shù)據(jù)后,建立一個fulltext index(索引)
用法:
select 字段1,字段2,字段3, MATCH(要匹配的字段名) AGAINST('keyword') as score from table having score0
命中的每一行都會有個分?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ù),你只寫了個名字,是調(diào)用錯誤
3.根據(jù)報錯頁面,你連接mysql的用戶名和密碼是錯誤的,可能你沒弄清楚用法隨便填的吧
$connect?=?mysqli_connect('localhost',
'mysql用戶名,開發(fā)用的一般是root',
'用戶名對應(yīng)的密碼',
'要連接的數(shù)據(jù)庫');
4.mysqli庫不同于mysql庫,mysql連接上之后,使用查詢或其它函數(shù),會自動調(diào)用之前的連接資源,mysqli需要手動傳入連接對象
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);
}