2015-11-04 112 views
-4

我有一个SQL搜索嵌入PHP代码如下“在您的SQL语法错误”:PHP/MySQL的搜索功能:

<?php 
include("productconfig.php"); 

$result = mysql_query("SELECT * FROM weeklytbakl") or die(mysql_error()); 

if (isset($_POST['search'])) 
{ 
    $search_term = mysql_real_escape_string($_POST['searchbox']); 

    $sql .= "WHERE description = '{$search_term}'"; 
} 

$query = mysql_query($sql) or die(mysql_error()); 
?> 

<form name="search_form" method="POST" action="displaydata.php"> 
Search: <input type="text" name="searchbox" value="" /> 
<input type="submit" name="search"> 
</form> 
<table width="70%" cellpadding="5" cellspace="5"> 

<tr> 
    <td><strong>ID</strong></td> 
    <td><strong>Code</strong></td> 
    <td><strong>Image Link</strong></td> 
    <td><strong>Description</strong></td> 
    <td><strong>Instock</strong></td> 
    <td><strong>Week 1</strong></td> 
    <td><strong>Week 2</strong></td> 
    <td><strong>Week 3</strong></td> 
    <td><strong>Week 4</strong></td> 
    </tr> 

    <?php while ($row = mysql_fetch_array($query)) 
    { ?> 
    <tr> 
     <td><?php echo $row['id']; ?></td> 
     <td><?php echo $row['code']; ?></td> 
     <td><?php echo $row['image']; ?></td> 
     <td><?php echo $row['description']; ?></td> 
     <td><?php echo $row['instock']; ?></td> 
     <td><?php echo $row['week1']; ?></td> 
     <td><?php echo $row['week2']; ?></td> 
     <td><?php echo $row['week3']; ?></td> 
     <td><?php echo $row['']; ?></td> 
     </tr> 



     <?php }?> 
     </table> 

但代码给我下面的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE description = ''' at line 1

你能帮我找出为什么它不能正常工作吗?

+1

添加一个空格 - '$ SQL =“WHERE' –

+0

要知道,老mysql_ *扩展你使用的是PHP(当前版本)的5.5版本过时,正在您需要迁移到使用mysqli_ *扩展名或PDO – SpacePhoenix

+0

您必须使用like操作符来获取数据。如果您使用where,它会查找确切的关键字。 –

回答

1
<?php 
include("productconfig.php"); 
$sql = ""; 
$sql .= "SELECT * FROM weeklytbakl"; 

if (isset($_POST['search'])) 
{ 
    $search_term = mysql_real_escape_string($_POST['searchbox']); 

    $sql .= " WHERE description = '{$search_term}'"; 
} 

$query = mysql_query($sql) or die(mysql_error()); 
?> 
+0

谢谢你的帮助!错误似乎已经消失,但是当我在搜索框中输入内容并提交时,没有任何内容正在显示 – William1234

+0

尝试将'description ='{$ search_term}''改为'description LIKE'%$ search_term%'' – Suyog

+0

你是男人!非常感谢!一切正常! – William1234

1

$sql在哪里宣布?请正确地通过语法。

$sql .= " WHERE description = '{$search_term}'"; 

这应该是

$sql .= "SELECT * FROM your_table WHERE description = '{$search_term}'"; 

此外,当您正在搜索,先用LIKE

$sql .= "SELECT * FROM your_table WHERE description LIKE '%{$search_term}%'"; 
0

申报$ SQL变量之前添加空间,像下面的查询语句的关键字。

$sql .= " WHERE description = '{$search_term}'";