Foros del Web » Programando para Internet » PHP »

problemas con modificar datos

Estas en el tema de problemas con modificar datos en el foro de PHP en Foros del Web. hola a todos,tengo un problema sobre la modificacion de unos datos, estoy trabajado con php y mysql. El problema es que quiero modificar un lote ...
  #1 (permalink)  
Antiguo 03/12/2006, 12:06
 
Fecha de Ingreso: mayo-2006
Ubicación: mexico, distrito federal
Mensajes: 64
Antigüedad: 18 años, 6 meses
Puntos: 0
Pregunta problemas con modificar datos

hola a todos,tengo un problema sobre la modificacion de unos datos, estoy trabajado con php y mysql. El problema es que quiero modificar un lote de datos, digamosle asi, por medio de checkbox, es decir, selecciono los datos que deseo modificar, bueno pongo el codigo para mas facil de explicar, lo simplifique lo mas que pude....

modificar.html ---> aqui no hay problema
<html>
<head><title></title></head>
<body>
<form method="post" name="modif" action="modificar2.php">
<table width="50%" border="1">
<tr>
<td width="20%">Folio:</td><td width="40%"><input name="folio" type="text"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Bucar"></td>
</tr>
</table>
</form>
</body>
</html>


modificar2.php ----> en este tengo algunas dudas

<?
require('conexion.php')

$folio=$_POST["folio"];//recibo los datos mandados por el formulario de la busqueda
//empieza la busqueda de los datos
if($folio){ $sql="SELECT * FROM ordenes WHERE folio='$folio'"; } //busqueda folio
$result = mysql_query($sql,$db);
// Se inicial el formulario
echo "<form action=\"modificar3.php\" method=\"post\"> \n";
// Extraemos y componemos los checbox dinámicos de los datos de nuestra tabla de la BD.
while ($row = mysql_fetch_array($result))
{
//segun yo, aqui guardo el numero de folio
echo "<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['folio']."\">";
//imprimo los datos en un textbox, para que se modifiquen los datos, y guardo los
//datos en seleccion2[], pero no estoy seguro de que se guarden
echo "<input type=\"text\" name=\"seleccion2[]\" value=\"".$row['articulo']."\">";

echo "<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['folio']."\">";
echo "<input type=\"text\" name=\"seleccion2[]\" value=\"".$row['inventario']."\">";

echo "<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['folio']."\">";
echo "<input type=\"text\" name=\"seleccion2[]\" value=\"".$row['descripcion']."\">";
}
echo "<input type=\"submit\" name=\"Submit\" value=\"¿Modificar?\">";
echo "</form>";
?>


bueno aqui tengo duda sobre si estoy haciedo bien en como guardar los datos de los checkbox seleccionados, es decir y guardar el id del ckb en seleccion[], y el dato que se desea modificar ya modificado en seleccion2[]

modificar3.php ----> el problema

aqui es donde esta un problema fuerte, no se si asi esta bien para modificar el lote de datos

<?
require('conexion.php');
// Generamos una lista de los ID's (campo value= ..) que tenemos
//en nuestro array, este contiene los id de los ckb a modificar

//segun yo, en esto se guarda el folio que da referencia a los datos
//que voy a modificar, osea que si tengo 3 articulos con este folio
//$lista_ckb debe contener el mismo folio 3 veces, pero no estoy seguro
$lista_ckb=implode(',',$_POST['seleccion']);

//en $lista_dat, segun yo,aqui guardo los datos que modifique en los
//textbox, y los nuevos datos que quier guardar o moficar en este caso
//la verdad no se si los almacena
$lista_dat=implode(',',$_POST['seleccion2']);

//el el problema creo que esta en la sentencia sql, la explico como la entiendo
// en usuario, segun el id del ckb se modificara el dato correspondiente a usuario
// articulo y descripcion, y si por ejemplo no seleccione que se modificara articulo
//en $lista_ckb, no mandara el id del tal ckb y no se modificara este, bueno lo que
//tenga(si no se modifico), lo sobre escribe en el valor que tenia
$sql="Update ordenes Set usuario IN(".$lista_dat."), articulo IN(".$lista_dat.") " .
"descripcion IN(".$lista_dat.") Where id IN(".$lista_ckb.")";

