搜索多列mysql和php

时间:2010-05-24 21:59:04

标签: php mysql database

我正在尝试使用此代码搜索多个列:

 <?php

 // Connection Database
 $search = $_POST ['Search'];

mysql_connect("xxxxxx", "xxxxxx", "xxxxx") or die ("Error Connecting to Database");
mysql_select_db("xxxxx") or die('Error');
    $data = mysql_query("SELECT CourseName, CourseDescription, CourseLeader FROM course   MATCH (CourseName, CourseDescription, CourseLeader) AGAINST ('". $search ."')
or die('Error');
Print "<table border cellpadding=3>";
while($info = mysql_fetch_array( $data ))
 {
  Print "<tr>";
  Print "<th>Course Name:</th> <td>".$info['CourseName'] . "</td> ";
  Print "<th>Course Description:</th><td>".$info['CourseDescription'] . "</td> ";
  Print "<th>Course Leader:</th><td>".$info['CourseLeader'] . " </td></tr>";

  }
  Print "</table>";

   ?>

我收到以下错误:解析错误:语法错误,第30行/home/a7105766/public_html/website/scripts/coursesearchdb.php中的意外T_STRING

我做错了什么?

欢呼声

1 个答案:

答案 0 :(得分:3)

此行不正确:

$data = mysql_query("SELECT ... AGAINST ('". $search ."') or die('Error');

您甚至可以从Stack Overflow使用的语法高亮显示中看到错误。开发时是否使用语法高亮?如果没有,我建议它准确捕捉这种错误。

解决方案 - 您需要关闭双引号和左括号。

$data = mysql_query("SELECT ... AGAINST ('". $search ."')") or die('Error');

而不是die('Error')你可以写一些有用的东西,比如die(mysql_error())。您还可以查看trigger_error(mysql_error())

在您的SQL中,您缺少关键字WHERE。有关全文搜索的详细信息,请参阅手册中的Full-Text Search Functions