2015-10-18 14 views
1

使搜索我是準備做一個簡單的搜索框,但在這裏我的代碼不正確運行,代碼:PHP與MySQL

<?php 
$db_host = 'localhost'; 
$db_name= 'site'; 
$db_table= 'tablesite'; 
$db_user = 'root'; 
$db_pass = ''; 


$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده"); 
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده"); 
mysql_query("SET CHARACTER SET utf8"); 
$dbresult=mysql_query("SELECT * FROM $db_table WHERE name LIKE '%".$_POST['search']."%' OR family LIKE '%".$_POST['search']."%'",$con); 

?> 



<form name="form1" dir="rtl" method="post" action=""> 
<label for="search"> search </label> 
<input name="search" type="text" size="40" maxlength="50"> 
<input type="submit" name="submit" value="search"/> 

也是我的表是這樣的:

 CREATE TABLE tablesite (
      id_user INT NOT NULL AUTO_INCREMENT , 
      name VARCHAR(128) NOT NULL , 
      family VARCHAR(128) NOT NULL , 
      email VARCHAR(64) NOT NULL , 
      phone_number VARCHAR(16) NOT NULL , 
      job VARCHAR(255) NOT NULL , 
      username VARCHAR(16) NOT NULL , 
      password VARCHAR(32) NOT NULL , 
      confirmcode VARCHAR(32) , 
      PRIMARY KEY (id_user) 
      ) 

的錯誤是在這一行:

$dbresult=mysql_query("SELECT * FROM $db_table WHERE name LIKE '%".$_POST['search']."%' OR family LIKE '%".$_POST['search']."%'",$con); 

形式獲取數據庫,然後查找˚F或者如果有相同的記錄則匹配案例。我要的是,應該正確地搜索,也表明了消息,如果有不匹配的情況下,謝謝...

注:خطادراتصالبهپایگاهداده意味着無法連接到數據庫...

+0

但你已連接,對不對? – Drew

+0

我已經連接到數據庫,只是問題是提取數據 – sammy

+0

取出腳本頂部的所有'
',這些都不是必需的。 然後在查詢後執行'var_dump($ dbresult)' –

回答

2

要使代碼正常工作,您需要從數據庫中獲取代碼。我讓你去做var_dump()檢查,以確保它正在工作。

我已經添加了一個while循環到您的代碼,以查看您查詢的結果。

<?php 
$db_host = 'localhost'; 
$db_name= 'site'; 
$db_table= 'tablesite'; 
$db_user = 'root'; 
$db_pass = ''; 


$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده"); 
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده"); 
mysql_query("SET CHARACTER SET utf8"); 
$dbresult=mysql_query("SELECT * FROM $db_table WHERE name LIKE '%".$_POST['search']."%' OR family LIKE '%".$_POST['search']."%'",$con); 

while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) { 
    printf("Name: %s Family: %s<br>", $row["name"], $row["family"]); 
} 

?> 



<form name="form1" dir="rtl" method="post" action=""> 
<label for="search"> search </label> 
<input name="search" type="text" size="40" maxlength="50"> 
<input type="submit" name="submit" value="search"/> 

mysql已被棄用,你應該在今後的使用或者PHP擴展mysqliPDO。例如,它不使用準備好的語句。

+0

以及它的工作,但兩個問題。 1:當我打開我的page.php時,所有記錄都顯示出來,但當我搜索時沒有問題,2:有一個通知:注意:未定義索引:在第22行的C:\ wamp \ www \ khebre \ search.php中搜索 – sammy

+0

這是第22行:$ dbresult = mysql_query(「SELECT * FROM $ db_table WHERE name LIKE'%」。$ _ POST ['search']。「%'OR family LIKE'%」。$ _ POST ['search']。 「%」「,$ CON); – sammy

+0

好吧,我解決了這個問題,我把數據庫移到另一個頁面,謝謝你兄弟,你讓我的一天:) – sammy