Foros del Web » Programando para Internet » PHP »

Duda sobre consulta de mysql en php

Estas en el tema de Duda sobre consulta de mysql en php en el foro de PHP en Foros del Web. Porfavor no se si esta sea una pregunta tonta pero necesito saber si alguien me proporcionaria un codigo donde use la sentencia LIKE ya que ...
  #1 (permalink)  
Antiguo 03/01/2012, 01:29
Avatar de AsderPunk  
Fecha de Ingreso: agosto-2010
Mensajes: 39
Antigüedad: 12 años
Puntos: 3
Duda sobre consulta de mysql en php

Porfavor no se si esta sea una pregunta tonta pero necesito saber si alguien me proporcionaria un codigo donde use la sentencia LIKE ya que no entiendo muy bien el funcionamiento con mi caso.

Explico:
Tengo en una base de datos un campo llamado NOMBRE el cual contiene datos asi:

CARDENAS GONZALEZ JULIO LARA
FIDENCIO MARTINEZ JOSE IVAN
CARMONA GOVEA VANESSA
MARTINEZ SCOTT LUZ SARAI

Y el formulario que ocupo para buscar tiene lo siguiente:

Código HTML:
<form action="busca_proceso.php" method="get" name="formulario">
Apellido Paterno
<input type="text" name="apaterno" size="30" />
Apellido Materno
<input type="text" name="amaterno" size="30"/>
Nombre(s)
<input type="text" name="nombres" size="35" />
<br>
<input type="submit" value="Enviar" />
</form> 
Lo que necesito es que se realize la consulta por el nombre pero si solo conocen un apellido y nombre PERO NO me hace la consulta ejemplo:

Buscar -->
apaterno = MARTINEZ
nombres = IVAN

El código que utilizo para buscar es el siguiente:

Código PHP:

if(($_GET['apaterno']!=="")) { $cons $cons $_GET['apaterno'] . " "; }
if((
$_GET['amaterno']!=="")) { $cons $cons $_GET['amaterno'] . " "; }
if((
$_GET['nombres']!=="")) { $cons $cons $_GET['nombres']; }

$criterio " WHERE EMP_NOM LIKE '%".$cons."%' ";
$sql "SELECT CONS,EMP_NOM,NOMBRAMIENTO FROM ".$row[0]. " " .$criterio
Esto da un vacio y no lanza nada, alguien que me pueda ayudar con este problema???



Atte: Juan Carmona

Saludos..!!
  #2 (permalink)  
Antiguo 03/01/2012, 03:35
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 18 años, 5 meses
Puntos: 62
Respuesta: Duda sobre consulta de mysql en php

haz un:
Código PHP:
Ver original
  1. echo $sql

copialo y pegalo en la consola de mysql para debuggear si estas haciendo bien la consulta
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 03/01/2012, 04:29
Avatar de AsderPunk  
Fecha de Ingreso: agosto-2010
Mensajes: 39
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda sobre consulta de mysql en php

Si estaba mal en mi consulta y ya lo solucioné jeje gracias, pero ahora no se como hacerle para que a esa consulta realizarle una segunda consulta, ejemplo:

+------------------+--------------------------+--------------------------------+
| $res_sql["CONS"] | $res_sql["NOMBRAMIENTO"] | $res_sql["EMP_NOM"] |
+------------------+--------------------------+--------------------------------+
| 1 | MOZO DE OFICINAS | MARTINEZ ARTIAGA JOSE |
| 1 | JEFE DE GRUPO | FIDENCIO MARTINEZ JOSE IVAN |
| 7 | PERITO LEGISTA | MARTINEZ ALEMAN JOSE JESUS |
| 8 | MOZO DE OFICINAS | MARTINEZ GORDIAN MARTINLEONEL |
+------------------+--------------------------+--------------------------------+

Y de este resultado obtener solo los que tienen el nombramiento de JEFE DE OFICINAS

Alguna idea ??

gracias por tu tiempo..xD

Última edición por AsderPunk; 03/01/2012 a las 04:30 Razón: Ortografia
  #4 (permalink)  
Antiguo 03/01/2012, 04:32
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 18 años, 5 meses
Puntos: 62
Respuesta: Duda sobre consulta de mysql en php

