Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Catacrocker en 10 Mayo 2012, 10:59 am



Título: Problema con while PHP y MySQL
Publicado por: Catacrocker en 10 Mayo 2012, 10:59 am
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:
Código:
<?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 !


Título: Re: Problema con while PHP y MySQL
Publicado por: Catacrocker en 10 Mayo 2012, 12:36 pm
Solucionado! Bucle for y condicionales.

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

);
//echo $datos[0];
//echo $campos[0];
$cuenta_campos= count($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-1 and $i2==$cuenta_datos-1) ) {

$query = $query." or";
};

};

}

echo $query;

?>