Foros del Web » Programando para Internet » PHP »

problema con longitud de valores seleccionados

Estas en el tema de problema con longitud de valores seleccionados en el foro de PHP en Foros del Web. Buenas!! explico, tengo la base funcionando y todo perfecto tengo varios listado pero ahora me surge que necesito listar solo los registros que correspondan al ...
  #1 (permalink)  
Antiguo 17/03/2009, 21:47
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Pregunta problema con longitud de valores seleccionados

Buenas!!

explico, tengo la base funcionando y todo perfecto
tengo varios listado pero ahora me surge que necesito listar solo los registros que correspondan al mismo grupo del jefe de grupo

mi codigo para zona es este:

Código:
<?
$buscador=$_POST[buscarug];
// $foo = 'yucg1abcd12';   // Muestra de Clave
   include("conec.php");
   $link=Conectarse();
$bar = substr($buscador, 0, 3); //$bar = 'yuc'
$query = mysql_query("SELECT * FROM archivo WHERE rug LIKE '$bar%' ORDER BY nombre, seccion"); //Busca los Elementos de la Delegacion
?>
ahora como esta en el codigo el grupo viene en especificado en la clave con "G" el caso es que los numeros van de 1 a 999 por ejemplo G123, G23 y G7

eh modificado el codigo asi:

Código:
<?
$buscador=$_POST[buscarug];
// $foo = 'yucg1abcd12';   // Muestra de Clave
   include("conec.php");
   $link=Conectarse();
$bar = substr($buscador, 3, 3); //$bar = 'G1A' lo que significa que esta mal porque solo necesito G1
$query = mysql_query("SELECT * FROM archivo WHERE rug LIKE '$bar%' ORDER BY nombre, seccion"); //Busca los Elementos de la Delegacion
?>
mi problema es que me toma 3 caracteres si cambio el numero igual y solo toma los caracteres que se limitan

la clave de mi coordinador viene via post con la combinacion igual YUCG7ABCD12
solo me interesa el "G" con su numero de grupo pero con consigo separarlos o mejor dicho la manera de poder hacer la comparacion para el listado

Alguien que me pueda orientar??

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #2 (permalink)  
Antiguo 18/03/2009, 02:59
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: problema con longitud de valores seleccionados, Ayuda!

usa preg_replace(). Busca patrones y devuelve el valor que tú quieras reemplazar (sólo tendrías que indicar lo que coincida) te recomiendo que eches un vistazo a la documentacion en la página oficial.

mixed preg_replace ( mixed $patron , mixed $reemplazo , mixed $asunto [, int $limite [, int &$conteo ]] )

$grupo=preg_replace ( '/(G[0-9]{1,3})/', '$1', $buscasdor)
  #3 (permalink)  
Antiguo 18/03/2009, 12:33
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: problema con longitud de valores seleccionados, Ayuda!

buenas!!

muchas gracias, si de hecho lo eh estado intentando pero no encuentro como hacer el seudocodigo :s

mis conocimiento no son muchos y eso no me ayuda mucho, sigo documentandome para intentar resolver mi problema
el dato es que si fuera al principio o al final seria mas facil pero.. es intermedio y variante y eso es lo que complica el caso

cualquier cosa ya comentare que logre hacer

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #4 (permalink)  
Antiguo 18/03/2009, 17:20
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Pregunta Respuesta: problema con longitud de valores seleccionados

buenas!!

pues no funciona... eh realizado los siguientes cambios

recibo la clave, le saco los primeros 4 caracteres que serian "Fijos" osea... que cambian pero que a la vez son el mismo numero de caracteres: ejemplo "YUCG" "QROG" "DFNG"
esto con esto:

Código:
$bar1 = substr($buscador, 0, 4);
y con la opcion que me comentaste sacar los numeros y luego sumarlos para hacer la busqueda de esta manera

Código:
$bar=preg_replace ( '/(G[0-9]{1,3})/', '$1', $buscador);
luego hago lo siguiente:

Código:
$busca = $bar1 . $bar;  // aqui sumo los caracteres y quedaria YUCG1 suponiendo que haya puesto YUCG1JAC190
$query = mysql_query("SELECT * FROM archivo WHERE rug LIKE '$busca%' ORDER BY nombre, seccion"); //Busca con la condicion puesta
el caso es que no funciona

la variable que supuestamente saca el numero esta vacia

alguien me puede orientar??

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #5 (permalink)  
Antiguo 18/03/2009, 18:04
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
De acuerdo Respuesta: problema con longitud de valores seleccionados

buenas!!!


me respondo porque ya encontre la solucion y a lo mejor a alguien mas le pueda servir....

el dato era que tenia que poner toda la secuencia

el formato de busqueda quedo asi

Código:
$bar1 = substr($buscador, 0, 4); //$bar = 'yucg'
$bar=preg_replace ( "/^([a-z]+)G(\d+)([a-z]+)(\d+)$/i", '$2', $buscador);
$prueba = $bar1.$bar;
$query = mysql_query("SELECT * FROM archivo WHERE rug LIKE '$prueba%' ORDER BY nombre, seccion"); //Busca los Elementos de la Delegacion
?>
Gracias a todos los que me respondieron y

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
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 13:45.