Código PHP:
Ver original
  1. $criterio = " WHERE EMP_NOM LIKE '%".$cons."%'  AND NOMBRAMIENTO LIKE 'JEFE DE OFICINAS'";

SQL de toda la vida
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #5 (permalink)  
Antiguo 03/01/2012, 04:39
Avatar de AsderPunk  
Fecha de Ingreso: agosto-2010
Mensajes: 39
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda sobre consulta de mysql en php

ok. pero en el formulario que tengo no es necesario poner todos los campos, pues me pidieron que si solo se sabían el apellido paterno y nombre con eso tenia que buscar y como haría la consulta si no se manda el nombramiento??

Código PHP:
//$nombramiento = ''
$criterio " WHERE EMP_NOM LIKE '%".$cons."%'  AND NOMBRAMIENTO LIKE '%".$nombramiento."%'"
  #6 (permalink)  
Antiguo 03/01/2012, 04:42
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 18 años, 5 meses
Puntos: 62
Respuesta: Duda sobre consulta de mysql en php

¿a ver pero que quieres buscar?
1.- el tipo de nombramiento de ese usuario.
2.- todas las personas que tengan el mismo nombramiento del usuario introducido.

¿?
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #7 (permalink)  
Antiguo 03/01/2012, 04:44
Avatar de AsderPunk  
Fecha de Ingreso: agosto-2010
Mensajes: 39
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda sobre consulta de mysql en php

Te paso el codigo completo para que le des un vistazo:

Código PHP:

extract
($_GET);

  if(
is_array($tablas))
  {
    
$arreglo "";
    
// Obtiene las tablas a las cuales se les hará la consulta
    
foreach($tablas as $valor)
    {
        
$arreglo $arreglo $valor ",";
        
$total_tbl++;
    }
    
//Declara variables con el criterio a buscar
    
$cons "";
    
$cons2 "";
    if((
$_GET['apaterno']!=="")) { $cons $cons $_GET['apaterno'] . " "; }
    if((
$_GET['amaterno']!=="")) { $cons $cons $_GET['amaterno'] . " "; }
    if((
$_GET['nombres']!=="")) { $cons $cons $_GET['nombres']; }
    if((
$_GET['nombramiento']!=="")) { $cons2 $cons2 $_GET['nombramiento']; }

    
// Obtiene todas las tablas de la base de datos
    
$sql_tot "SHOW TABLES FROM pgje"
    
$result mysql_query($sql_tot); 
    while (
$row mysql_fetch_array($result))  
    {
        
// Esto es para comparar las seleccionadas con el foreach vs while
        
if (strpos($arreglo,$row[0]) !== false)
        {
            
/*echo "<script>alert('arreglo=".$arreglo." /tablas=".$row[0]."');</script>";*/
            
$suma++;
            echo 
"<script>alert('suma=".$suma." /tablas=".$total_tbl."');</script>";
            if(
$suma $total_tbl)
            {
                
// REALIZA SQL CON UNION
                
$sql[] = "SELECT `".$row[0]."`.`CONS`,`".$row[0]."`.`EMP_NOM`,`".$row[0]."`.`NOMBRAMIENTO` FROM `".$row[0]."` WHERE `".$row[0]."`.`EMP_NOM` LIKE '%".$_GET['apaterno']."%' UNION ";
                echo 
"<br><br>";
            }
            else
            {
                
// REALIZA SQL SIN UNION
                
$sql[] = "SELECT `".$row[0]."`.`CONS`,`".$row[0]."`.`EMP_NOM`,`".$row[0]."`.`NOMBRAMIENTO` FROM `".$row[0]."` WHERE `".$row[0]."`.`EMP_NOM` LIKE '%".$_GET['apaterno']."%'";
                echo 
"<br><br>";
                                
                
/* FOREACH ES PARA SACAR EL VALOR DE $sql[] Y PASARLO A LA VARIABLE $valr */
                
foreach($sql as $valr)
                {
                    
$alo $alo $valr;
                } 
                
// $alo es el string que tiene toda la consulta $sql[]
                
echo "IMPRIMIR ALO:<BR><BR>";
                echo 
$alo;                
                
$algo mysql_query($alo,$conexion);
                while(
$res_sql mysql_fetch_array($algo))
                {
                              echo 
"<table width='600'><TR><TD>".$res_sql2["CONS"]."</td></tr>";
                              echo 
"<TR><TD>".$res_sql2["NOMBRAMIENTO"]."</td></tr>";
                              echo 
"<TR><TD>".$res_sql2["EMP_NOM"]."</td></tr></table>";
                            }
                          }
                        }
                      }
                    } 

