2015-10-18 65 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