Foros del Web » Programando para Internet » PHP »

Actualizar registro de BD con PHP-MySQL y checkbox

Estas en el tema de Actualizar registro de BD con PHP-MySQL y checkbox en el foro de PHP en Foros del Web. Saludos. Estoy desarrollando cierto sistema y me he topado con la siguiente dificultad: Debo desplegar una lista de equipos con sus respectivas caracteristicas en forma ...
  #1 (permalink)  
Antiguo 10/08/2010, 15:49
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Actualizar registro de BD con PHP-MySQL y checkbox

Saludos.

Estoy desarrollando cierto sistema y me he topado con la siguiente dificultad:

Debo desplegar una lista de equipos con sus respectivas caracteristicas en forma de tabla (eso ya esta hecho), pero el problema es que se deben poder seleccionar la cantidad de campos que se requieran a traves de checkboxes y luego, haciendo click en un boton, hacer que el valor de un campo llamado 'estado' cambie de "Preingreso" a "Entrada", por decir algo.

Segùn el còdigo que he desarrollado, ya me muestra la tabla y los datos de la consulta de manera correcta, pero necesito que al darle al submit me cambie el valor de uno de los campos de los registros que se hayan seleccionado con el checkbox.

Si alguien tiene idea de còmo hacer esto, le agradezco altamente.
  #2 (permalink)  
Antiguo 10/08/2010, 15:56
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

hola
estan todos con checkbox hoy, revisa esto o esto
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 10/08/2010, 16:10
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

mmm.. se parece un poco, pero la verdad, aun no le encuentro solucion, mira, si quieres, te anexo una parte del codigo

Código PHP:
<?php
    $result 
