26/10/2012, 12:42
|
| | Fecha de Ingreso: julio-2011
Mensajes: 24
Antigüedad: 13 años, 4 meses Puntos: 0 | |
Warning: Invalid argument supplied for foreach() Hola amigos tengo, un problema con mi buscador cuando intento buscar algo me tira este error ,
Warning: Invalid argument supplied for foreach() in /home/a8767634/public_html/web/buscar.php on line 57
y si le quitos esas lineas no me busca nada....
Bueno a qui esta el pedazo de codigo si hace falta entero me avisan para qu me puedan ayudar y gracias ..
este es el de la linea 57 que presenta el error
foreach ($result['matches'] as $i)
{
$ids[] = $i['id'];
}
y el codigo completo por si es necesario es este ..
<?php
/*
* Buscar
*/
require '../auth.php';
include '../classes/template.php';
if (isset($_GET['director'])) {
$q = formText($_GET['director']);
$t = 's.director';
$sel = 'director';
} else if (isset($_GET['actor'])) {
$q = formText($_GET['actor']);
$t = 's.reparto';
$sel = 'actor';
} else {
$q = formText($_GET['q']);
$t = 's.nombre,s.nombre2';
$sel = 'titulo';
}
if (strlen($q)>1) {
$html = new Template('buscar');
include 'include/buscar_filters.php';
// Search
$html->set('q',$q);
// Contar palabras (para relevancia)
$stopwords = 'las|a|an|are|as|at|be|by|de|en|for|from|how|in|is |it|la|of|on|or|that|the|this|to|was|what|when|whe re|will|with|un|una|unas|unos|uno|es|esta|fue|el|l a|los|su|ir|nos|yo|del|y|o|u|i|e|al';
$q = preg_replace('/ +/', ' ', trim(preg_replace('/\b('.$stopwords.')\b/i', '', $q)));
// Count searches
/*
$titulo = num(query("SELECT id,MATCH(nombre,nombre2) AGAINST ('".$q."' IN BOOLEAN MODE) as relevancia FROM shows
WHERE MATCH(nombre,nombre2) AGAINST ('".$q."' IN BOOLEAN MODE) AND (estado = 'subido' OR tipo = 'serie') HAVING relevancia >= '".$rev."'"));
$actor = num(query("SELECT id,MATCH(reparto) AGAINST ('".$q."' IN BOOLEAN MODE) as relevancia FROM shows
WHERE MATCH(reparto) AGAINST ('".$q."' IN BOOLEAN MODE) AND (estado = 'subido' OR tipo = 'serie') HAVING relevancia >= '".$rev."'"));
$director = num(query("SELECT id,MATCH(director) AGAINST ('".$q."' IN BOOLEAN MODE) as relevancia FROM shows
WHERE MATCH(director) AGAINST ('".$q."' IN BOOLEAN MODE) AND (estado = 'subido' OR tipo = 'serie') HAVING relevancia >= '".$rev."'"));
*/
require '../classes/sphinxapi.php';
$cl = new SphinxClient();
$cl->SetServer('sph', 3339);
$cl->SetLimits(0, 1000);
$cl->SetMaxQueryTime(5000);
$cl->SetMatchMode(SPH_MATCH_EXTENDED2);
$cl->SetArrayResult( true );
$cl->SetFieldWeights(array('tituloor' => 100, 'tituloes' => 100, 'reparto' => 50, 'director' => 50, 'genero' => 20, 'descripcion' => 15));
$result = $cl->Query($q, '*');
$ids = array();
foreach ($result['matches'] as $i)
{
$ids[] = $i['id'];
}
$id = implode(',',$ids);
$html->set('resultados',count($ids));
include '../classes/buscar.php';
$buscar = new Buscar($lg,$originaltit);
// Page
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$page = $page>1 ? $page : 1;
// Filtros
$filters_pre = isset($_GET['filters']) ? $_GET['filters'] : '';
$filters = $buscar->getFilters($filters_pre);
// Lista
$r = $buscar->buscar($id,$page,$filters);
$h = $r['l'];
$total = $r['total'];
// Paginación
$limit = 20;
$min = ((($page-1)*$limit)+1);
$max = ($min+$limit-1)>$total ? $total : $min+$limit-1;
$cant = $min.' - '.$max;
$pages = $buscar->getPages($page,$total);
// Set
$html->set(array(
'lista'=>$h,
'listajs'=>json_encode(array('reciente'=>$h)),
'cant'=>$cant,
'page'=>$page,
'total'=>$total,
'pages'=>$pages,
'sel_filters'=>json_encode($filters)
));
$html->output($lg);
} else {
$html = new Template('buscar_error');
$html->output($lg);
}
?> |