Foros del Web » Programando para Internet » PHP »

Consultas Múltiples WHERE

Estas en el tema de Consultas Múltiples WHERE en el foro de PHP en Foros del Web. Necesito hacer consultas en Mysql desde PHP para generar un excel, puedo mostrarlo en una página pero una vez que trato de generar el excel ...
  #1 (permalink)  
Antiguo 25/02/2009, 01:14
 
Fecha de Ingreso: marzo-2007
Mensajes: 6
Antigüedad: 17 años, 1 mes
Puntos: 0
Consultas Múltiples WHERE

Necesito hacer consultas en Mysql desde PHP para generar un excel, puedo mostrarlo en una página pero una vez que trato de generar el excel está vacio.

Si realizo las consultas individuales logro hacerlo pero necesito la combinación de las consultas para generar el excel

adjunto el código

Código PHP:
<?php require_once("excel.php");
require_once(
"excel-ext.php");

$nacimiento$_REQUEST['nacimiento'];
$fecha$_REQUEST['fecha'];
$fecha1$_REQUEST['fecha1'];

// Consultamos los datos desde MySQL
$conEmp mysql_connect("localhost""usuario""password");
mysql_select_db("base_datos"$conEmp);

$queEmp "SELECT * FROM users WHERE nacimiento LIKE '$nacimiento' AND signup_date>='$fecha' AND signup_date<='$fecha1' ORDER BY signup_date ASC";

$resEmp mysql_query($queEmp$conEmp) or die(mysql_error());
$totEmp mysql_num_rows($resEmp);

// Creamos el array con los datos
while($datatmp mysql_fetch_assoc($resEmp)) {
    
$data[] = $datatmp;
}
// Generamos el Excel 
createExcel("Usuarios_porfechaEdad.xls"$data);
exit;
?>
  #2 (permalink)  
Antiguo 25/02/2009, 01:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consultas Múltiples WHERE

Veamos primero el problema MySQL, olvidándonos de PHP (en este foro no debemos escribir otro código que no sea el SQL o el específico de MySQL).
Te haré unas preguntas:
¿cuándo funciona? ¿es cuando sólo buscas así?
SELECT * FROM users WHERE nacimiento LIKE '$nacimiento' ORDER BY signup_date ASC

¿Si buscas esto funciona?
SELECT * FROM users WHERE signup_date>='$fecha' AND signup_date<='$fecha1' ORDER BY signup_date ASC

Deberías probar usando la consulta directamente en MyQL con datos como estos en el PHP. Si funciona con datos como estos (busca el dato de alguien para que haya coincidencia; yo he puesto unas fechas de nacimiento y de signup_date inventadas), el problema tal vez sea el paso de valores mediante las variables $fecha y $fecha1. Esas variables deben cargar una fecha con el siguiente formato: año con 4 dígitos, mes con dos dígitos y día con dos dígitos, algo así como 1999/09/04, y no sé cómo las introduces.

SELECT * FROM users WHERE nacimiento LIKE '1980/02/05' and signup_date>='2007/01/05' AND signup_date<='2009/01/12' ORDER BY signup_date ASC

Primero detecta el problema y luego veremos la solución.
  #3 (permalink)  
Antiguo 25/02/2009, 12:26
 
Fecha de Ingreso: marzo-2007
Mensajes: 6
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Consultas Múltiples WHERE

OK, gracias por la respuesta, las consultas funciona separadas de la siguiente manera

Este funciona
SELECT * FROM users WHERE nacimiento LIKE '$nacimiento'

Este funciona
SELECT * FROM users WHERE signup_date>='$fecha' AND signup_date<='$fecha1' ORDER BY signup_date ASC

Ambas consultas están en páginas diferentes, pero me pidieron unificarlas, es decir en la primera busco usuarios por determinada fecha de nacimiento, y en la siguiente usuario registrados entre determinadas fechas.

La búsqueda sería los usuarios con x fecha nacimiento del periodo x al periodo y.

Trabajo en dreamweaver al montar la consulta con el asistente del programa me funciona bien, muestra los registros, pero debo generar un archivo descargable de excel, es acá donde la consulta me devuelve un valor vacio.

Separadas funcionan bien con el generador del excel, juntas no.

Espero poder explicarme bien, igual reviso lo de las variables, Agradezco tu respuesta.
  #4 (permalink)  
Antiguo 25/02/2009, 12:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consultas Múltiples WHERE

¿Y qué ocurre cuando haces una consulta como esta en el generador de excel?
SELECT * FROM users WHERE nacimiento LIKE '1980/02/05' and signup_date>='2007/01/05' AND signup_date<='2009/01/12' ORDER BY signup_date ASC

Pon en lugar de las fechas que te he puesto yo otras para las que sepas que hay registros (siempre con el formato YYYY/MM/DD, es decir '2008/03/15'. Si eso funciona, el problema es el modo en que pasas o no los datos de las variables o el formato en que los pasas. Pero primero comprueba esto.
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 02:22.