简体   繁体   中英

searching for multiple columns mysql and php

i'm trying to search for multiple columns using this code:

 <?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>";

   ?>

i'm getting the following error: Parse error: syntax error, unexpected T_STRING in /home/a7105766/public_html/website/scripts/coursesearchdb.php on line 30

what am I doing wrong??

cheers

This line is incorrect:

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

You can even see the error from the syntax highlighting that Stack Overflow uses. Do you use syntax highlighting when developing? If not, I'd recommend it for catching exactly this sort of error.

The solution - you need to close the double-quote and the open parenthesis.

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

Also instead of die('Error') you could write something useful such as die(mysql_error()) . You could also look at trigger_error(mysql_error()) .

In your SQL you are missing the keyword WHERE . See Full-Text Search Functions in the manual for more information on full text searches.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM