Estoy deseperado, no encuentro porque este escript me funciona perfectamente hasta que la "id" llega hasta ela 9, cuando pasa de 10 y sucesivas no puedo cambiar ningún registro.
¡¡Ayuda por favor!!
Gracias y un saludo
(envia los datos)
Código PHP:
$con = mysql_connect("localhost","","");
if (! $con){die ("ERROR EN LA CONEXION CON MYSQL: ".mysql_error());}
$base = mysql_select_db ("barco",$con);
if(! $base){die ("ERROR AL CONECTAR CON LA BASE DE DATOS: ".mysql_error());}
/********************************************/
/* Luego vamos a obtener todos los datos que esten contenidos
en la tabla con una consulta */
$sql = "SELECT * FROM personal";
$resultado = mysql_query($sql);
/*ahora creamos la tabla en html para mostrar los resultados
agregandole un par de botones de radio */
echo "
<form name='form2' method='post' action='procesa.php'>
<table width='80%' align='center' class='celda02'>
<tr><td>Id</td><td>Nombre</td><td>Sueldo</td><td>Horas Extras</td><td>Anticipo</td><td>Modificar</td><td>Eliminar</td></tr>";
$i = 0 ; //iniciamos nuestro cont en cero
/*el siguiente bucle nos permite obtener la informacion obtenida
de la ejecución de la sentencia de sql */
while ($row = mysql_fetch_row($resultado)){
echo "<tr><td><input type='hidden' name='id[$i]' value='".$row[0]."' />".$row[0]."</td>
<td><input type='text' name='nombre[$i]' value='".$row[1]."' /></td>
<td><input type='text' name='sueldo[$i]' value='".$row[2]."'/></td>
<td><input type='text' name='extras[$i]' value='".$row[3]."'/></td>
<td><input type='text' name='anticipo[$i]' value='".$row[4]."'/></td>
<td><input type='radio' name='seleccion[$i]' value='modifica".$row[0]."'></td><!-- Esta línea es para saber si se modifica -->
<td><input type='radio' name='seleccion[$i]' value='elimina".$row[0]."'></td><!-- Esta línea es para saber si se elimina -->
</tr>";$i++;
}
echo "</table><input type='submit' value='Enviar'></form>";
?>
</body>
</html>
<?php
procesa
Código PHP:
<?php
$con = mysql_connect("localhost","","");
if (! $con){die ("ERROR EN LA CONEXION CON MYSQL: ".mysql_error());}
$base = mysql_select_db ("barco",$con);
if(! $base){die ("ERROR AL CONECTAR CON LA BASE DE DATOS: ".mysql_error());}
/********************************************
iniciamos el ciclo con el que obtendremos lo que envio el formulario
**************************************************************/
foreach ($_POST['seleccion'] as $indice => $valor){
//Vamos a verificar si trae la opcion de eliminar o modificar
$opcion = substr ($_POST['seleccion'][$indice],0,-1); //extraemos la parte de la cadena que elimina y/o modifica
switch($opcion){
//generamos la sentencia para la modificación filtrando por el id para que solo cambie ese registro
case "modifica":$sql="UPDATE personal SET
nombre='".$_POST['nombre'][$indice]."',
sueldo=".$_POST['sueldo'][$indice].",
extras=".$_POST['extras'][$indice].",
anticipo=".$_POST['anticipo'][$indice]."
WHERE id=".$_POST['id'][$indice];break;
case "elimina":$sql2="DELETE FROM personal WHERE id=".$_POST['id'][$indice];break;
default: echo "<center>NO HAY NADA SELECCIONADO</center>"; echo $sql;echo $indice; echo $valor;echo $_POST['anticipo'][$indice];echo $_POST['id'][$indice];break;
}
$resultado = mysql_query($sql);
$resultado2 = mysql_query($sql2);
if ($resultado ){echo "
<script>window.location='personal.php?cambia'</script>";}
if ($resultado2 ){echo "
<script>window.location='personal.php?eliminar'</script>";}
}
?>