Foros del Web » Programando para Internet » PHP »

Eliminar registro atraves de un checkbox. Para quien pueda

Estas en el tema de Eliminar registro atraves de un checkbox. Para quien pueda en el foro de PHP en Foros del Web. Hola a todos. La verdad es que no he podido encontrar la manera para poner a funcionar el script que elimina los registros a traves ...
  #1 (permalink)  
Antiguo 22/03/2006, 17:19
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 11 años, 9 meses
Puntos: 0
Eliminar registro atraves de un checkbox. Para quien pueda

Hola a todos.

La verdad es que no he podido encontrar la manera para poner a funcionar el script que elimina los registros a traves de Checkbox, ya cree la tabla donde muestra los registros que hay en la base de datos y el checkbox, tambien esta el botons es decir el submit.

La busqueda mia no es crear pagina de confirmación, lo que quiero es que al señalar y al darle clic al boton eliminar se borre.

El script que tengo lo dejo a concideracion de ustedes espero puedan colaborarme.

Código PHP:
if ((isset($_GET['ID'])) && ($_GET['ID'] != "")) {
  
$deleteSQL sprintf("DELETE FROM agenda WHERE ID=%s",
                       
GetSQLValueString($_GET['ID'], "int"));

  
mysql_select_db($database_sergio$sergio);
  
$Result1 mysql_query($deleteSQL$sergio) or die(mysql_error());
}

$colname_BorrarSergio "-1";
if (isset(
$_GET['ID'])) {
  
$colname_BorrarSergio = (get_magic_quotes_gpc()) ? $_GET['ID'] : addslashes($_GET['ID']);
}
mysql_select_db($database_sergio$sergio);
$query_BorrarSergio sprintf("SELECT * FROM agenda WHERE ID = %s"$colname_BorrarSergio);
$BorrarSergio mysql_query($query_BorrarSergio$sergio) or die(mysql_error());
$row_BorrarSergio mysql_fetch_assoc($BorrarSergio);
$totalRows_BorrarSergio mysql_num_rows($BorrarSergio);
?> 

Si se requiere tambien la tabla junto con este script, es la siguiente:

Código PHP:
 <form id="form1" name="form1" method="post" action="">
      <p>&nbsp;</p>
      <table width="100%" border="1" bordercolor="#EEEEEE" bgcolor="#EEEEEE">
        <tr>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">ID</th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">Nombre de la Cita </th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">Fecha</th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">Hora</th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">Observaciones</th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">&nbsp;</th>
        </tr>
        <?php do { ?>
        <tr>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['ID']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['NombreCita']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['Fecha']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><p align="center"><?php echo $row_RegistrosSergio['Hora']; ?>:<?php echo $row_RegistrosSergio['Minutos']; ?> <?php echo $row_RegistrosSergio['Formato']; ?></p></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['Observaciones']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><input name="checkbox" type="checkbox" id="checkbox" value="$ID" />
          
        <?  if ((isset($_GET['ID'])) && ($_GET['ID'] != "")) {
  
$deleteSQL sprintf("DELETE FROM agenda WHERE ID=%s",
                       
GetSQLValueString($_GET['ID'], "int"));

  
mysql_select_db($database_sergio$sergio);
  
$Result1 mysql_query($deleteSQL$sergio) or die(mysql_error());
}

$colname_BorrarSergio "-1";
if (isset(
$_GET['ID'])) {
  
$colname_BorrarSergio = (get_magic_quotes_gpc()) ? $_GET['ID'] : addslashes($_GET['ID']);
}
mysql_select_db($database_sergio$sergio);
$query_BorrarSergio sprintf("SELECT * FROM agenda WHERE ID = %s"$colname_BorrarSergio);
$BorrarSergio mysql_query($query_BorrarSergio$sergio) or die(mysql_error());
$row_BorrarSergio mysql_fetch_assoc($BorrarSergio);
$totalRows_BorrarSergio mysql_num_rows($BorrarSergio);
?>
          
          <label for="checkbox"></label></td>
         </tr>
        <?php } while ($row_RegistrosSergio mysql_fetch_assoc($RegistrosSergio)); ?>
      </table>
      <h3>
        <label for="Submit"></label>    
        <input type="submit" name='campos[$id_usuario][$id_codeferencia]' value="Eliminar" id="Submit" />    
        </h3>
      </form>

