Problema con while PHP y MySQL

Iniciado por Catacrocker, 10 Mayo 2012, 10:59 AM

0 Miembros y 1 Visitante están viendo este tema.

Catacrocker

Buenas a todos, en mi primer post y ya preguntado...empiezo bien... xD

El caso es que estoy programando un buscador con php y mysql y me gustaria que me ayudaseis un poco por favor.

Adjunto el codigo:
<?php
$datos
explode(",",$_REQUEST['cadena']);
$cuenta=count ($datos);



//Conexion a la BD
$conexion=mysql_connect("172.31.20.39","phpmyadmin","clave") or
  die("Problemas en la conexion");
mysql_select_db("equipos",$conexion) or
  die("Problemas en la selección de la base de datos");
$i=0;

$bucle = while ($i!=$cuenta){ 
ECHO " OR Nombre LIKE %";
echo $datos[$i];
ECHO "%";
$i++;}
echo $bucle;
//$SQL="select * from EQUIPOS where Nombre like foo".while ($i!=$cuenta){ 
//ECHO " OR Nombre LIKE %";
//echo $datos[$i];
//ECHO "%";
//$i++;}.")";
//ECHO $SQL;
$consueq=mysql_query("select * from EQUIPOS where Nombre in('".implode(','$datos)."')",$conexion) or
  die("Problemas en el select:".mysql_error());
$reg=mysql_fetch_array($consueq);
print_r ($reg[0]);
?>



Lo que me esta fallando es el while dentro de una variable, estoy empezando a pensar que no funciona, ya que fuera de la variable funciona perfectamente. Lo que quiero es que la query realice un rastreo en la tabla de valores que se aproximen a los introducidos.
Por lo de aproximacion no puedo usar un IN en el apartado where y necesito un bucle que recorra todos los valores del array para usar el LIKE.

Alguien puede ayudarme?...estoy bastante atascado.

Gracias de antemano!

EDITO: Lo siento acabo de ver el foro de PHP  :-\
Si alguien puede moverlo...error de novato !

Catacrocker

Solucionado! Bucle for y condicionales.

Adjunto el codigo pro si a alguien le viene bien.
<?php
$datos
explode(",",$_REQUEST['cadena']);
$cuenta_datos=count ($datos);
$campos= array(
=> "Nombre",
=> "Referencia",
=> "Marca",
=> "Modelo",
=> "Num de serie",

);
//echo $datos[0];
//echo $campos[0];
$cuenta_camposcount($campos);

$query "select * from equipos where";

for(
$i=0$i<$cuenta_campos$i++){
for ($i2=0;$i2<$cuenta_datos;$i2++){



$query $query." [".$campos[$i]."] like '%".$datos[$i2]."%'";

if  ( !($i==$cuenta_campos-and $i2==$cuenta_datos-1) ) {

$query $query." or";
};

};

}

echo 
$query;

?>