Foros del Web » Programando para Internet » PHP »

consulta con variables

Estas en el tema de consulta con variables en el foro de PHP en Foros del Web. Hola. Tengo que hacer una consulta dónde la consulta depende de una variable que corresponderá a uno de los campos de la tabla, es decir, ...
  #1 (permalink)  
Antiguo 03/07/2006, 09:47
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 11 años, 9 meses
Puntos: 1
Pregunta consulta con variables

Hola. Tengo que hacer una consulta dónde la consulta depende de una variable que corresponderá a uno de los campos de la tabla, es decir, cada persona puede conceder citas un día por semana, y en la tabla persona habrá 7 campos correspondientes a los dias de la semana con el dni de la persona.
(El campo estará a 1 si puede conceder citas ese dia y a 0 en caso contrario)

Mi consulta es para ver que personas pueden conceder citas en x fecha. Calculo a que dia de la semana corresponde la fecha y la meto en una variable:

Código:
$diaSemana=date("w",$fecha);

switch ($diaSemana){
	case 0:
	$dia="domingo";
	break;

	case 1:
	$dia="lunes";
	break;

	case 2:
	$dia="martes";
	break;

	case 3:
	$dia="miercoles";
	break;

	case 4:
	$dia="jueves";
	break;

	case 5:
	$dia="viernes";
	break;

	case 6:
	$dia="sabado";
	break;
}
Se me habia ocurrido hacer algo asi:

consulta="select dni from citas where $dia = 1";

Y de este modo me saldrian las personas que conceden citas el día que hay en la variable.

Mi problema es que no me reconoce lo de dentro de la variable, y por consiguiente no me mira las personas que tienen a 1 dicho dia. Hay alguna otra manera de ponerlo para que lo reconozca?
He probado de las siguientes maneras y no lo consigo!

consulta="select dni from citas where '$dia' = 1";
consulta="select dni from citas where " . $dia . "= 1";

en cambio si sustituyo $dia por lunes u otro día, si que puede.
  #2 (permalink)  
Antiguo 03/07/2006, 10:37
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
$consulta="select dni from citas where dia=".$dia;
o

$consulta="select dni from citas where dia=' ".$dia." ' ";
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 03/07/2006, 10:46
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 12 años, 5 meses
Puntos: 1
si $dia es un string es con la ultima opcion que te muestra Azrael666
__________________
Dios es la unica fuente de todo bien.
  #4 (permalink)  
Antiguo 03/07/2006, 10:47
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 12 años, 5 meses
Puntos: 1
comprueba que hace bien el switch y realmente introduce un valor en $dia.
comprueba que en $diaSemana recibes un valor correcto

haz un echo de las variables para comprobarlo
  #5 (permalink)  
Antiguo 03/07/2006, 12:28
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 11 años, 9 meses
Puntos: 1
Ya comprobe lo del switch y lo hace bien. Tambien probe lo de Azrael666 pero sigue sin mirar lo de dentro de la variable, es como si no le pusiese condiciones. Si cambio $dni por cualquier dia de la semana me lo hace correctamente. No hay alguna otra manera de escribir la consulta?
  #6 (permalink)  
Antiguo 03/07/2006, 12:50
 
Fecha de Ingreso: abril-2006
Mensajes: 134
Antigüedad: 11 años, 8 meses
Puntos: 0
Bueno mira no se si puedas decirnos como esta hecha tu tabla es decir en la tabla "citas" tienes verdaderamente un campo de nombre "dia"??? si es asi no se por que no funciona una consulta como esta:

$sql="select C.dni from citas AS C Where(dis = '$dia')";
esto deberia de resultar solo si en tu tabla tienes una campo de nombre dia si no ese es el problema...checalo y nos dices si te funciono ok??
  #7 (permalink)  
Antiguo 03/07/2006, 12:56
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
Cita:
Iniciado por leeann
$consulta="select dni from citas where '$dia' = 1";
$consulta="select dni from citas where " . $dia . "= 1";
Por lo que se puede leer ahi la base de datos lo q tiene son campos llamados lunes, martes, miercoles... hasta el domingo.

Y supongo q sera tipo bit o integer para 0 o 1. Si lo tiene a 1 es q da citas ese dia... y la verdad es q la segunda consulta es la q parece correcta:

$consulta="select dni from citas where ".$dia."= 1";

No llego a ver el problema q pueda haber...

Has hecho un echo $consulta a ver que sale?
  #8 (permalink)  
Antiguo 03/07/2006, 13:41
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 11 años, 9 meses
Puntos: 1
En realidad es como lo dice djreficul. Ya he hecho el echo $consulta y me lo escribe bien. Lo curioso es que supuestamente la consulta está bien echa pero con la variable es como si no hubiese condicion!
Seguiré haciendo pruebas!
gracias a todos!!!
  #9 (permalink)  
Antiguo 04/07/2006, 02:54
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 11 años, 5 meses
Puntos: 0
No tendras otra consulta q te pise la q expones? Es q así sin ver más código resulta complicado determinar por qué la consulta falla... Xq claro tal como está expuesto debería funcionar... Si puedes pon el código fuente y se analiza mejor.
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:07.