Foros del Web » Programando para Internet » PHP »

lista de seleccion para eliminar con checkbo

Estas en el tema de lista de seleccion para eliminar con checkbo en el foro de PHP en Foros del Web. buenas a todos lo que quiero es algo sensillo pero no se como hacerle esta pregunta a google pro eso desidi preguntar a qui. lo ...
  #1 (permalink)  
Antiguo 19/06/2009, 12:35
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
lista de seleccion para eliminar con checkbo

buenas a todos lo que quiero es algo sensillo pero no se como hacerle esta pregunta a google pro eso desidi preguntar a qui.

lo que quiero es lo si quiente:

tengo una lista de de datos probeniente de una base de datos. la lado le e puesto un checkbo para q seleccione los q desea eliminar pero no se como hacero.

espero su ayud si no le es mucha molestia y gracias por atincipado
hqm
  #2 (permalink)  
Antiguo 19/06/2009, 13:01
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: lista de seleccion para eliminar con checkbo

Hmmmmmmm, imprime los checkbox con nombre tipo array y en el value pon, digamos, el id del registro.

En cada vuelta del bucle vas imprimiendo (solo un ejemplo):
<input type="checkbox" name="borrar[]" value="<?php echo $row['id']; ?>" />

Entonces, en tu archivo que borra los registros haces:
$borrar = implode(",", $_POST['borrar']);

Y ejecutas la consulta:
DELETE FROM tabla WHERE id IN($borrar)
  #3 (permalink)  
Antiguo 19/06/2009, 15:07
 
Fecha de Ingreso: diciembre-2008
Mensajes: 23
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: lista de seleccion para eliminar con checkbo

Primero haz el ejemplo como te lo indica aqui, talvez esto te sirva

Primero creas la tabla
CREATE TABLE `test_mysql` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`lastname` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7 ;

--
-- Dumping data for table `test_mysql`
--

INSERT INTO `test_mysql` VALUES (1, 'Billly', 'Blueton', '[email protected]');
INSERT INTO `test_mysql` VALUES (2, 'Jame', 'Campbell', '[email protected]');
INSERT INTO `test_mysql` VALUES (3, 'Mark', 'Jackson', '[email protected]');
INSERT INTO `test_mysql` VALUES (4, 'Linda', 'Travor', '[email protected]');
INSERT INTO `test_mysql` VALUES (5, 'Joey', 'Ford', '[email protected]');
INSERT INTO `test_mysql` VALUES (6, 'Sidney', 'Gibson', '[email protected]');


Aqui el codigo que necesitas para eliminar los datos....
<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Lastname</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['name']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['lastname']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['email']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}

// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=delete_multiple.php\">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>
  #4 (permalink)  
Antiguo 07/07/2009, 15:12
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: lista de seleccion para eliminar con checkbo

hey disculpame la tardansa pero como resibo la bariable $delete q de verdad no tengo idea de donde viene
  #5 (permalink)  
Antiguo 07/07/2009, 15:23
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: lista de seleccion para eliminar con checkbo

ya mira si tu tienes por cada fila de datos un checkbox haces lo siguiente:

*si buscas los datos con un while entonces asignale el ID de la fila de datos al checkbox osea asi: (tomemos ejemplo un registro de productos)

Código PHP:
<input type="checkbox" name="post[<?=$row['producto_id'];?>]"/>
Ya una vez que has seleccionado tus checks, con un boton mandas los ID escogidos a otra pagina que se encargara de eliminar los registros:

borrar.php
Código PHP:
$del=join(','array_keys($_POST['post']));
$sql="DELETE FROM productos WHERE producto_id IN (".$del.")";
mysql_query($sql,$c); 
con esto acumula los IDs escogidos y este conjunto se concatena con un query que se encarga de borrar todos los registros que tienen esos IDs. Espero lo entiendas, es muy sencillo.

suerte y saludos.
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 07/07/2009, 16:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: lista de seleccion para eliminar con checkbo

ok
yo te mostrare mi codigo y tu dime en q me equivoque

este el codigo que te muestra los chexbux
Código PHP:
<?php