mysql_query("SELECT * FROM `bd_prueba`.`otra` WHERE `campo7_estado`='Preingreso'");
    while (
$row mysql_fetch_array($result)) {
?>
                  <tr>
                  <td><input type = "checkbox" name= "seleccion[]" value="<? $row['campo1_id']?>]"  ></td>
                <td><? echo $row['fecha'?></td>
                <td><? echo $row['campo2_tipo']?></td>
                <td><? echo $row['campo3_equipo']?></td>
                <td><? echo $row['campo4_serial']?></td>
                <td><? echo $row['campo5_brig']?></td>
                <td><? echo $row['campo6_unidad']?></td>
                <td><? echo $row['campo7_estado']?></td>    
                </tr>
<?
    
}
?>
</table>
<input type="submit" name="actualizar" value="Actualizar" >
</form>
y el action del formulario esa aqui
Código PHP:
mysql_connect("localhost","root","");
mysql_select_db("bd_prueba");

       
$lista=implode(',',$_POST['seleccion']);
        
mysql_query("UPDATE `bd_prueba`.`otra` SET `campo7_estado` = 'Entrada' WHERE `campo1_id` IN(".$lista.")"); 
pero la verdad no tengo idea de que es lo que pasa, de nuevo mil gracias!
  #4 (permalink)  
Antiguo 10/08/2010, 16:13
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

mmm... podrías anexar el script de la bd?
y el action del form va hacia otra página, o a esta misma?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 10/08/2010, 16:18
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

Hola, pues es script no te lo puedo pasar, pero si te refieres a los nombres de loc campos o algo asi, son tal cual estan dentro de $row[]
y el action en este momento esta hacia otra pagina, que seria entrada2.php, sin embargo, lo puedo poner en el archivo original sin ningun inconvenietne.
  #6 (permalink)  
Antiguo 10/08/2010, 16:32
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

en ese caso respondo otros post primero y luego retomo este
para darme la tarea de crear el script y poblar la bd...
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 10/08/2010, 16:34
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

Perfecto, mil y mil gracias, ademas de mil disculpas, pero es que el script si no lo puedo soltar ... tomate tu tiempo y te agradezco la atencion
  #8 (permalink)  
Antiguo 10/08/2010, 18:11
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

bueno, ahora si, tengo esta bd de prueba

Código MySQL:
Ver original
  1. create table tabla (id int(2) primary key auto_increment, tipo varchar(2) not null, equipo varchar(120) not null,
  2. serial varchar(120) not null, brig varchar(120) not null, unidad varchar(120) not null, estado varchar(120) not null  
  3. )
  4.  
  5. insert into tabla (tipo, equipo, serial, brig, unidad, estado) values
  6. ('1','equipoxp1','sp1','????','nueva','Preingreso'),
  7. ('2','equipoxp2','sp2','????','no nueva','Preingreso'),
  8. ('1','equipoxp3','sp3','????','nueva','Preingreso'),
  9. ('2','equipoxp4','sp4','????','nueva','Preingreso'),
  10. ('1','equipoxp5','sp5','????','nueva','Entrada');

y pues ya lo tienes solucionado!! solo que te falto un par de cosas (sobre todo el punto uno) de estas observaciones:

0. para efectos de correcto funcionamiento de php en distintas plataformas,
acostumbrate a que el tag de apertura sea

Código PHP:
<?php
1. te falto el echo del id, y sin eso pues no te los podía actualizar pues se hace el envio pero va limpio el array

y ya con esto, usando el implode que tienes, pues debería funcionar
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 11/08/2010, 13:34
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

De nuevo mil y miel gracias por tu valiosa colaboraciòn y las recomendaciones que me has dado, las tendre en cuenta.

Aùn asi, me queda una duda sobre lo del echo del id, eso deberia hacerlo asì:

Código HTML:
<td><input type = "checkbox" name= "seleccion[]" value="<?php echo($row['campo1_id']);?>"  ></td> 
o asì:

Código HTML:
<td><input type = "checkbox" name= "seleccion[]" value="<?php $row[echo('campo1_id')]?>"  ></td> 
Te agradezco y disculpa por molestar tanto.
  #10 (permalink)  
Antiguo 11/08/2010, 13:42
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

bueno no vi todo el codigo antes de la ultima respuesta pero la primera maneras es la q debes poner ya que la segunda estoy seguro que te daria un error serte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #11 (permalink)  
Antiguo 11/08/2010, 13:43
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

Me corrijo, perdon, la segunda forma es una burrada, no funciona, que tonto soy, sin embargo, de la primera forma tampoco funciona... sabes que podrà estar pasando??
Gracias
  #12 (permalink)  
Antiguo 11/08/2010, 13:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

nueno yo normalmente no utilizo los parentesis pero noc si eso tenga q ver, has una prueba asi a ver si te imprime el id:
Código PHP:
Ver original
  1. <?php echo($row['campo1_id']);?><input type = "checkbox" name= "seleccion[]" value="<?php echo($row['campo1_id']);?>"  >
que ic le agreq para q imprimiera el id al lado del check de manera de ver si te esta trayendo el id suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 11/08/2010, 13:52
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

bueno, yo solo agregue php y echo y funcionó, los parentesis funcionan
en algunas versiones, intenta sin ellos
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #14 (permalink)  
Antiguo 11/08/2010, 13:54
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

por eso mismo le dig noc si sea eso y la impresion se ve bien por eso le dig q haga una prueba para ver si le trae el id xq sino se lo trae hay q ver la consulta bien o si esta bien el campo o algo parecido
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #15 (permalink)  
Antiguo 11/08/2010, 14:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

Saludos.

Bueno, puse el echo al principio de la linea como lo hiciste tu carlos_belisario, y si memuestra los id al lado del checkbox, pero aun no funciona cuando selecciono alguno (o algunos) de los checkbox y le doy al boton.... la verdad, esto me esta rompiendo la cabeza :).

Gracias por la ayuda
  #16 (permalink)  
Antiguo 11/08/2010, 14:45
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

bueno ya sabemos que si te esta enviando el id ahora prueba depurando la consulta ej:
Código PHP:
Ver original
  1. mysql_query("UPDATE `bd_prueba`.`otra` SET `campo7_estado` = 'Entrada' WHERE `campo1_id` IN(".$lista.")") or die (mysql_error());
y ve que te dic suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #17 (permalink)  
Antiguo 11/08/2010, 14:53
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

OOHHH!!! TERRIBLE!!!, si se muere por error de SQL, arroja esto:

Warning: implode() [function.implode]: Invalid arguments passed in D:\...\entrada.php on line 9
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1


pero estas son las lìneas 8,9 y 10:

Código HTML:
<form method="post" action="<?php
       $lista=implode(',',$_POST["seleccion"]);
		mysql_query("UPDATE `bd_prueba`.`otra` SET `campo7_estado` = 'Entrada' WHERE `campo1_id` IN(".$lista.")") or die(mysql_error());
