2010-05-24 6 views
1

я пытаюсь найти несколько столбцов с помощью этого кода:поиска для нескольких столбцов MySQL и PHP

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

    ?> 

я получаю следующее сообщение об ошибке: Синтаксическая ошибка: синтаксическая ошибка, неожиданный T_STRING в/дома/a7105766/public_html/website/scripts/coursesearchdb.php в строке 30

что я делаю неправильно?

веселит

ответ

3

Эта линия является неправильным:

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

Вы даже можете увидеть ошибку с подсветкой синтаксиса, что переполнение стека используется. Вы используете подсветку синтаксиса при разработке? Если нет, я бы рекомендовал его поймать именно такую ​​ошибку.

Решение - вам нужно закрыть двойную кавычку и открытую круглую скобку.

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

Кроме того, вместо die('Error') вы могли бы написать что-то полезное, например, как die(mysql_error()). Вы также можете посмотреть trigger_error(mysql_error()).

В вашем SQL отсутствует ключевое слово WHERE. См. Full-Text Search Functions в руководстве для получения дополнительной информации о полнотекстовом поиске.

+0

im get 'error' now ... – addi

+0

@addi: Смотрите мое обновление: не используйте 'die ('Error')' - это невероятно бесполезно для отладки. Измените его на 'die (mysql_error())'. Это должно дать вам сообщение об ошибке для вашего запроса, которое, надеюсь, позволит вам самостоятельно найти ошибку. –

+0

im получить это сейчас: У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «MATCH (CourseName, CourseDescription, CourseLeader) AGAINST ('') 'в строке 1 не знаю, что это значит! MATCH неправильно? – addi

Смежные вопросы