Замени на
$sql = "SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE secret=0 AND MATCH(text) AGAINST('".mysql_real_escape_string($search)."')";
$result = mysql_query(,$db) or die(mysql_error());
echo $sql.'<br>';
Тот запрос, что тут получишь, введи в phpMyAdmin, запути и скажи честно - ты видишь тут те же строчки, что и в скрипте или на одну больше?
Плюс к этому (или в первую очередь?) измени структуру кода (цикла чтения) на
while( $row = mysql_fetch_assoc(...) ) {
}
Причина простая: если у тебя вообще не будет данных, то ты получишь ошибку.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)