Mil Gracias,

Sergio Manjarres
  #2 (permalink)  
Antiguo 22/03/2006, 19:29
Avatar de bistoco  
Fecha de Ingreso: marzo-2006
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 0
no puedo revisar todo tu codigo ahora , pero te doy una solucion :

-cuando generes el formulario a cada checkbox ponle como id y name el codigo del registro asociado, nada ke ver el value, porke kieres asociar el nombre del campo, no el valor , por eso en value ponle 1 a todos, eso es solo para verificar luego cuales fueron ckekeados...y keda de la siguiente forma

****** pagina del formulario*********
// suponiendo ke la id del registro sea "reg_1"
// eso tu lo generas dinamicamente poniendo la llave primaria del registro

<input type="checkbox" id="reg_1" name="reg_1" value="1">

************* pagina ke revisa y elimina *********

// recibes los datos en el arreglo $_POST
// luego recorres este arreglo y si el valor para un dado registro es 1
// ejecutas la consulta DELETE

foreach($_POST as $id_registro => $valor){
if($valor==1){
$sql="DELETE FROM tabla WHERE id_registro=".$id_registro;
$r=mysql_query($sql,$conexion);
}
}

eso seria too...si tenis dudas , postea denuevo
  #3 (permalink)  
Antiguo 23/03/2006, 06:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te/les recomiendo usar la técnica de "array" para hacer referencias a su elementos del formulario (esos checkbox o cualquier otro) .. Tienen una referencia y ejemplo al respecto en esta FAQ:

http://www.forosdelweb.com/showthrea...710#post518710

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 23/03/2006, 06:43
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 11 años, 9 meses
Puntos: 0
Hola a Todos,

La verdad no se como utilizar un array en este codigo, ya probé lo que me dijo bistoco, y no me funciona, es envio nuevamente mi codigo, si alguien me puede colaborar les agradeceré mucho,

Muchas gracias, les dejo el codigo nuevamente:

Código PHP:
   <form id="form1" name="form1" method="post" action="">
      <p>&nbsp;</p>
      <table width="100%" border="1" bordercolor="#EEEEEE" bgcolor="#EEEEEE">
        <tr>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">ID</th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">Nombre de la Cita </th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">Fecha</th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">Hora</th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">Observaciones</th>
          <th bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col">&nbsp;</th>
        </tr>
        <?php do { ?>
        <tr>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['ID']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['NombreCita']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['Fecha']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><p align="center"><?php echo $row_RegistrosSergio['Hora']; ?>:<?php echo $row_RegistrosSergio['Minutos']; ?> <?php echo $row_RegistrosSergio['Formato']; ?></p></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['Observaciones']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><input name="reg_1" id="reg_1" type="checkbox" value="1" />
          
<?

foreach($_POST as $id_registro => $valor){
if(
$valor==1){
$sql="DELETE FROM agenda ID.$id_registro;
$r=mysql_query($sql,$conexion);
}
}
?>
          
          <label for="
checkbox"></label></td>
         </tr>
        <?php } while ($row_RegistrosSergio = mysql_fetch_assoc($RegistrosSergio)); ?>
      </table>
      <h3>
        <label for="
Submit"></label>    
        <input type="
submit" name='campos[$id_usuario][$id_codeferencia]' value="Eliminar" id="Submit" />    
        </h3>
      </form>
  #5 (permalink)  
Antiguo 24/03/2006, 13:13
Avatar de bistoco  
Fecha de Ingreso: marzo-2006
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 0
el problema es ke no hiciste lo ke te explike, mezclaste muchas cosas , tienes ke estudiar los conceptos basicos de html y php.

Saludos
  #6 (permalink)  
Antiguo 24/03/2006, 14:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Manjarres

Será mejor que definas que quieres hacer .. al parecer quieres propagar en tus checkbox seleccionados un par de datos ($id_usuario e $id_conferencia?). Si es así .. UN dato de cada "pareja" de datos irá en el checkbox, .. el que predomine (ese "ID_usuario" por ejemplo o el otro) y el otro dato tendrás que crearlo en un campo hidden del formulario.

