Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2011, 01:57
eurodoblon
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 10 meses
Puntos: 0
actualizacion multiple

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>"
;}

}
?>