Foros del Web » Programando para Internet » PHP »

Insertar o actualizar registro desde form con checkboxes

Estas en el tema de Insertar o actualizar registro desde form con checkboxes en el foro de PHP en Foros del Web. Tengo un formulario con un listado de usuarios y un campo checkbox cada uno con el nombre ID. El checkbox de cada usuario tendría serviría ...
  #1 (permalink)  
Antiguo 19/12/2011, 00:51
 
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 134
Antigüedad: 19 años, 3 meses
Puntos: 7
Insertar o actualizar registro desde form con checkboxes

Tengo un formulario con un listado de usuarios y un campo checkbox cada uno con el nombre ID.

El checkbox de cada usuario tendría serviría para asignar o quitar permisos de edición a los usuarios.

La forma que estoy usando ahora es borrar todos los registros de la tabla y luego insertar los registros que asignan permisos a los usuarios.

A nivel código, ¿hay una forma mejor de hacerlo?

Si uso IF podría ver si tengo que editar o insertar el registro, ¿eso sería mejor?

Les dejo el código:


tablas
--------
jos_photo_members
id_user
iseditor

jos_users
id


código
--------
Código HTML:
function save() {

	global $mainframe;
	$id = JRequest::getVar('id', '', 'post');
	$db =& JFactory::getDBO();

	$query = 'delete from #__photo_members';
	$db->setQuery( $query );
	$db->query();
			
	for( $i = 0; $i < count($id); $i ++){
			$insert = new stdClass();		
			$insert->id_user = $id[$i];
			$insert->iseditor = 1;		
			$db->insertObject('#__photo_members', $insert, 'id_user');			
	}

	$mainframe->redirect('index.php?option=com_photo', "Updated");

}
  #2 (permalink)  
Antiguo 19/12/2011, 07:46
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Insertar o actualizar registro desde form con checkboxes

seria la solucion mas rapida, sino primero eliminar solo los checkbox no seleccionados
ej tengo 5 persmisos de usuario
id: 1 eliminar: no
id: 2 eliminar: si
id: 3 eliminar: si
id: 4 eliminar: si
id: 5 eliminar: no

entonces:
Código PHP:
Ver original
  1. $id_user = $_REQUEST['id_user'];
  2. $permisosValidos = array();
  3. foreach($_REQUEST['usuario'] as $key => $value){
  4.     if(eliminar == no)
  5.          //DELETE FROM permiso_usuario WHERE ID_pu = $value AND USUARIO = $id_user
  6.      else
  7.          $permisosValidos[] = $value;
  8. }
resultado:
id: 1
id: 5
permisos del usuario $id_user

luego los nuevos permisos
Código PHP:
Ver original
  1. foreach ($permisosValidos as $value)
  2.     //INSERT INTO permiso_usuario VALUES ($value, $id_user) ;
pero ademas tendrias que comparar si el permiso ya existe o es nuevo,


despues haber escrito esto, me convenci 100% que la mejor forma es eliminar toooodo y reasignar todos los permisos.
  #3 (permalink)  
Antiguo 19/12/2011, 09:35
 
Fecha de Ingreso: julio-2010
Mensajes: 393
Antigüedad: 13 años, 8 meses
Puntos: 67
Respuesta: Insertar o actualizar registro desde form con checkboxes

Yo siempre he utilizado el método que estás utilizando en este momento, no tiene nada de malo, además, evitas validaciones o exclusiones que podrían causar lentitud en tu programa.

En lo personal, lo dejaría como lo tienes.
Saludos!
__________________
Páginas web de alta calidad y hechas a la medida.
  #4 (permalink)  
Antiguo 20/12/2011, 08:36
 
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 134
Antigüedad: 19 años, 3 meses
Puntos: 7
Respuesta: Insertar o actualizar registro desde form con checkboxes

Muchas gracias por la ayuda @el_quick y @Patriarka, lo dejo así como está entonces.

Etiquetas: checkbox, database, inserta
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 06:49.