No es asi que digamos un super codigasso pero si me hace lo que necesito jeje.

Saludos
  #8 (permalink)  
Antiguo 03/01/2012, 04:46
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 18 años, 5 meses
Puntos: 62
Respuesta: Duda sobre consulta de mysql en php

a ver ¿pero si no me has contestado lo que te he preguntado como quieres que te ayude?
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #9 (permalink)  
Antiguo 03/01/2012, 04:49
Avatar de AsderPunk  
Fecha de Ingreso: agosto-2010
Mensajes: 39
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda sobre consulta de mysql en php

Sorry eske antes de que viera tu pregunta estaba pegando el codigo jeje.

Amm ps de mi base de datos que tiene 6 tablas en todas suben diferente informacion pero estan tienen campos en comun como consecutivo, nombramiento y nombre del empleado, lo que necesito es ver en cada tabla la informacion que se le solicite, usando como parametros esos tres campos.
  #10 (permalink)  
Antiguo 03/01/2012, 04:53
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 18 años, 5 meses
Puntos: 62
Respuesta: Duda sobre consulta de mysql en php

tienes 2 opciones hacer una query a una tabla y cogiendo esos parametro hacer otras querys a las demás, ejemplo:

select id, usuario from tabla01 where ...
select * from tabla02 where id = $tabla01['id'];
select * from tabla03 where id = $tabla01['id'];

o hacer una join de tablas

http://dev.mysql.com/doc/refman/5.0/en/join.html
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #11 (permalink)  
Antiguo 03/01/2012, 05:09
Avatar de AsderPunk  
Fecha de Ingreso: agosto-2010
Mensajes: 39
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda sobre consulta de mysql en php

Pero en el codigo que tengo donde lo pondría???

He estado haciendo algunos cambios pero nadamas no me sale, ps se lo he intentado poner de bajo de cuando realizo la consulta pero se repite el doble de veces y no me manda ningún resultado.

Disculpa mi inexperiencia...=)
  #12 (permalink)  
Antiguo 03/01/2012, 05:18
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 18 años, 5 meses
Puntos: 62
Respuesta: Duda sobre consulta de mysql en php

es que lo haces mal ya que hace un UNION por lo tanto te duplicaran los datos, tienes que hacer una JOIN o poder un distinct para quitar los duplicados.

http://dev.mysql.com/doc/refman/5.0/...imization.html
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #13 (permalink)  
Antiguo 03/01/2012, 05:45
Avatar de AsderPunk  
Fecha de Ingreso: agosto-2010
Mensajes: 39
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda sobre consulta de mysql en php

Ok. Gracias por los Links, estamos trabajando duro para este codigo jeje
disculpa las molestias.

Saludos..!!
  #14 (permalink)  
Antiguo 03/01/2012, 05:48
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 18 años, 5 meses
Puntos: 62
Respuesta: Duda sobre consulta de mysql en php

un último consejo es que separes el código y la presentación, ejemplo:
Código PHP:
Ver original
  1. <?php
  2. //tu churro de código de php
  3. include('plantilla.tpl');
  4. ?>

plantilla.tpl
Código HTML:
Ver original
  1. <?php foreach($variable as $v): ?>
  2. <tr><td><?=$v?></td></tr>
  3. <?php endforeach ?>
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #15 (permalink)  
Antiguo 03/01/2012, 08:01
Avatar de AsderPunk  
Fecha de Ingreso: agosto-2010
Mensajes: 39
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda sobre consulta de mysql en php

Gracias por tu ayuda..!!

Etiquetas: buscar_cadena, consultas_en_bd, formulario, like_sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:48.