iT邦幫忙

0

php 從收尋到模糊收尋問題 "關鍵字" 已解決謝謝

這是我的收尋程式碼 我用這段會變成只要有一個打錯 就收尋不到這不是我想要的
我想改成關鍵字搜尋 我上網找了一下我有試者跟改 但不能執行

<?php
require_once("SQL_data.php");
//$sql="select * from people  order by id desc ";
$inserSQL=isset($_POST["S1"])<>NULL?" where  id  ='".$_POST["S1"]."'":"";
$sql="select * from part_number".$inserSQL;
mysql_select_db($database,$GD);
$Result=mysql_query($sql,$GD) or die(mysql_error());
while($r = mysql_fetch_assoc($Result))
 $output[]=$r;
header('Content-type: application/json; charset=utf-8');
print(json_encode($output,JSON_UNESCAPED_UNICODE));//JSON_UNESCAPED_UNICODE為中文不轉成unicode碼
mysql_close();
exit();
?>

這是我改的 不能執行

$inserSQL=isset($_POST["S1"])<>NULL?" where  id like='".$_POST["S1"]."%'":"";
2
firecold
iT邦新手 3 級 ‧ 2020-02-24 12:09:49

可以的話用pdo吧....
https://www.runoob.com/php/php-pdo.html

再來這段用法有點奇怪

$inserSQL=isset($_POST["S1"])<>NULL?" where  id like='".$_POST["S1"]."%'":"";
isset($_POST["S1"])就已經在判斷了你還在加上<>NULL根本不必要

一般來說用like 做模糊搜尋就是簡單的

$sql = "select * from table where column like '%$search_key%'";

前後都要加百分比符號
ex. $str = 'abc'
%b% 是可以找到的
但是%b 或者 b%就沒辦法

如果要做空格ex. a b 就是用程式explode之後組裝sql
再上去就用fulltext search了
http://n.sfs.tw/content/index/11465

求關注 iT邦新手 5 級 ‧ 2020-02-24 13:43:43 檢舉

我最後改成這樣成功了 感謝你
$sql="select * from part_number where id like '%$passwd%'"; //模糊收尋

firecold iT邦新手 3 級 ‧ 2020-02-24 14:23:31 檢舉

恭喜你成功了
不過建議連中間奇怪的地方也修正一下
會比較好喔~

1
mlck970677
iT邦新手 5 級 ‧ 2020-02-24 13:35:14

昨天晚上有一個人有大概同樣的問題(也是在IT問答區...
就跟星空大大說得差不多,

$inserSQL=isset($_POST["S1"])<>NULL?" where  id  ='".$_POST["S1"]."'":"";

你這isset輸出的是true和false,但你拿來判斷是不是NULL(結果一定是""啊!~
另外可以寫成??的形式,比較精簡!(可參考:https://www.bbsmax.com/A/q4zVDE8j5K/

然後不能執行是指select不出結果?如果是這樣先去對資料庫執行

select * from part_number

成功出現資料再說吧.../images/emoticon/emoticon06.gif

求關注 iT邦新手 5 級 ‧ 2020-02-24 13:45:45 檢舉

謝謝你的回覆 我最後刪掉這行了 我改這樣可以使用
$sql="select * from part_number where id like '%$passwd%'"; //模糊收尋

ni0 iT邦新手 5 級 ‧ 2020-02-25 10:05:12 檢舉

"搜尋"

0
浩瀚星空
iT邦超人 1 級 ‧ 2020-02-24 16:48:54

我一直很想知道,是哪個網路教學教這樣的。

isset($_POST["S1"])<>NULL

這真的是夠了喔!!錯誤的方式不要去學習到啦。

ni0 iT邦新手 5 級 ‧ 2020-02-25 10:04:57 檢舉

問題是
就是不知道哪些是錯誤的,哪些是正確的啊

唉,這樣說也對啦。

有時候我也會去看我10多年前發問的發言。
自已有時也會感覺,當初的我為何真他媽的這麼笨。

當時被一些高手罵白吃還有點氣。
現在自已看來,還真覺得是罵的好啊!!
氣的自已努力查資料跟不斷的實驗。

我可能還是不認識當初罵我的那些高人。也可以這些高人也存在這裏
但我還是會忠實的感謝你們,謝謝你們,當初罵我罵的好。

ps:曾經,在某技術論壇,看到某個笨蛋的發問,真他媽的為何那樣笨。
然後罵了一通之後。突然發現那是一篇多年前的發問。
再看看發問者。哇靠,這不是我嘛。
後續一些人看到這篇文意,都快被我笑死了。

我要發表回答

立即登入回答