Programación Web y Scripting > PHP
Vaciado de tablas
chesbor:
Puede ser que efectivamente esté haciendo lo que debería pero no sea lo que vos querés que haga? Porque según veo, ese script toma los datos de una tabla, cuyo contenido no modificás... posiblemente el error no esté en ese script sino uno anterior o posterior.
Caso 1 (el error no está en otro script): Si esto es posible, yo te recomendaría que modifiques manualmente (desde phpmyadmin por ejemplo) el contenido de la tabla 'usuario' y revises si el resultado cambia.
Caso 2 (el error está en otro script): Por favor publicá el resto del programa (los archivos relacionados a este error que nos mostras al menos), para que podamos buscar el problema.
(Puedo estar terriblemente equivocado en ambas apreciaciones, pero bueno xD).
Espero que ayude...
Kataky:
Hola a ambos:
Gracias por las respuestas, en cuanto a las versión, supomgo que son las últimas, aquí van:
phpMyAdmin SQL Dump, version 3.1.5, Servidor: localhost, Tiempo de generación: 22-06-2009 a las 10:16:57 Versión del servidor: 5.0.81 Versión de PHP: 5.2.9-2[/b], Windows XP
Chesbor, cambie manualmente el contenido de la tabla temp_1 y me dí cuenta que me está seleccionando mal la empresa, toma el id de la primera empresa, voy seguir indagando el porque pero independiente de eso debería hacerlo bien, me queda una noche larga por delante..., disculpen lo largo pero trate de publicarlo de otra forma pero me dice que aún no tengo privilegios.
Conecta.php
<body>
<?
$_SESSION["Nombre_emp"];
echo"<div align='right' width='50' style='font-size:10px'>Usuario: <span style='color:#0099CC'>$user</span>";
if($p == 'edit'){
$idemp = $_SESSION['idemp'];
$nombre = nombre_emp($idemp);
echo"<br/>Empresa: <span style='color:#0099CC'>$nombre</span>";
}
echo"</div>";
?> </th>
<table width="893" border="1" bordercolor="#CCCCCC" align="center" cellpadding="10" cellspacing="0">
<form action='grabaco.php' method='post' name='add_con' id="add_con">
<tr>
<td colspan='9' bgcolor="#ECEEF0"><div align='center'>
<h3>Agregar CONEXIÓN<br/>
</h3>
</div> </td>
<tr>
<td width="235">Seleccione Empresa :</td>
<td colspan="2">
<select onchange="window.location = this.options[this.selectedIndex].value; return true;" name="idemp">
<option value="?idemp=0">Seleccione</option>
<?
include("config.inc.php");
$sql_emp = mysql_query("SELECT * FROM empresa ORDER BY Nombre_emp") or die ("NO ENCONTRO");
while($r_emp = mysql_fetch_array($sql_emp))
{
?>
<option value="?idemp=<?=$r_emp[0]?>" <? if($idemp==$r_emp[0]){?>selected<?} ?>><?=$r_emp[1]?>
</option>
<?
$nomemp=$r_emp[1];
}?>
</select>
<input name='nomf' value='<? echo $idemp ?>' type='text' />
</td>
</tr>
<tr>
<td>Seleccione Persona a Evaluar :</td>
<td colspan="2">
<select name="idusua" onchange="this.value">
<option value="?idusua=0">Seleccione</option>
<?
$sql_usu = mysql_query("SELECT * FROM usuario WHERE id_emp='$idemp' ORDER BY Name_user ");
while($r_usu = mysql_fetch_array($sql_usu))
{
?>
<option value="?idusua=<?=$r_usu[0]?>" <? if($idusua==$r_usu[0]){?>selected<?} ?>><?=$r_usu[1]?>
</option>
<?
$usuario=$r_usu[1];
}
?>
</select>
<input name='nomf2' value='<? echo $idusua ?>' type='text' />
</td>
</tr>
<tr>
<td>Seleccione JEFE :
<td> Seleccione PARES :</td>
<td>Seleccione COLABORADORES :</td>
</tr>
<tr>
<td>
<div align="center">
<select size="15" name="jefe" onchange="this.value">
<option value="?jefe=0">Seleccione.....</option>
<?
include("config.inc.php");
$sql_j1 =mysql_query("SELECT * FROM usuario WHERE id_emp=$idemp AND NOT id_user='$idusua'");
while($r_j1 = mysql_fetch_array($sql_j1))
{
?>
<option value="?jefe=<?=$r_j1[0]?>" <? if($jefe==$r_j1[0]){?>selected<?} ?>><?=$r_j1[1]?>
</option>
<?
}
?>
</select>
</div></td>
<td width="304">
<div align="center">
<select multiple="multiple" size="15" name="jefe1" >
<option value="?jefe1=0">Seleccione.....</option>
<?
include("config.inc.php");
$sql_j11 =mysql_query("SELECT * FROM usuario WHERE id_emp=$idemp");
while($r_j11 = mysql_fetch_array($sql_j11))
{
?>
<option value="?jefe1=<?=$r_j11[0]?>" <? if($jefe1==$r_j11[0]){?>selected<?} ?>>
<?=$r_j11[1]?>
</option>
<?
}
?>
</select>
</div>
<td width="286">
<div align="center">
<select multiple="multiple" size="15" name="jefe2">
<option value="?jefe2=0">Seleccione.....</option>
<?
include("config.inc.php");
$sql_j12 =mysql_query("SELECT * FROM usuario WHERE id_emp=$idemp");
while($r_j12 = mysql_fetch_array($sql_j12))
{
?>
<option value="?jefe2=<?=$r_j12[0]?>" <? if($jefe2==$r_j12[0]){?>selected<?} ?>>
<?=$r_j12[1]?>
</option>
<?
}
?>
</select>
</div>
</tr>
<br/><tr><td colspan='4' align='center' bgcolor="#ECEEF0">
<a href="crea_emp.php">VOLVER</a></span> <span align="right">
<input name='Guardar' type='submit' value='Guardar' /></td>
</tr>
</form>
</table>
</body>
INSERT INTO `empresa` (`id_emp`, `Nombre_emp`, `Nombre_fan`, `Rut_emp`, `Telefono_emp`, `Direccion_emp`) VALUES
(1, 'Introspectiva', 'INTROSPECTIVA', '702456895-4', '8505363', 'AV. Tabancura #1515'),
(5, 'ACS Asesorias', 'ACS', '78845650-6', '8282828', 'direcion'),
(20, 'Empresa 9', 'Nueve', '88888888-8', '8888888', 'Calle Nueve 99'),
(9, 'prueba2', '', '702456895-4', '8505363', 'AV. Tabancura #1515'),
(10, 'otra', '', '56456123-4', '6456456', 'AV. los leones#1245'),
(11, 'prueba2', '', '45464654-12', '54353453', 'werwerwrwe'),
(18, 'otra', '', '111111111-8', '123456', 'Calle de Prueba 12345'),
(21, 'Empresa Nueva', 'Nueva', '55555555-5', '5555555', '5555555'),
(22, 'Empresa Estrella', 'Estrella Polar', '99999999-9', '99999999', 'Calle Nueve 999');
Tabla usuario
CREATE TABLE IF NOT EXISTS `usuario` (
`id_user` int(11) NOT NULL auto_increment,
`Name_user` varchar(200) NOT NULL default '',
`Pass_user` varchar(200) NOT NULL default '',
`Tipo_user` varchar(200) NOT NULL default '',
`rut_usu` varchar(15) NOT NULL,
`cargo_usu` varchar(25) NOT NULL,
`tipo_car` varchar(150) NOT NULL,
`mail_usu` varchar(70) NOT NULL,
`nombre_emp` varchar(255) NOT NULL,
`id_emp` int(11) NOT NULL,
`id_area` int(11) NOT NULL,
PRIMARY KEY (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=46 ;
--
-- Volcar la base de datos para la tabla `usuario`
--
INSERT INTO `usuario` (`id_user`, `Name_user`, `Pass_user`, `Tipo_user`, `rut_usu`, `cargo_usu`, `tipo_car`, `mail_usu`, `nombre_emp`, `id_emp`, `id_area`) VALUES
(1, 'admin', '21232f297a5', '', '0', '', '', '', 'ACS Asesorias', 5, 0),
(4, 'Usuario 1', 'usuario1', '', '11111111-1', 'Empleado finanza', 'Colaborador', 'carolina@car.com', 'ACS Asesorias', 5, 7),
(5, 'Usuario 2', 'usuario2', '', '22222222-2', 'Contador Gereral', 'Lider', 'usuario3@usu.com', 'ACS Asesorias', 5, 7),
(7, 'Nombre', 'clave', '', '11111111-1', 'Jefe de Planta', 'Lider', 'mail@mail.cl', 'Empresa Estrella', 22, 5),
(9, 'Usuario 1', 'usuario1', '', '11111111-1', 'Gerente Comercial', 'Lider', '11@11', 'ACS Asesorias', 5, 7),
(10, 'Usuario 2', 'usu', '', '22222222-2', 'Empleado finanza', 'Colaborador', '22@22', 'ACS Asesorias', 5, 7),
(11, 'Usuario 3', 'udu', '', '33333333-3', 'Encargado de Comercio Ext', 'Colaborador', '33@33', 'ACS Asesorias', 5, 7);
Tabla temp_1
CREATE TABLE IF NOT EXISTS `temp_1` (
`idemp` int(11) NOT NULL,
`idusua` int(11) NOT NULL,
`nombre` varchar(150) NOT NULL,
UNIQUE KEY `idusua` (`idusua`),
UNIQUE KEY `idusua_2` (`idusua`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
chesbor:
O sea que tu problema es que siempre te deja seleccionados los que tienen el mismo "id_emp", pero en todo ese código nunca cambiaste la variable $idemp (que es la que usas para seleccionar los usuarios), por lo tanto siempre va a resultar en los mismos campos...
Una cosa que no entiendo son estos valores en el onchange:
onchange="this.value"
onchange="window.location = this.options[this.selectedIndex].value; return true;"
pero yendo al problema en cuestión, yo creo que el problema pasa por no cambiar nunca el valor de $idemp, por lo cual obviamente siempre va a devolver los mismos resultados la consulta...
Tampoco cambiás nunca el valor de $idusua que es el otro factor en una de las consultas, por lo que creo que el script debe andar bien, pero siempre devuelve los mismos resultados por no cambiar el contenido de las variables.
(Nuevamente: puedo estar equivocado obviamente, pero es lo que parece...)
Kataky:
Hola chesbor
Puede que no estes equivocado, lo más probable es que yo tenga algunos conceptos errados soy nueva con este lenguaje, por favor aclarame unos conceptos;
1. En el select se supone que cualdo el usuario hace una selección, ésta queda almacenada en el name que en el primer caso seria idemp, en el segundo idusua, en el tercero jefe, etc..., siendo así debería poder rescatarlos como variables $idem, $usua, $jefe, etc...
2. La verdad que el evento onchange lo tengo poco claro pero si lo saco no me despliega nada en la segunda lista y menos las posteriones.
En el fondo son selecciones que se deberían ir reduciendo con cada selección Empresa-->Usuario-->Jefe-->Pares-->Colaboradores, de hecho cambie un poco el código, me olvido de la tabla temporal que y la selección la estoy haciendo directa desde la tabla usuario pero se me produce un problema. cuando selecciono la empresa me aparecen inmediatamente todos los usuario en las siguiente cuatro listas y no logro ir reduciendolas, cuando coloco un AND NOT ya no me muestra ningún usuario, y probe directamente en PhpmyAdmin SELECT * FROM usuario WHERE id_emp=$idemp AND NOT id_user=$idusua y me funciona bien.
Por lo tanto creo que tienes razón en que no estoy pasando bien las variables.
Te agradeceria que me aclararas estos conceptos.
PD: Actualicé el código como lo tengo ahora...
chesbor:
Creo que voy entendiendo lo que querés hacer, pero para hacerlo tenés que usar ajax, porque lo que vos querés hacer es ir modificando el contenido de la web (el contenido de los drop downs por ejemplo) con variables que vas mandando desde html y con contenidos de la base que lees con php, entonces, lo que tendrías que hacer es mas o menos así (y es complicado):
Mostrar el primer dropdown (desde php).
Con un evento onchange llamar una función javascript que se conecte con php mandandole la variable elegida y recibiendo los datos para el segundo drop down.
Escribir ese segundo drop down con javascript.
Con un evento onchange llamar una función javascript que se conecte con php mandandole la variable elegida y recibiendo los datos para el tercer drop down.
Y así sucesivamente.
Es complicado, una forma mas "torpe" en cuanto a programación y uso de hacerlo sería:
Llenar el primer drop down, en el evento onchange llamar una función javascript con el parámetro this.form que haga lo siguiente:
form.target = "_self";
form.action = "Conecta.php";
form.submit();
con eso estarías mandando a la misma página, la variable de la empresa elegida, luego la recibir esa variable, podrías llenar el segundo dropdown y asi sucesivamente.
Traté de hacerte un ejemplo modificando tu código pero está todo muy raro xD... trato de hacer ahora un ejemplito chico y si llego lo posteo.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa