Foros del Web » Programando para Internet » PHP »

Problema con SQL

Estas en el tema de Problema con SQL en el foro de PHP en Foros del Web. Les explico, con este codigo lo que hace es verme solo las inspecciones hechas por el usuario que se logueo Código PHP: $sel_sql  =  "select am_inspeccion.ins_folio , am_inspeccion.ins_fecing , am_inspeccion.ins_nomemp , am_inspeccion.ins_digito, am_inspeccion.ins_estado from am_inspeccion where 'name' LIKE ('%" ...
  #1 (permalink)  
Antiguo 29/10/2007, 08:30
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Problema con SQL

Les explico, con este codigo lo que hace es verme solo las inspecciones hechas por el usuario que se logueo

Código PHP:
$sel_sql "select am_inspeccion.ins_folio , am_inspeccion.ins_fecing , am_inspeccion.ins_nomemp , am_inspeccion.ins_digito, am_inspeccion.ins_estado from am_inspeccion where 'name' LIKE ('%".$session["name"]."%')  order by ins_folio desc"
Me hace la funcion muy bien, pero ahora necesito agregarle a ese codigo, que me vea los datos del usuario que se logeo y que me vea todos los usuarios que tengan la misma empresa que la persona que se logeo.

Lo intente haciendo esto pero no me resulto.


Código PHP:
$sel_sql "select am_inspeccion.ins_folio , am_inspeccion.ins_fecing , am_inspeccion.ins_nomemp , am_inspeccion.ins_digito, am_inspeccion.ins_estado from am_inspeccion where 'name' LIKE ('%".$session["name"]."%') AND ('%"$nombre_empresa"%')"
Que hago mal?

Ojala me puedan ayudar, muchas gracias de todas formas
  #2 (permalink)  
Antiguo 29/10/2007, 09:38
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 8 meses
Puntos: 6
Re: Problema con SQL

Hola,

Tienes que agregar el campo en el cual tienes el nombre de las empresas.

Graficamente te explico...

AND nombre_empresa='".$nombre_empresa."'";

Otra cosa, no necesitas usar LIKE para tu Qry, ya que si usas esa instrucción te puede entregar resultados erroneos, solo necesitas usar =

Última edición por xempro; 29/10/2007 a las 09:40 Razón: ups, tengo un par de errores de sintaxis.
  #3 (permalink)  
Antiguo 29/10/2007, 10:13
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Problema con SQL

no me funciona, necesito que diga el codigo: que me muestra la empresa del usuario

y que cuando entre otro usuario vea lo que hizo la otra persona de su empresa en una tabla

.como te dije, solo me arroja lo que hizo el usuario, ahora quiero que me muestro lo de los otros usuarios de la empresa
  #4 (permalink)  
Antiguo 29/10/2007, 10:27
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Problema con SQL

Ok... entonces estas enfocando mal la consulta sql.

Te explico un poco como funciona:
Código:
SELECT ai.ins_folio ,ai.ins_fecing , ai.ins_nomemp , ai.ins_digito, ai.ins_estado
FROM am_inspeccion ai 
WHERE 'name' LIKE ('%".$session["name"]."%') AND 'empresa' LIKE ('%".$nombre_empresa."%')
Lo primero que hace la consulta es ir al FROM por lo tanto:
FROM am_inspeccion ai (el ai es un alias para no poner todo el nombre en los datos), lo que hace es abrir esta tabla.

Luego se ejecuta el WHERE y en este lugar se reduce la tabla , o sea, WHERE 'name' LIKE ('%".$session["name"]."%') esto da como resultado todos los registros que tenga ese usuario, y luego se hace la otra condicion: AND 'empresa' LIKE ('%".$nombre_empresa."%')" que trae todos los nombre de empresa que estan en los registros de este usuario.

Luego de esto se hace el SELECT y te selecciona todo lo que pongas antes de FROM.

Al parecer tu necesitas una consulta que sea de este tipo:
Código:
SELECT ai.name, ai.ins_folio ,ai.ins_fecing , ai.ins_nomemp , ai.ins_digito, ai.ins_estado
FROM am_inspeccion ai 
WHERE 'empresa' LIKE ('%".$nombre_empresa."%')
De esta manera sacas todo lo relacionado con la empresa + el usuario que esta en el registro independiente si es el mismo que esta logeado o no.

Suerte! y nos cuentas como te va.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 29/10/2007, 10:39
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años, 6 meses
Puntos: 6
Re: Problema con SQL

Hola si kieres ke te muestre lo de todos los usuarios de determinada empresa trata de no comparar el nombre de usuario logeado es decir solor deja el where comparando una empresa no se si tengas enla tabla el nombre de la empresa?
__________________
"Eres grande por que caminas entre gigantes"
  #6 (permalink)  
Antiguo 29/10/2007, 12:47
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Problema con SQL

Me la gano, no se realmente que es lo que pasa, e intentado de todas las formas y no llego a lo que quiero, les mando todo el codigo para que vean me puedan ayudar por favor, realmente necesito salir con esto adelante.

esto para q sepan

empresa es ins_nomemp
name es ins_digito


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

$sel_sql "SELECT  ai.ins_folio ,ai.ins_fecing , ai.ins_nomemp , ai.ins_digito, ai.ins_estado
FROM am_inspeccion ai 
WHERE ins_digito LIKE ('%"
.$session["name"]."%') AND ins_nomemp LIKE ('%".$f_empresa."%')"//no se me va la empresa, solo me muestra el usuario

//$sel_sql = "select am_inspeccion.ins_folio , am_inspeccion.ins_fecing , am_inspeccion.ins_nomemp , am_inspeccion.ins_digito, am_inspeccion.ins_estado from am_inspeccion where ins_digito LIKE ('%".$session["name"]."%')"; //

$resultado db_query($sel_sql) or die(db_error()); 

//---> 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>"
echo 
"<tr></tr>"
while(
$i=mysql_fetch_array($resultado)){ 

if (
$i){

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>"//aca va la hora
echo "<td>$i[2]</td>"//aca va la empresa


$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>"//aca va el nombre (name)

$est_sql "SELECT ins_estado FROM am_inspeccion WHERE ins_estado = '$i[ins_estado]'";  //aca va el 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; 
case 
"R":
      
$var ="Realizado"
      break;

echo 
"<td>$var</td></tr>"
}

?>
  #7 (permalink)  
Antiguo 30/10/2007, 08:03
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Problema con SQL

Quien me puede ayudar?
  #8 (permalink)  
Antiguo 30/10/2007, 08:44
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 20 años
Puntos: 1
Re: Problema con SQL

Que tal hulray, estamos a ciegas, nos das el código pero no nos das la estructura de tus tablas? los datos del empleado estan en otra tablas? si es asi necesitas hacer join's, creo que con la estructura y el código que ya has posteado se haria más facil la labor... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #9 (permalink)  
Antiguo 30/10/2007, 09:14
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Problema con SQL

Con esto veo los resultados. hacia abajo

Código PHP:
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>";  
echo 
"<tr></tr>";  
while(
$i=mysql_fetch_array($resultado)){ 
  #10 (permalink)  
Antiguo 30/10/2007, 09:35
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Problema con SQL

tendrias que publicar la estructura de la tabla para que lo podamos analizar tu consulta sql.
  #11 (permalink)  
Antiguo 19/11/2007, 07:31
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Problema con SQL

Les paso las tablas.


CREATE TABLE `am_inspeccion` (
`ins_folio` bigint(8) NOT NULL auto_increment,
`ins_fecing` varchar(8) default NULL,
`ins_fecing1` varchar(8) default NULL,
`ins_fecing2` varchar(8) default NULL,
`ins_fecing3` varchar(8) default NULL,
`ins_hora` varchar(6) default NULL,
`ins_hora1` varchar(6) default NULL,
`ins_hora2` varchar(6) default NULL,
`ins_hora3` varchar(6) default NULL,
`ins_estado` char(1) default 'X',
`ins_nomemp` varchar(80) default NULL,
`ins_nomcon` varchar(80) default NULL,
`ins_mailcon` varchar(80) default NULL,
`ins_fonocon` varchar(20) default NULL,
`ins_unica` int(1) NOT NULL default '1',
`ins_inspec` varchar(20) default NULL,
`ins_autor` varchar(20) default NULL,
`ins_observ` mediumtext,
`ins_digito` varchar(20) default NULL,
`ins_fechor` datetime default NULL,
`ins_proyecto` varchar(30) default '-',
`ins_valida` varchar(32) NOT NULL default '0',
UNIQUE KEY `ins_folio` (`ins_folio`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
  #12 (permalink)  
Antiguo 19/11/2007, 11:52
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Problema con SQL

dejo esto mensaje para que no se pierda el host
  #13 (permalink)  
Antiguo 20/11/2007, 05:42
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Problema con SQL

Ayuda por favor
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 14:07.