// Connect to server and select databse.
$cont=mysql_connect('127.0.0.1','root','')or die ('Comunicarse con soporte tecnico Coneccion');
$sele=mysql_select_db("HQM_APC",$cont)or die ('Comunicarse con soporte tecnico Seleccion');    

$sql="select*from amigos";
$result=mysql_query($sql) or die ('Comunicarse con soporte tecnico Comprobasion');$row=mysql_fetch_array($result)
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form method="GET" action="eliminar.php">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Lastname</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
</tr>

<?php
$muestra 
mysql_query $sql ) or die ( 'Error de muestra de Datos' );
while(
$rows=mysql_fetch_array($muestra)){
?>

<tr>
<td align="center" bgcolor="#FFFFFF"><input name="b" type="checkbox"  value="<?php echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><?php echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['PN']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['SN']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['PA']; ?></td>
</tr>

<?php
}
?>

<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input  type="submit" value="Delete"></td>
</tr>

</table>
</form>
</td>
</tr>
</table>

Última edición por Hallking; 08/07/2009 a las 22:54
  #7 (permalink)  
Antiguo 07/07/2009, 16:26
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: lista de seleccion para eliminar con checkbo

mmm a menos primero verifica por ti mismo el codigo que te mostre no?

Segun tu codigo estas poniendo en el el Id en el value del checkbox... debe estar en el name ...

El ejemplo que te puse es para que mandes los ID por el metodo post a otra pagina que se encarga de eliminar. Asi que trata de implementar ese script en tu codigo. Saludos
__________________
Quitenme la vida pero no la bebida.
  #8 (permalink)  
Antiguo 07/07/2009, 16:39
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: lista de seleccion para eliminar con checkbo

ok

cuando estaba implementando tu codigo me tiro un error por eso lo quite y como tu lo conoces mejor q yo pense q podrias ponerlo vine y coregirlo y este codigo solo me bora uno de todos los q selecciono puedes ayudarme y dime como lo ago porfavor
  #9 (permalink)  
Antiguo 07/07/2009, 21:50
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: lista de seleccion para eliminar con checkbo

buenas pero alquien me puede ayudar pues es q el codigo q me diste no se por q me da un error
  #10 (permalink)  
Antiguo 08/07/2009, 00:54
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: lista de seleccion para eliminar con checkbo

hey porfavor q alquien me ayude pues siempre me da problema en esta parte y no se como hacerlo

<?php
include("Funcion.php");Coneccion();

if(strtolower($_SERVER['REQUEST_METHOD']) == "post") {
$lista=implode(',',$_POST['seleccion']);


$query="Delete From amigis Where id='$lista'";
$result=mysql_query($query) or die("no funciono");


}

?>
  #11 (permalink)  
Antiguo 08/07/2009, 22:52
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: lista de seleccion para eliminar con checkbo

ok mira he usado tu codigo pero el me elimina todo los datos a pesar de q solo seleccione uno puedes coregirme mira el codigo a qui

este es el que muestra los
Código PHP:
<?php

// Connect to server and select databse.
$cont=mysql_connect('127.0.0.1','root','')or die ('Comunicarse con soporte tecnico Coneccion');


$sql="select*from amigos";
$result=mysql_query($sql) or die ('Comunicarse con soporte tecnico Comprobasion');$row=mysql_fetch_array($result)
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form method="POST" action="eliminar.php">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Lastname</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
</tr>

<?php
$muestra 
mysql_query $sql ) or die ( 'Error de muestra de Datos' );
while(
$rows=mysql_fetch_array($muestra)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="checkbox" name="post[]" value="<?php echo $rows['id']; ?>" />
<input type="checkbox" name="posta[<?php $rows['id']; ?>]"/>
</td>
<td bgcolor="#FFFFFF"><?php echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['PN']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['SN']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['PA']; ?></td>
</tr>

<?php ;} ?>

<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input  type="submit" value="Delete"></td>
</tr>

</table>
</form>
</td>
</tr>
</table>
y este es el que elinima
Código PHP:
<?php

include("Funcion.php");Coneccion();

echo 
$a $_POST['post'];

echo 
$del=join(','array_keys($_POST['post'])); 

$query="Delete From $tb_names[$i] Where id IN ($del)";
$result=mysql_query($query)or die("no funciono");


?>
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 14:49.