SoloCodigo
Programación Web y Scripting => PHP => Mensaje iniciado por: Adriana Olvera en Jueves 20 de Septiembre de 2007, 17:45
-
Hola amigos, fijense que tengo una página que modifica pero solo hace la finta pq no guarda ningún cambio, espero puedan ver los códigos y desirme que tengo mal pq ya los borre dos veces y los volví a escribir pero no me sale y según yo ya no tiene ningún error. :unsure:
los códigos son:
permisos.php
<?php
include ("seg_seguridad.php");
include ("conexion.php");
//ver tabla de usuarios
$bu=mysql_query ("SELECT * FROM usuarios WHERE nivel!='director'");
print "<center><b>Tabla de Permisos</b><br>
<table border=1>
<tr>
<td><b>num_empleado</b></td>
<td><b>nombre</b></td>
<td><b>nivel</b></td>
<td colspan=2 align=center><b>Acciones</b></td>
</tr>";
while ($pe=mysql_fetch_array ($bu))
{
$num_empleado=$pe['num_empleado'];
$nombre=$pe['nombre'];
$nivel=$pe['nivel'];
print "<tr>
<td>$num_empleado</td>
<td>$nombre</td>
<td>$nivel</td>
<td><a title='Modificar Permiso' href='modificarpermiso.php?num_empleado=$num_empleado&acc=cambio'><img src='modificar.gif' width='40' height='40' border='0'></a></td>
<td><a title='Borrar Empledo' href='permaccion.php?num_empleado=$num_empleado&acc=borrar'<img src='borrar.gif' width='40' height='40' border='0'></a></td></tr>";
}
print "</table></center><br>";
?>
<?php
mysql_close();
?>
permaccion.php
<?php
include ("conexion.php");
switch ($_GET[acc])
{
case "cambio":
mysql_query("UPDATE usuarios SET
nombre='$_POST[nombre]',
nivel='$_POST[nivel]'
WHERE num_empleado='$_GET[num_empleado]'");
break;
case "borrar":
mysql_query("DELETE FROM usuarios WHERE num_empleado='$_GET[num_empleado]'");
break;
}
mysql_close();
header ('Location: permisos.php');
?>
modicarpermisos.php
<?php
include ("seg_seguridad.php");
include("conexion.php");
if ($_GET[acc]=="cambio")
{
$bu=mysql_query("SELECT * FROM usuarios WHERE num_empleado='$_GET[num_empleado]'");
$pe=mysql_fetch_array ($bu);
$nombre=$pe[nombre];
$nivel=$pe[nivel];
//$accion="cambio";
}
?>
<form method='POST' name='permiso' id='permiso' <?php echo "action=permaccion.php?acc=$_GET[acc]&num_empleado='$pe[num_empleado]'"; ?>>
<center><b>Modificar Permisos</b></center><br><br>
<table border='1'>
<tr>
<td><strong>Nombre:</strong></td>
<td>
<input type='text' name='nombre' size='60' maxlength='80' <?php echo "value='$pe[nombre]'"; ?>>
</td>
</tr>
<tr>
<td><strong>Nivel:</strong></td>
<td><select name='nivel' class='conborde'>
<option value='profesor' <?php if ($pe[nivel]=="profesor"){print ("selected");} ?>> Profesor</option>
<option value='coordinador' <?php if ($pe[nivel]=="coordinador"){print ("selected");} ?>> Coordinador</option>
</select> </td>
</tr>
<tr>
<td colspan='2'>
<input type="reset" name="Restablecer" id="Restablecer" value="Restablecer">
<input name="Enviar" type="submit" id="Enviar" value="Enviar"></td>
</tr>
</table>
<?php
mysql_close();
?>
</form>
creo que el error está en la de permaccion.php
Gracias, :hola:
-
Hola que tal adriana. Pues fijate que medio revise el codigo pero como dices no le encuentro algun defecto, esas cosas suelen pasar pero ya intentaste algo como esto:
// en la parte del UPDATE
echo $sql="UPDATE usuarios SET nombre='$_POST[nombre]', nivel='$_POST[nivel]' WHERE num_empleado='$_GET[num_empleado]'";
$respuesta=mysql_query() or die("NO se actualizo");
if($respuesta)
echo "has otra cosa";
//// listo
y el echo del $sql, te devolvera la sentencia que estas ejecutando en el motor mysql, ents checas que parametros o que es lo que estas pasando al mysql. le haces cut and paste en el phpmyadmin y verificas si ejecuta la sentencia si no pues ahi puede estar el detall. Yo siempre hago eso :D saludos
:comp: :lightsabre:
-
jeje sorry olvide algo :rolleyes:
no puse el $sql en esta linea:
$respuesta=mysql_query($sql) or die("NO se actualizo");
bueno espero que sirva de algo :D.
Como dice mi firma cometer errores es humano jeje
-
pues yo te recomendario usar
<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><code>[color= #000000]
extract($_GET);
extract($_POST);
[/color]
</code><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->
en vez del array, para no confundir
-
hola jesus gracias x tú ayuda, mira está es la linea que me manda
=UPDATE usuarios SET nombre='Baltazar Jiménez Leoncio', nivel='profesor' WHERE num_empleado='\'7\''NO se actualizo
me manda los datos pero sin actualizar, que loco no, jajaja
-
Pues ahora le puedes quitar el die("No se actualizo");
solo dejas el mysql_query($sql); y con el if($respuesta) lo manejas de tal manera que si hay un error te dirija a la pagina donde estaba listada la info, o algo asi, me da gusto que te haya sido de ayuda. tamos en contaco :D
-
hola, te percataste que tu condicion es:
num_empleado='\'7\'
osea esta preguntando si num_empleado sea igual a '7
me parece que esa es la razon, no actualiza por que simplemente no encuentra el numero de empleado '7 para hacerlo.
espero te sirva...