PHP - Enviar arreglo php y buscarlo en mysql

 
Vista:
sin imagen de perfil

Enviar arreglo php y buscarlo en mysql

Publicado por cau (3 intervenciones) el 18/10/2013 01:41:25
Hola que tal..
Ojala alguien pueda ayudarme con esto...
Estoy enviando un arreglo desde php a otro form para que me haga busquedas en mysql, pero cada posición del arreglo tomo esos datos para que se genere una consulta sql y me imprima la info, hasta el momento lo que he logrado es que haga la búsqueda pero me genere una búsqueda por cada posición del arreglo y no por el arreglo completo..
mi arreglo es asi:
per[][nom]
per[][ap]
per[][am]

Gracias por cualquier ayuda....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
foreach ($_POST['per'] as $item) {
  echo $item['nom'];
  echo $item['ap'];
  echo $item['am'];
 
$busca="SELECT *  FROM tabla WHERE (nombre like '%$item[nom]%') and (paterno like '%$item[ap]%') and (materno like '%$item[am]%') ORDER BY paterno,materno,nombre";
 
         $result=mysql_query($busca,$conexion) ;
         $filas=mysql_num_rows($result);
 
   while ($row = mysql_fetch_array($result))
            {
                  $nombre =utf8_encode($row["nombre"]);
               $paterno =utf8_encode($row["paterno"]);
               $materno =utf8_encode($row["materno"]);
 
            }
 ?>
 
        <td width="20%" ><h6><?php echo $nombre; ?> </h6></td>
        <td width="22%"><h6><?php echo $paterno; ?>  </h6></td>
        <td width="22%"><h6><?php echo $materno; ?></h6></td>
       <td width="22%"><h6><?php echo $zona; ?></h6></td>
   <?php
}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Enviar arreglo php y buscarlo en mysql

Publicado por xve (6935 intervenciones) el 18/10/2013 09:57:57
Hola Cau, no me queda muy clara tu duda... por lo que veo, parece que tu código es correcto...

Nos puedes comentar con mas detalle?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Enviar arreglo php y buscarlo en mysql

Publicado por Jesus Gabriel (12 intervenciones) el 18/10/2013 17:38:34
Cau si ya tienes esto
echo $item['nom'];
echo $item['ap'];
echo $item['am'];

porque no los unes en una sola cadena de esta forma

$cadena = $item['nom'].$item['ap'].$item['am'];

y entonces tu busqueda la haces por $cadena

pero la verdad viendo tu codigo veo que tienes el nombre y los apellidos divididos, asi como lo tienes con el like buscarlos por un solo arreglo no te va funcionar porque el like lo que hace es buscar coincidencias de cadena completa, por jemplo
supon que tenemos "Manuel Perez Osalde" y quieres que tu busqueda sea mediante "Manuel Perez Osalde" cuando llegue al campo apellido y encuentre un "Osalde" no te lo va a traer como resultado puesto que cadena "Manuel Perez Osalde" no es similar a "Osalde" aun cuando este dentro.

No se si me explico

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Enviar arreglo php y buscarlo en mysql

Publicado por cau (3 intervenciones) el 18/10/2013 21:08:48
Hola
gracias por responder...
Lo que estoy tratando de hacer es enviar una lista de nombres con un array y hacer una consulta para obtener todos esos datos de una sola vez en la base de datos..
Lo cambie a esto:





foreach ($_POST['per'] as $item) {

echo $item['nom']; echo $item['ap']; echo $item['am'];

$select = "SELECT FROM tabla";

$where = "";



if ($where == "") {
$where = " WHERE (nombre like '%$item[nom]%') and (paterno like '%$item[ap]%') and (materno like '%$item[am]%')";
}
else {
$where = " OR (nombre like '%$item[nom]%') and (paterno like '%$item[ap]%') and (materno like '%$item[am]%')";
}


$order = "ORDER BY paterno,materno,nombre";

$busca = $select.$where.$order;
$result=mysql_query($busca,$conexion) ;



y asi logre que el primer nombre que escribo haga la busqueda, pero los siguientes no.. alguna sugerencia del porque no entran todos en el ciclo???...
Gracias..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar