Foros del Web » Programando para Internet » PHP »

select con like

Estas en el tema de select con like en el foro de PHP en Foros del Web. hola a todos... el problema que tengo es con un select que contiene like... lo que necesito es seleccionar solamente los registros que contengan en ...
  #1 (permalink)  
Antiguo 04/02/2009, 16:28
 
Fecha de Ingreso: agosto-2008
Mensajes: 173
Antigüedad: 11 años, 6 meses
Puntos: 0
select con like

hola a todos...
el problema que tengo es con un select que contiene like...

lo que necesito es seleccionar solamente los registros que contengan en su campo "tacticos" que es de tipo DATE, los que pertenezcan a enero, febrero, segun sea el caso... pero solo me refiero a 1 mes a la vez..

el formato que tiene mysql en cuanto a DATE es año-mes-dia...

entonces el select que utilizo y no hace lo que quiero es el siguiente, tal vez no este correcto, que es lo mas seguro :

Código PHP:
$meses+=1;
echo 
$buscar="-0".$meses."-";
echo 
$fecha="%".$buscar."%";

$query_Recordset2 "select * from ot_temporal where tacticos like '".$fecha."'
order by ppresup DESC limit 1,1"

$Recordset2 mysql_query($query_Recordset2$conex) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2); 
el limit pues es porque solo quiero escoger un registro a la vez... ya que despues voy eliminando cada registro de la tabla hasta dejarla vacia.
  #2 (permalink)  
Antiguo 04/02/2009, 16:37
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.055
Antigüedad: 13 años, 9 meses
Puntos: 50
Respuesta: select con like

El select genera error o no trae lo que usted quiere que traiga?????

el limit creo que va es con 0,1. hagase un echo del select que se genera para mirar que datos esta trayendo y saber que correcciones hay que hacer.

en la variable fecha que viene exactamente para saber que esta pasando?
  #3 (permalink)  
Antiguo 04/02/2009, 17:07
 
Fecha de Ingreso: agosto-2008
Mensajes: 173
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: select con like

el select no genera error .. simplemente no detecta nada...

en las variables imprime:

buscar: -01-
fecha: %-01-%

y para imprimir el query como le hago?
  #4 (permalink)  
Antiguo 04/02/2009, 17:50
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 18 años
Puntos: 45
Respuesta: select con like

Hola Susan_
Creo que Like no es la mejor opción para lo que buscas, es mucho mejor usar
Date_Format (http://dev.mysql.com/doc/refman/4.1/...on_date-format)
Código sql:
Ver original
  1. SELECT * FROM ot_temporal WHERE DATE_FORMAT(tacticos, '%m') = '02'

Eso devolverá los registros de febrero

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 04/02/2009, 18:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 173
Antigüedad: 11 años, 6 meses
Puntos: 0
hola genetix gracias!.
pero mira me dí cuenta que si lo muestra pero a la 2da vez que corro el sistema..

yo pienso que es debido a esto:..

la tabla original es "OT" y todo lo de esta tabla lo inserto a "ot_temporal"...

entonces la primera vez que ejecuto la pagina que contiene todo este codigo del que estamos hablando, la tabla "ot_temporal" se llena.
y es aqui donde no muestra nada...
pero al ejecutarla por 2da vez... ya arroja el registro (osea que estan dobles) y es solo así que lo muestra!

te copio el codigo para insertar:
Código PHP:
$query_Recordsetinsert="insert into ot_temporal select ot,estado,ppresup, descrip, monto, ftermino, tacticos from ot";
$Recordsetinsert mysql_query($query_Recordsetinsert$conex) or die(mysql_error()); 
que podra ser??

oye y esta linea que me pasaste... para que el mes no sea fijo, tengo que ponerle una variable no?.. pues no me muestra nada .. ni en la segunda corrida...

Código PHP:
SELECT FROM ot_temporal WHERE DATE_FORMAT(tacticos'%m') = '02' 
la cambie asi:

Código PHP:

$meses
=2;

SELECT FROM ot_temporal WHERE DATE_FORMAT(tacticos'%m') = '".$meses."' 
o es por que meses es de tipo int???... deberá ser char???

es lo mas logico que le encuentro...

hola buen dia .. hay alguien por ahi que pueda ayudarme?

='( .

Última edición por GatorV; 05/02/2009 a las 21:34
  #6 (permalink)  
Antiguo 05/02/2009, 20:50
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 7 meses
Puntos: 416
Respuesta: select con like

¿Como obtienes el numero del mes?
  #7 (permalink)  
Antiguo 06/02/2009, 17:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 173
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: select con like

Cita:
Iniciado por Ronruby Ver Mensaje
¿Como obtienes el numero del mes?
hola!!.
el numero de mes lo obtengo ahorita de una variable $meses=1 que se supone que voy a estar incrementando de 1 en 1.. hasta llegar a diiciembre (12)...
  #8 (permalink)  
Antiguo 06/02/2009, 17:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 173
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: select con like

Código PHP:
$meses=1;

$query_Recordsetinsert="insert into ot_temporal (ot,estado,ppresup,descrip,monto,ftermino,tacticos) select ot.ot, ot.estado, ot.ppresup, ot.descrip, ot.monto, ot.ftermino, ot.tacticos from ot";
$Recordsetinsert mysql_query($query_Recordsetinsert$conex) or die(mysql_error());

$query_Recordset2 "select * from ot_temporal where DATE_FORMAT(tacticos,'%m') = '".$meses."' order by ppresup limit 1,1"//ASC porque como agarra el ultimo registro... que empiece de arriba a abajo para que agarre el menor que seria el ultimo, en cuanto a orden.
$Recordset2 mysql_query($query_Recordset2$conex) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2); 
  #9 (permalink)  
Antiguo 10/02/2009, 11:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 173
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: select con like

todavia no puedo resolver este problema... =S
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 10:32.