//y como es de esperarse me manda que los datos no se guardaron
$result = mysql_query($sql,$db);
if($result){ echo "DATOS MODIFICADOS CORRECTAMENTE"; }
else{ echo "¡¡¡ERROR: DATOS NO MODIFICADOS!!!"; }


/************************************************** ************************************/
/* NOTA: tome como ejemplo un codigo que esta en las faq' de php, digamosle pagina 3 */
/* el numero de la pregunta es la #86 y la responde cluster (saludos), este ejemplo */
/* es para eliminar datos, y quiero hacerlo para modificarlo, dependiendo de los */
/* checkbox seleccionados y los textbox modificados */
/************************************************** ************************************/

?>


espero sea entendible lo que quier decir, y si no es asi, digamelo para explicarme mejor, y cualquier ayuda de antemano sera bien recibida y muchas gracias.....

Última edición por cgamae; 03/12/2006 a las 12:10 Razón: las letras estaban muuuy grandes
  #2 (permalink)  
Antiguo 10/12/2006, 17:46
 
Fecha de Ingreso: mayo-2006
Ubicación: mexico, distrito federal
Mensajes: 64
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: problemas con modificar datos

hola de nuevo a qui, pues ya mas o menos puede hacer que me modifique varios datos a la vez el problema es que por ejemplo me guarda los datos en array dinamico y pues pone todos los datos del array, por ejemplo si tengo en la base de datos los siguiente..
-----------------------
id | nombre | telefono
-----------------------
1 juan 1111111
2 pedro 2222222
3 maria 3333333

supongamos que quiero modificar juan y maria
[x] juan
[ ] pedro
[x] maria

los marco para saber el id de los datos que quiero modificar, pero cuando mando los datos a la otra pagina, me pone juan-pedro en las casillas que marque... bueno no se si se entienda pero dejo el codigo...

modifica.php
Código PHP:
<?
  $nombre
=$_POST["nombre"];
  
$link=mysql_connect("localhost","root","") or die("ERROR EN LA CONEXION");
  
mysql_select_db("test",$link);
  
  
$sql="SELECT * FROM info";
  
$result=mysql_query($sql,$link);

  echo 
" <form method=\"post\" action=\"modificar3.php\"> \n";
  echo 
"<table border=\"1\" width=\"80%\"> ";
?>  
    <tr><td>Marque</td> <td>Nombre</td> <td>Telefono</td> <td>Direccion</td></tr>
<?
  
while($row=mysql_fetch_array($result))
  {   
 
?>  
     <tr>
      <td>
       <? echo "<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['id']."\">"?>         
      </td>
      <td>
       <? echo "<input type=\"text\" name=\"nombre[]\" value=\"".$row['nombre']."\"> "?>
      </td>
      <td>
       <? echo "<input type=\"text\" name=\"telefono[]\" value=\"".$row['telefono']."\"> "?>
      </td>
      <td>
       <? echo "<input type=\"text\" name=\"domicilio[]\" value=\"".$row['domicilio']."\"> "?>
      </td>
     </tr>   
 <?    
  
//cierre del while  
  
echo"</table>";
  echo 
" <input type=\"submit\" name=\"submit\" value=\"Modificar?\"> ";
  echo 
"</form>";

?>
modificar3.php
Código PHP:
<?  
  $nombre
=implode(' ',$_POST['nombre']);
  
$telefono=implode(' ',$_POST['telefono']);
  
$domicilio=implode(' ',$_POST['domicilio']);
    
  
$link=mysql_connect("localhost","root","") or die("ERROR EN LA CONEXION");
  
mysql_select_db("test",$link);
 
  foreach(
$_POST['seleccion'] as $id)
  {
    
$sql=" UPDATE info SET nombre='$nombre', telefono='$telefono', domicilio='$domicilio' WHERE id='$id' ";
    
$result=mysql_query($sql,$link);
  }
?>
el problema lo tengo en
$sql=" UPDATE info SET nombre='$nombre', telefono='$telefono', domicilio='$domicilio' WHERE id='$id' ";
por que me pone todos los datos que recibo de los array y me pone los mismo en los datos de los checkbox seleccionados, cual quier tips se los agradezco,y muchas gracias
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 22:45.