Foros del Web » Programando para Internet » PHP »

consulta en mysql y php

Estas en el tema de consulta en mysql y php en el foro de PHP en Foros del Web. hola buen dias... les pido su ayuda para que me ayuden con un problema que tengo y aun no he podido solucionar.. intento hacer una ...
  #1 (permalink)  
Antiguo 14/04/2016, 19:18
 
Fecha de Ingreso: junio-2015
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
consulta en mysql y php


hola buen dias...


les pido su ayuda para que me ayuden con un problema que tengo y aun no he podido solucionar..

intento hacer una consulta por fechas en mysql utilizando between con varias condiciones.

mi código es el siguiente

("select *from de notas where fecha between '15-03-2016' and '16-03-2016' and tecnico='Victor' and estatus='OK' ")

la consulta la realiza correctamente pero solo me mustra un resultado cuando me debe de mostrar 5 resultados.. pero si quito 1 condicion AND si me muestra los 5 resultados alparecer mi problema que tengo bastantes AND... pido su ayuda para poder resolver este problema.
  #2 (permalink)  
Antiguo 14/04/2016, 20:35
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: consulta en mysql y php

a simpre vista esto esta mal:

("select *from de notas

como se llama la tabla? que hace eso separado? notas...denotas....de_notas ¿?
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 14/04/2016, 20:52
 
Fecha de Ingreso: junio-2015
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: consulta en mysql y php

mi tabla se llama notas y contiene los siguientes datos:
fecha (contiene la fecha de entrada)
nom_tecnico (contiene al tecnico que reparo)
estatusfinal (contiene OK que significa reparado)

solo deseo realizar una consulta donde me muestre los registros entre esas fechas pero con las condiciones que el el tecnico sea VICTOR y que tengan el estatusfinal OK

select *from notas where fecha between '15-03-2016' and '16-03-2016' and nom_tecnico='VICTOR' and estatusfinal='OK'
  #4 (permalink)  
Antiguo 14/04/2016, 21:30
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 8 años, 9 meses
Puntos: 2
Respuesta: consulta en mysql y php

Para cualquier consulta, generalmente SELECT FROM WHERE AND se colocan en mayúsculas para evitar confusiones con demás elementos de la consulta.

Ahora el * lleva espacios entre SELECT y FROM, algo así
Código PHP:
Ver original
  1. SELECT * FROM

Luego, qué es eso de between, que yo sepa no existe eso para realizar consultas

Después del valor que sólo se buscará, se especifíca qué, indicado con un = seguido del valor entre comillas simples.

Otra cosa debes especificar en la estructura del campo fecha, que el tipo sea en formato DATE, si no no sabrá que leer

En pocas palabras, y según lo que explícas, la consulta debería quedar algo así
Código PHP:
Ver original
  1. SELECT * FROM notas WHERE fecha = '15-03-2016' AND fecha = '16-03-2016' AND nom_tecnico = 'VICTOR' AND estatusfinal = 'OK'

Saludos
  #5 (permalink)  
Antiguo 15/04/2016, 01:45
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: consulta en mysql y php

Cita:
Iniciado por Silenn Ver Mensaje
Para cualquier consulta, generalmente SELECT FROM WHERE AND se colocan en mayúsculas para evitar confusiones con demás elementos de la consulta.

Ahora el * lleva espacios entre SELECT y FROM, algo así
Código PHP:
Ver original
  1. SELECT * FROM
Con esto estoy de acuerdo, pero incluyo el BETWEEN.

Cita:
Iniciado por Silenn Ver Mensaje
Luego, qué es eso de between, que yo sepa no existe eso para realizar consultas

Después del valor que sólo se buscará, se especifíca qué, indicado con un = seguido del valor entre comillas simples.

Otra cosa debes especificar en la estructura del campo fecha, que el tipo sea en formato DATE, si no no sabrá que leer

En pocas palabras, y según lo que explícas, la consulta debería quedar algo así
Código PHP:
Ver original
  1. SELECT * FROM notas WHERE fecha = '15-03-2016' AND fecha = '16-03-2016' AND nom_tecnico = 'VICTOR' AND estatusfinal = 'OK'

Saludos
Hola Silenn,

BETWEEN es para localizar algo entre dos valores, esa parte de la consulta la tiene bien chuk320, pero con alguna salvedad, sería así:

Código SQL:
Ver original
  1. SELECT * FROM notas WHERE fecha BETWEEN '2016-03-15' AND '2016-03-16' AND nom_tecnico='VICTOR' AND estatusfinal='OK'

Las fechas en MySQL son en formato AAAA-MM-DD, evidentemente, el tipo de campo en este caso debe ser DATE y también debes tener en cuenta el uso de acentos, mayúsculas y minúsculas, ya que no es lo mismo esto:

Código SQL:
Ver original
  1. SELECT * FROM notas WHERE fecha BETWEEN '2016-03-15' AND '2016-03-16' AND nom_tecnico='VICTOR' AND estatusfinal='OK'

Que esto:

Código SQL:
Ver original
  1. SELECT * FROM notas WHERE fecha BETWEEN '2016-03-15' AND '2016-03-16' AND nom_tecnico='Víctor' AND estatusfinal='ok'

Espero que te sirva...
  #6 (permalink)  
Antiguo 15/04/2016, 05:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: consulta en mysql y php

Cita:
Iniciado por Silenn Ver Mensaje
(..)

Luego, qué es eso de between, que yo sepa no existe eso para realizar consultas

(...)
En pocas palabras, y según lo que explícas, la consulta debería quedar algo así
Código PHP:
Ver original
  1. SELECT * FROM notas WHERE fecha = '15-03-2016' AND fecha = '16-03-2016' AND nom_tecnico = 'VICTOR' AND estatusfinal = 'OK'
@Silenn: El BETWEEN ha existido en el SQL desde siempre. Es parte del SQL estándar, y lo puedes encontrar en todos los manuales de todos los DBMS, y también en todos los tutoriales (hasta los más básicos) referidos a SQL.
Es muy raro que habiendo usado SQL nunca hayas visto esa cláusula.

SQL Server: BETWEEN (Transact-SQL)

MySQL:13.3.2 Comparison Functions and Operators

PosgreSQL:9.2. Comparison Operators

IBM DB2: Predicado BETWEEN

Respecto a tu consulta de ejemplo, ten en cuenta que cuando usas AND para poner más de una condición en el WHERE, el AND hace que ambas condiciones sean obligatorias simultáneamente, por lo que si pones valores diferentes para comparar sobre el mismo campo eso no devolverá datos, ya que una misma columna en un mismo registro no puede tener valores distintos...

Código MySQL:
Ver original
  1. SELECT * FROM notas
  2. WHERE fecha = '15-03-2016' AND fecha = '16-03-2016'  # Esta condicion doble es de cumplimiento imposible
  3.     AND nom_tecnico = 'VICTOR' AND estatusfinal = 'OK'


Por otro lado, por favor tengan en cuenta que las FECHAS en MySQL se manejan en campos DATE, los cuales responden al formato "AAAA-MM-DD", y no como aparece en este ejemplo.
Si la tabla tiene los campos como VARCHAR eso está MAL y una query con busqueda por rango, NO va a funcionar bien. Generará datos erróneos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql
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 14:34.