Si usas la técnica que describí en el link que dejé (como array nombre[]) cara a PHP generas un par de arrays que tendras que recorrer con un bucle for() al mismo indice para ambas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 27/03/2006, 10:08
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 11 años, 9 meses
Puntos: 0
No se que hacer

Hola Cluster,

La verdad estoy muy enredado con esto, no se como hacerlo, mira lo que quiero hacer es lo siguiente:

Busco crear la manera para eliminar registro de la base de datos atraves de un checkbox, de manera tal que no haya nesecidad de ir a paginas de confirmación, es decir, que al seleccionar el campo y al darle clic en el submit se borre. definitivamente de la base de datos, no se como hacerlo, no se como empeza, el codigo que he tratado de hacer no me funciona, y cada vez me enredo mas.

Ademas como tengo la precion encima de mis jefes y aparte de la Universidad pienso menos en la solucion y solo agrando mas el problema.

Estoy demaciado enredado, no se como solucionar esto.

Muchas gracias a quienes me estan colaborando a solucionar mi problema.
__________________________________________
"El hoy fugaz es ténue,
Y es eterno,
Otro cielo no esperes,
ni otro infierno"

Jorge Luis Borges.
  #8 (permalink)  
Antiguo 27/03/2006, 10:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por Manjarres
Hola Cluster,

La verdad estoy muy enredado con esto, no se como hacerlo, mira lo que quiero hacer es lo siguiente:

Busco crear la manera para eliminar registro de la base de datos atraves de un checkbox, de manera tal que no haya nesecidad de ir a paginas de confirmación, es decir, que al seleccionar el campo y al darle clic en el submit se borre. definitivamente de la base de datos, no se como hacerlo, no se como empeza, el codigo que he tratado de hacer no me funciona, y cada vez me enredo mas.

Ademas como tengo la precion encima de mis jefes y aparte de la Universidad pienso menos en la solucion y solo agrando mas el problema.

Estoy demaciado enredado, no se como solucionar esto.

Muchas gracias a quienes me estan colaborando a solucionar mi problema.
__________________________________________
"El hoy fugaz es ténue,
Y es eterno,
Otro cielo no esperes,
ni otro infierno"

Jorge Luis Borges.
La solcuión la tienes -integra- en la FAQ que te dejé el link hace unos mensajes atras. Por favor intenta probarla .. por qué no es ni más ni menos que eso.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 28/03/2006, 10:18
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 11 años, 9 meses
Puntos: 0
Hola Cluster,

He estado mirando lo que me dijiste del vinculo, tienes razon, no lo habia leido bien, te cuento un problemita que tengo al respecto.

Yo ya habia creado la tabla para que se pudieran leer los registros. Y tambien habia creado el checkbox para que se ubicara de manera dinamica. El problema es que no se como llamarlo con un while o con un for, mira el codigo:


Código PHP:
<td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['ID']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['NombreCita']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['Fecha']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><p align="center"><?php echo $row_RegistrosSergio['Hora']; ?>:<?php echo $row_RegistrosSergio['Minutos']; ?> <?php echo $row_RegistrosSergio['Formato']; ?></p></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo $row_RegistrosSergio['Observaciones']; ?></div></td>
          <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><div align="center"><?php echo "<input type=checkbox name=checkbox value='ID'></td><tr>";?>
            <label for="checkbox"></label>         
            <label for="checkbox"></label></td></tr>
        <?php } while ($row_RegistrosSergio mysql_fetch_assoc($RegistrosSergio)); ?>
      </table>
y con el while, copiandolo textual de tu codigo seria este:

Código PHP:
while ($row mysql_fetch_array($resultado)){ 
  echo 
"<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['ID']."\">".$row['NombreCita']."<br>"

es decir, si observas, el checkbox mio ya esta creado, como lo llamo para ese ciclo, o de que manera lo ubico dentro de esa tabla junto con el while().

Curiosamente ayer lo hice, pero dentro de la celda se reproducia en cuantos registros hubieran.

No se si soy claro,

saludos,

______________________
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 01:16.