Foros del Web » Programando para Internet » PHP »

Filtro por empresa...

Estas en el tema de Filtro por empresa... en el foro de PHP en Foros del Web. Necesito que la en este codigo mi usuario solo pueda ver las tablas de su empresa, en este momento me muestra todas las que hay ...
  #1 (permalink)  
Antiguo 11/10/2007, 11:23
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Filtro por empresa...

Necesito que la en este codigo mi usuario solo pueda ver las tablas de su empresa, en este momento me muestra todas las que hay en la base de datos...


Código PHP:
<?
if (strstr($PHP_SELF"/am_modules/"))  die ("Usted no puede accesar este archivo directamente...");

// Genero la fecha para la evaluacion de las 48 hrs [2 dias]

$fechan date("d/m/Y");

 
$f_ni_aa substr($fechan,6,4);
 
$f_ni_mm substr($fechan,3,2);
 
$f_ni_dd substr($fechan,0,2);
 

$hoy=$f_ni_aa.$f_ni_mm.$f_ni_dd;

$sel_sql "SELECT * from am_inspeccion order by ins_folio desc";
$resultado db_query($sel_sql) or die(db_error());


$i=mysql_fetch_array($resultado);
if (
$i){

//---> include idioma
//
  
$config["leng"] = "sp"// Español
  
include_once( "am_modules/contratista/idioma/msg_".check_lang($config["leng"]).".php" );

  
srand((double)microtime()*1000000);

  
draw_header();

if( ! 
$session["logged"] )
{
    
theme_draw_boxlg_TitConINGRESO_ACTIVATE_ERROR"100%" );
    
draw_footer();
    exit;
}
?>
<style type="text/css">
TD {
    font-size : 10px;
    font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
}
</style>
<?
echo"<h3 align=\"center\">Inspecciones realizadas</h3>";

echo 
"<table border=0 width=90%><tr>";
echo 
"<td></td><td>Folio</td><td>Fecha</td><td>Empresa</td><td>Ingresado por </td><td>Estado</td></tr>";

while(
$i=mysql_fetch_array($resultado)){

echo 
"<td><a href=\"contratista.php?id_insmod=$i[0]\" target=\"parent\"><img src=\"am_modules/downloads/derec.gif\" width=16 height=16 alt=\"click\" border=0 align=left></a></td>";
echo 
"<td>$i[0]</td>";


$f_fecing  substr($i["ins_fecing"],6,2)."/".substr($i["ins_fecing"],4,2)."/".substr($i["ins_fecing"],0,4);

echo 
"<td>$f_fecing</td><td>$i[3]</td>";



$nom_sql "SELECT realname FROM am_users WHERE name = '$i[ins_digito]'"
$nom     db_query($nom_sql) or die(db_error());
$nombre  db_fetch_array($nom);
$f_autor $nombre["realname"];


echo 
"<td>$f_autor</td>";


$est_sql "SELECT ins_estado FROM am_inspeccion WHERE ins_estado = '$i[ins_estado]'"
$est     db_query($est_sql) or die(db_error());
$estado  db_fetch_array($est);
$f_estado $estado["ins_estado"];
switch(
$f_estado) {
case 
"X""Por Inspeccionar";
      
$var "Por Inspeccionar";
      break;
case 
"T":
      
$var "Terminado";
      break;
case 
"N":
      
$var "Nulo";
      break;
case 
"P":
      
$var ="Pendiente";
      break;
  
}
echo 
"<td>$var</td></tr>";



}
}


Muchas gracias
?>
  #2 (permalink)  
Antiguo 11/10/2007, 11:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Filtro por empresa...

En tu query:
Código PHP:
$sel_sql "SELECT * from am_inspeccion order by ins_folio desc"
Necesitas agregarle un condicional WHERE donde le pases el campo que relaciona al usuario y le pases el parametro que sea igual al usuario para que solo te muestre las empresas relacionadas con ese usuario.

Algo asi:
Código PHP:
$sel_sql "SELECT * from am_inspeccion WHERE `idUsuario`=$idUsuario order by ins_folio desc"
Donde $idUsuario es el id del usuario actual y la columna idUsuario es la columna que relaciona de quien es ese registro.

Saludos.
  #3 (permalink)  
Antiguo 11/10/2007, 11:30
 
Fecha de Ingreso: julio-2006
Mensajes: 96
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Filtro por empresa...

Hola para eso se usa la sentencia WHERE

ej:

Código:
SELECT * FROM empresas WHERE empresa='campodonico'
con eso te dara como resultado todas las empresas que como nombre tengan campodonico.

Saludos
  #4 (permalink)  
Antiguo 11/10/2007, 12:48
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Filtro por empresa...

el usuario se encuentra en otra tabla, llamada am_users


Ayuda por favor!!!
  #5 (permalink)  
Antiguo 11/10/2007, 19:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Filtro por empresa...

Debes de tener alguna forma de identificar al usuario actual, con alguna variable de sesion, si no no vas a poder controlar que solo el usuario activo pueda ver sus registros.

Saludos.
  #6 (permalink)  
Antiguo 12/10/2007, 00:17
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Filtro por empresa...

si el usuario se encuentra en otra tabla lo puedes llamar, se pueden entrelazar las tablas

ejemplo :
Código PHP:

Select tabla1
.campo1 tabla2.campo where tabla1.campo1=condicion1  tabla2.campo2=condicion2 
  #7 (permalink)  
Antiguo 12/10/2007, 07:06
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Filtro por empresa...

me da este error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE realname =nombre_usuario at line 1


Código PHP:
$sel_sql "SELECT am_users.realname,am_inspeccion.ins_folio,am_inspeccion.ins_nomemp WHERE realname ='".$session["name"]."'"
  #8 (permalink)  
Antiguo 12/10/2007, 10:02
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Filtro por empresa...

es porque te falta el FROM revisalo
  #9 (permalink)  
Antiguo 12/10/2007, 10:28
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Filtro por empresa...

Me muestra todos los datos, pero quiero solo que me muestre los del usuario logeado...


Código PHP:
$sel_sql "SELECT * from am_inspeccion,am_users  WHERE name ='".$session["name"]."' order by ins_folio desc"
  #10 (permalink)  
Antiguo 12/10/2007, 11:15
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Filtro por empresa...

hola de nuevo hurlay entonces lo que tienes que hacer es colocar en la clausula where la comparacion entre el name de tu tabla y al nombre de usuario que esta logueado ya sea por sesiones o por cookies depende de lo que estes usando...
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 11:55.