?>"> 
Aunque cada vez entiendo màs todo este asunto, cada mez entiendo menos sobre el error :)

Miles de gracias
  #18 (permalink)  
Antiguo 11/08/2010, 14:56
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

en que momento cambiaste el action del form???
como estaba antes funciona bien!!
es decir, se envia a otra página y allá es donde se hace el implode!!
y el problema de ese código que estas mostrando son las comillas en el action del form por un lado,
y por el otro, que intentas hacer implode sin enviar datos aún
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #19 (permalink)  
Antiguo 11/08/2010, 15:00
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

bueno creo que debes informarte un poco sobre html el form action indica la pagina donde vas a ir ejemplo
Código HTML:
Ver original
  1. <form name="form1" method="post" action="pagina.php">
pagina.php
Código PHP:
Ver original
  1. $campo=$_POST['campo'];#aki guarda un campo del formulario pasado en la variable campo
ahi comienza tu ejemplo el otro es error de mysql donde te dic q no uses los parentesis de verdad no conosco la condicion que estas haciendo por eso no opino sobre ella suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #20 (permalink)  
Antiguo 11/08/2010, 15:08
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

ok, otra vez esta el action en otra pagina, asì:

entrada.php:
Código HTML:
<form method="post" action="entrada2.php"> 
Código:
<?php
    $result = mysql_query("SELECT * FROM `bd_prueba`.`otra` WHERE `campo7_estado`='Preingreso'");
    while ($row = mysql_fetch_array($result)) {
?>
  				<tr>
  				<td><?php echo($row['campo1_id']);?><input type = "checkbox" name= "seleccion[]" value="<?php echo($row['campo1_id']);?>"></td>
				<td><? echo $row['fecha'] ?></td>
				<td><? echo $row['campo2_tipo']?></td>
				<td><? echo $row['campo3_equipo']?></td>
				<td><? echo $row['campo4_serial']?></td>
				<td><? echo $row['campo5_brig']?></td>
				<td><? echo $row['campo6_unidad']?></td>
				<td><? echo $row['campo7_estado']?></td>    
				</tr>
<?php
    }
?>
</table>
<input type="submit" name="actualizar" value="Actualizar" >
</form>
</html>
y en entrada2.php:
Código PHP:
<?php
 mysql_connect
("localhost","root","");
mysql_select_db("bd_prueba");
       
$lista=implode(',',$_POST['seleccion']);
        
mysql_query("UPDATE `bd_prueba`.`otra` SET `campo7_estado` = 'Entrada' WHERE `campo1_id` IN(".$lista.")") or die(mysql_error());
?>
y en entrada 1 ya seleccione la BD y todo... la verdad no entiendo...
  #21 (permalink)  
Antiguo 11/08/2010, 15:09
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

no te da error el mysql_error??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #22 (permalink)  
Antiguo 11/08/2010, 15:12
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

no, solo me dice "objeto no encontrado!"
  #23 (permalink)  
Antiguo 11/08/2010, 15:16
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

pero eso te dic cuando haces el click?? estas llamando en el action a una pagina q no exist verifica el nombre de la pagina en el action del form
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #24 (permalink)  
Antiguo 11/08/2010, 15:22
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

tampoco, los nombres estan bien .... no se que hacer ....
  #25 (permalink)  
Antiguo 11/08/2010, 15:25
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

al colocar
Cita:
Iniciado por AndresSF Ver Mensaje
"objeto no encontrado!"
es xq no esta encontrando la pagina a la cual estas haciendo referencia o dentro de esta pagina tienes un header("location") o algo asi?? verifica bien los nombres en tu sitio xq eso pasa mucho q te lo digo yo q soy experto en q me pasen ese tipo de errores suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #26 (permalink)  
Antiguo 11/08/2010, 15:27
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 1
De acuerdo Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

ya, ya, solucionado!

todo se arreglo y el que me ponia el problema si era el nombre del archivo del action, aunque el nombre estaba bien, no lo estaba llamando como debia!

Muchas gracias por su valiosa colaboracion compañeros.
  #27 (permalink)  
Antiguo 11/08/2010, 15:31
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Actualizar registro de BD con PHP-MySQL y checkbox

bueno para eso estamos suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: bd, checkbox, php-mysql, registro
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 10:23.