Foros del Web » Programando para Internet » PHP »

como obtengo los valores de una comparacion de 2 tablas.

Estas en el tema de como obtengo los valores de una comparacion de 2 tablas. en el foro de PHP en Foros del Web. De esta forma hago la seleccion: ------------------------------- Código PHP: $usuario = $_REQUEST [ 'usua' ]; $sql = "SELECT * FROM aplicaciones,accesos WHERE aplicaciones.acceso='S' and accesos.usuario<>'$usuario'" ;    $res = mysql_query ( $sql , ...
  #1 (permalink)  
Antiguo 14/12/2006, 07:57
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 19 años, 1 mes
Puntos: 1
como obtengo los valores de una comparacion de 2 tablas.

De esta forma hago la seleccion:
-------------------------------
Código PHP:
$usuario=$_REQUEST['usua'];
$sql="SELECT * FROM aplicaciones,accesos WHERE aplicaciones.acceso='S' and accesos.usuario<>'$usuario'";   
$res=mysql_query($sql,$db) or die(mysql_error()); 
he intentado hacer lo siguiente:
Código PHP:
while($resu mysql_fetch_array($res)) 
   {
      
$ide=$resu['aplicaciones.ID'];
      
$apli=$resu['aplicaciones.aplicacion'];
      
$desc=$resu['aplicaciones.descripcion'];
      
$acces=$resu['aplicaciones.acceso'];
   } 
aqui no me muestra las aplicaciones

Código PHP:
while($resu mysql_fetch_array($res)) 
   {
      
$ide=$resu.aplicaciones['ID'];
      
$apli=$resu.aplicaciones['aplicacion'];
      
$desc=$resu.aplicaciones['descripcion'];
      
$acces=$resu.aplicaciones['acceso'];      
   } 
Y aqui me da error..

¿Cual es la forma correcta de recuperacion de datos? les agradecere su ayuda

Ah.. lo que pretendo mostrar son las aplicaciones que no estan en accesos.
  #2 (permalink)  
Antiguo 14/12/2006, 08:22
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: como obtengo los valores de una comparacion de 2 tablas.

Mira a ver si así te vale:

Código PHP:
while($resu mysql_fetch_array($res)) 
   {
      
$ide=$resu['ID'];
      
$apli=$resu['aplicacion'];
      
$desc=$resu['descripcion'];
      
$acces=$resu['acceso'];      
   } 
Siempre que tengas dudas de cómo se almacenan los campos de una consulta a una (o más) tabla mysql, sobre su array correspondiente, puedes verlo con:

Código PHP:
echo '<pre>';
print_r($resu);
echo 
'</pre>'

Última edición por holahola; 14/12/2006 a las 08:36 Razón: aclaración final
  #3 (permalink)  
Antiguo 14/12/2006, 08:58
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: como obtengo los valores de una comparacion de 2 tablas.

Hmmm. ninguna de esas formas va a funcionar, necesitas recuperar las columnas como un arreglo numerico o usar aliases en los nombres cualificados y recuperar los registros con el alias.

Código:
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
las dos formas de recupara cada tupla de la tabla:
Código PHP:
// recuperar como arreglo con indice numerico
$sqlQuery "table1.field AS foo, table2.field AS bar FROM table1, table2";
$result mysql_query($sqlQuery);

while (
$row mysql_fetch_array($resultMYSQL_NUM)) {
   echo 
$row[0];
   echo 
$row[1];

// o recuperarlo con arreglo asociativo 

while ($row mysql_fetch_array($resultMYSQL_ASSOC)) {
   echo 
$row['foo'];
   echo 
$row['bar'];

Para detalles consultar: http://www.php.net/manual/en/functio...etch-array.php
__________________
Saludos!
Mty-NL..
  #4 (permalink)  
Antiguo 14/12/2006, 10:08
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 19 años, 1 mes
Puntos: 1
Tratare de explicarlo.............

Tabla: aplicaciones
ID aplicación descripción acceso
1 informática acceso a departamento de informática S
2 requerimiento acceso a solicitudes de requerimiento S
3 rhumanos acceso a departamento de R. Humanos S



Tabla: accesos
ID usuario programa
1 german informática

Deseo hacer selección de todas aquellas aplicaciones que no estén en accesos


Es decir seleccionar para mostrar es:
ID aplicación descripción acceso
2 requerimiento acceso a solicitudes de requerimiento S
3 rhumanos acceso a departamento de R. Humanos S

Las alternativas que he probado no me han funcionado.
¿por favor necesito su ayuda?
hay que tener en cuenta:
debo seleccionar solo aquellas aplicaciones que tengan acceso S para el usuario seleccionado.

Última edición por [email protected]; 14/12/2006 a las 10:15 Razón: completar informacion
  #5 (permalink)  
Antiguo 14/12/2006, 10:16
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: como obtengo los valores de una comparacion de 2 tablas.

Los nombres de los campos "aplicación" y "descripción" llevan acento????

Lo digo porque en tu primer mensaje de este hilo no lo pones.
  #6 (permalink)  
Antiguo 14/12/2006, 10:33
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Tratare de explicarlo.............

Cita:
Iniciado por [email protected] Ver Mensaje

hay que tener en cuenta:
debo seleccionar solo aquellas aplicaciones que tengan acceso S para el usuario seleccionado.
Esto no lo entiendo ya que en la select de tu primer mensaje pones
and accesos.usuario<>'$usuario'";
Y aquí pones para el usuario seleccionado. (Distinto (no igual)).
  #7 (permalink)  
Antiguo 14/12/2006, 11:00
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 19 años, 1 mes
Puntos: 1
Re: como obtengo los valores de una comparacion de 2 tablas.

no llevan acento.
y debo seleccionar:
todas aquellas aplicaciones que no existan para el usuario que esta en accesos.
teniendo en consideracion que debo mostrar solo aquellas aplicaciones cuyo acceso=S.
  #8 (permalink)  
Antiguo 14/12/2006, 11:05
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: como obtengo los valores de una comparacion de 2 tablas.

¿Y has probado lo que viene en el resultado de la select con....

Código PHP:
echo '<pre>';
print_r($resu);
echo 
'</pre>'
Para ver como vienen los nombres de los campos....
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 12:10.