Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/05/2010, 21:06
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: PAGINATOR y ORDER BY [puntuacion] no van bien juntos

En un SELECT COUNT(*) no necesitas ORDER BY porque solo vas a contar cuantos registros cumplen la condicion, independientemente del orden que apliques al paginar y, en ese caso, tendrias que usar un alias para el campo, no para la tabla.

Cita:
$_pagi_sql= "SELECT DISTINCT * FROM manual_contents as score WHERE sections LIKE '%$search%' AND language = '$language'";
En este caso estas usando el alias score para la tabla manual_contents y la consulta original estaba correcta, solo le faltaba el LIMIT

Cita:
// Primero cuentas, calculas inicio y registros a leer
// Aqui iria el SELECT COUNT(*)....

// Despues lees la pagina a mostrar:
$_pagi_sql = "SELECT chapter_id,page_id,section_id,sections, MATCH(sections) AGAINST ('$search' IN BOOLEAN MODE) AS score FROM manual_contents WHERE MATCH (sections) AGAINST ('$search' IN BOOLEAN MODE) AND language = '$language' ORDER BY score DESC LIMIT $inicio, $registros";
Si vas a mostrar primero los resultados mas relevantes, puedes omitir el ORDER BY, pero si vas en orden inverso, entonces si lo necesitas, a sabiendas de que el tiempo de proceso sera mayor.

Mas info para optimizacion de busquedas (en ingles): http://www.mysqlperformanceblog.com/...-optimization/
__________________
- León, Guanajuato
- GV-Foto