Foros del Web » Programando para Internet » PHP »

select con condicion

Estas en el tema de select con condicion en el foro de PHP en Foros del Web. Hola amigos, mi duda es media sonza ,pero estoy a mil , y se me bloqueo la cabeza.... . Lo que necesito es simple , ...
  #1 (permalink)  
Antiguo 03/08/2005, 13:39
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 7 meses
Puntos: 3
select con condicion

Hola amigos, mi duda es media sonza ,pero estoy a mil , y se me bloqueo la cabeza.... . Lo que necesito es simple , seleccionar de una base de datos que tiene dos tablas lo sig. : (los nombres de los campos de las tablas son iguales). En una tabla tengo valor 1 y 0 para cada campo , de esta quiero seleccionar solo los que tienen 1, y despues dependiendo de eso ir a la otra tabla y buscar ese valor en esta (tiene los nombres de cada valor). Y despues solo mostrar los nombres de los que tienen como valor 1.
Espero ser claro y que me puedan ayudar.
Estuve cerca 2 veces pero como estoy con el tema del diseño me estoy quedando corto de time para todo y aparte la cabeza se seca cada vez mas rapido =) . GRACIAS
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #2 (permalink)  
Antiguo 03/08/2005, 15:01
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Que motor de bases de datos usas?
Como se llaman los campos de tus tablas?
  #3 (permalink)  
Antiguo 03/08/2005, 15:15
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 13 años, 6 meses
Puntos: 0
tienes que ver si tu DBMS soporta consultas anidadas.
  #4 (permalink)  
Antiguo 03/08/2005, 15:24
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 7 meses
Puntos: 3
base de datos -------- mysql
tabla opusers : que es el que tiene los campos : sugln, sugsj, cumples, camdago, encsist, usuario, id . Cada uno tiene un valor 0 ó 1, que depende de una funcionalidad asignada a cada usuario. La modificacion del valor lo hago seleccionando el usuario y dandole los valores a cada campo desde un formulario simple.
tabla opusers_name : tiene los mismos campos pero como valor tiene el nombre de cada campo por ej : sugln - Buzon de Sugerencias de Lenceria ; sugsj - Buzon de Sugerencias de Semijoyas.
La finalidad de lo que busco es hacer que cada usuario al loguear levante las opciones permitidas en la tabla opusers ( 0.no - 1.si) y me muestre los titulos . tengo todo en condicions , pero no logro seleccionar solamente los campos con 1 para despues mostrar esos solamente. GRACIAS
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #5 (permalink)  
Antiguo 03/08/2005, 15:30
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 13 años, 6 meses
Puntos: 0
Que version de MySQL?
  #6 (permalink)  
Antiguo 03/08/2005, 15:37
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Te recomiendo una estructura de tablas asi:

Tabla usuarios
--------------
id_usuario
nombre_usuario
mas campos...


Tabla opciones
--------------
id_opcion
nombre_opcion
mas campos....


tabla opciones_usuario (guarda solo las opciones activas para cada usuario)
----------------------
id_usuario
id_opcion


Luego harias una consulta asi:

select nombre_opcion from opciones_usuario
inner join usuarios on usuarios.id_usuario=opciones_usuario.id_usuario
inner join opciones on opciones.id_opcion=opciones_usuario.id_opcion
where id_usuario=xxxx

que te mostraria las opciones de cada usuario.
  #7 (permalink)  
Antiguo 03/08/2005, 15:49
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 7 meses
Puntos: 3
Gracias Claudio, mañana viernes me meto de cabeza en esto, me parece que ademas de ayudamre me hiciste una limpieza de scripts en la cabeza !!!!! =).
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #8 (permalink)  
Antiguo 04/08/2005, 12:48
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 7 meses
Puntos: 3
Una pregunta Claudio. Como armo la tabla opciones_usuario desde un formulario. Ya la arme a mano pero me surgio esa duda para poder automatizar el sistema.
Gracias.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #9 (permalink)  
Antiguo 04/08/2005, 14:36
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Como le asignas al usuario las opciones que tiene disponible? Lo hace él, lo haces tú o alguien que administre el sitio? Puedes mostrar en pantalla un select con usuarios y checkboxes para las opciones o al reves.
  #10 (permalink)  
Antiguo 04/08/2005, 14:55
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 7 meses
Puntos: 3
ok, eso ya lo comprendi , armo un form para el admin para que decida que puede ver cada usuario. Estoy probando lo que me pasaste y no le doy por ahora, hago la consulta y me sale el die con mi mensaje de que no se puede hacer la consulta. Estoy siguiendo unos tutos porque para mi esto de inner join es nuevo.
Por ahi me podes sacar algunas dudas. Tengo el siguiente formato :
me logueo con una pagina www.estrategiazen.com/private (usuario radar pass radar , por si queres darte una vuelta) desde ahi la idea es que en la redireccion solamente me muestre las opciones que cada usuario tenga asignada. Los botones por ahora van a mano y cuando hago click en alguno en otra parte me salen las opciones de cada seccion para cada usuario. Por ej: selecciono encuestas y a la derecha me salen las encuestas que puede visualizar el cliente (usuario). Despues muestro cualquiera que eliga abajo del encabezado en un iframe ( eso viene despues , ya vere la manera) .
La duda en realidad es : tengo la tabla con los usuarios (users), la tabla opciones_vd (nombre_opcion, titulo_opcion, id_ocion) y la tabla usuario_opcion (id_usuario, id_opcion, id) y el select que intento es este :
$usuarioid= $_SESSION['usuario_id'] ;

mysql_connect("localhost","usuario","pass") or die("No se pudo conectar a la Base de datos") or die(mysql_error());
mysql_select_db("zen_vanesaduran") or die(mysql_error());

$opciones_consulta =mysql_query("select nombre_opcion from opcion_usuario
inner join users on users.usuario=opcion_usuario.id_usuario
inner join opciones_vd on opcion.id_opcion=opcion_usuario.id_opcion
where id_usuario=".$usuarioid."")
or die("No se pudo realizar la consulta a la Base de datos");
// pruebas de selects
/*while($row = mysql_fetch_array($opciones_consulta)) {
printf("<tr><td class='pequenia_gris' bgcolor='#f7f7f7'>&nbsp;%s</td>
<td class='pequenia_gris' bgcolor='#f7f7f7'>&nbsp;%s</td>",
$row["id_usuario"],$row["id_opcion"]);
}*/
mysql_free_result($opciones_consulta);
mysql_close();
como muestro los resultados y porque no me hace la consulta.
Sigo peleando el error que debe estar en el select y seguro lo encuentro, despues como lo muestro? no se, ya vere la forma de actualizar la pagina y en la tabla de la derecha mostrar las opciones permitidas con algunos if_s (no se si habra alguna forma mas sencilla).
La idea es que una vez terminado todo esto lo pueda postear para que cualquiera pueda utilizarlo como un sitema automatico de funcionalidades.
GRACIAS .... y a Claudiovega 1000 GRACIAS.....
Soy flashero, pero hay que crecer y mejorar y conformar clientes, por eso me quiero convertir en php adict tambien !!!!! =)
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #11 (permalink)  
Antiguo 04/08/2005, 15:30
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 7 meses
Puntos: 3
ya me salio el select multiple !!!! estaba mal el select !!!
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
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 09:16.