Foros del Web » Programando para Internet » PHP »

Eliminar Varios Registros con CHECKBOX

Estas en el tema de Eliminar Varios Registros con CHECKBOX en el foro de PHP en Foros del Web. tengo el problema que al tratar de eliminar varios registros no los puedo realizar con el boton de "borrar Seleccionados" Si alguien me puede ayudar, ...
  #1 (permalink)  
Antiguo 29/12/2005, 10:06
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
Eliminar Varios Registros con CHECKBOX

tengo el problema que al tratar de eliminar varios registros no los puedo realizar con el boton de "borrar Seleccionados"

Si alguien me puede ayudar, se lo agrradeceria un monton



En esta parte realizo la eliminación individual, pero necesito que alguien me ayude a realizarla con checkbox sobre los mismos campos que se muestran(elimino por el campo Id_Equipos )

while($row = mysql_fetch_array($cad)) {

echo ("<tr><td><input type='checkbox' name='Id_Equipos[$Id_equipos]'><a onclick='confirmDel();' href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a>
</td><td>".$row["Id_Equipos"]."</td><td>".$row["Tipo"]."</td><td>".$row["Marca"]."</td>
<td>".$row["Modelo"]."</td><td>".$row["N_Serie"]."</td><td>".$row["Descripcion"]."</td>
<td>".$row["Fecha_Compra"]."</td><td>".$row["N_Factura"]."</td><td>".$row["Rut_Proveedor"]."</td>
<td>".$row["Rut_Asignado"]."</td></tr>");
}




form name="form1" method="post" action="">
<input name="Enviar" type="submit" value="Borrar Seleccionado">
</form></td>
  #2 (permalink)  
Antiguo 29/12/2005, 11:04
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 19 años, 5 meses
Puntos: 1
Hola

Saludos

Te recomiendo que mires esta faq que en el foro de php
http://www.forosdelweb.com/showthrea...710#post518710

espero que hay este tu solucion
salu2 alex
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #3 (permalink)  
Antiguo 30/12/2005, 05:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Hay un problema con el link que dejó alexjnm .. dejo el link correcto:

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

Un saludo,
  #4 (permalink)  
Antiguo 30/12/2005, 07:03
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 19 años, 5 meses
Puntos: 1
diculpa cluster se me fue mal el link

saludos alexjnm
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #5 (permalink)  
Antiguo 30/12/2005, 08:00
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
Problemas Con Implode

Hola Amigos e modificado mi cogido a la forma en que muestran los ejemplos pero aun me arroja un error. les envio donde modifique y el error, pare ver si alguien me puede orientar mejor.

Saludos, Gran Foro

cree esa pagina para llamarla de un boton


<?php
include("conex.php");
$link=Conectarse();
$result=mysql_query("select * from Equipos",$link);

$lista=implode(',',$_POST['Id_Equipos']);

mysql_query("DELETE * FROM Equipos WHERE Id_Equipos IN (".$lista.")",$link);

?>

El error que me arroja es el sgte:

Warning: implode() [function.implode]: Bad arguments. in c:\wamp\www\root\borramultiple.php on line 7



Y aca esta donde hago referencia a la variable que me anclo para eliminar varios registros(Id_Equipos)



while($row = mysql_fetch_array($result)) {

echo ("<tr><td><input type='checkbox' name='Id_Equipos[$Id_equipos]'><a onclick='confirmDel();' href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a>
</td><td>".$row["Id_Equipos"]."</td><td>".$row["Tipo"]."</td><td>".$row["Marca"]."</td>
<td>".$row["Modelo"]."</td><td>".$row["N_Serie"]."</td><td>".$row["Descripcion"]."</td>
<td>".$row["Fecha_Compra"]."</td><td>".$row["N_Factura"]."</td><td>".$row["Rut_Proveedor"]."</td>
<td>".$row["Rut_Asignado"]."</td></tr>");
}

Saludos para todos.
  #6 (permalink)  
Antiguo 30/12/2005, 09:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El problema que tienes es que usas como "indice" del array generado en "id_equipos" el valor que deseas pasar al script PHP de proceso. Debes usar su "value" para definir ese valor.

El objetivo es que vas a generar un array correlativo de incice 0 a N con los "valores" de esos ID's ... no a n° de incides asociativos o numericos en esa posición exacta. Recuerda que sólo los checkbox que seleccionas son los que pasa al script de PHP .. los otros NO.

Código PHP:
name='Id_Equipos[]' value='$Id_equipos'
Un saludo,
  #7 (permalink)  
Antiguo 30/12/2005, 12:19
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
E hecho los cambios pero me marca otro error




Hola d nuevo e hecho los cambios pero aun me sigue generando un error

Warning: implode() [function.implode]: Bad arguments. in c:\wamp\www\root\borramultiple.php on line 7


<?php
include("conex.php");
$link=Conectarse();
$result=mysql_query("select * from Equipos",$link);

$lista=implode(',',$_POST['Id_Equipos']);

mysql_query("DELETE * FROM Equipos WHERE Id_Equipos IN (".$lista.")",$link);

?>


cambio ke genere

while($row = mysql_fetch_array($result)) {

echo ("<tr><td><input type='checkbox' name='Id_Equipos[]' value ='$Id_equipos'><a onclick='confirmDel();' href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a>
</td><td>".$row["Id_Equipos"]."</td><td>".$row["Tipo"]."</td><td>".$row["Marca"]."</td>
<td>".$row["Modelo"]."</td><td>".$row["N_Serie"]."</td><td>".$row["Descripcion"]."</td>
<td>".$row["Fecha_Compra"]."</td><td>".$row["N_Factura"]."</td><td>".$row["Rut_Proveedor"]."</td>
<td>".$row["Rut_Asignado"]."</td></tr>");
}

mysql_free_result($result);
mysql_close($link);


lo mando a llamar con el sgte:


<form name="form1" method="post" action="BorraMultiple.php">
<input name='Id_Equipos' type="submit" value="Borrar Seleccionados">
</form>
  #8 (permalink)  
Antiguo 30/12/2005, 12:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Nooo . . ¿por qué pones un input de nombre "id_equipos" y de tipo botón de enviar? .. Es no corresponde ..pon otro nombre a ese botón de enviar!

Y ese "<form ...>" .. tendrá que ir definido antes de tu bucle while() y cerrarlo despues del } con su "</form>";

Un saludo,
  #9 (permalink)  
Antiguo 02/01/2006, 06:13
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
Mensaje

hola cluster espero que no te moleste ke haga tantas preguntas pero en estos dias ando un poco nublado de pensamientos es por eso ke te vuelvo a enviar un nuevo problema con la eliminación.

luego de haber hecho las modificaciones ke me sugeriste me sigue apareciendo el siguiente error.

Warning: implode() [function.implode]: Bad arguments. in c:\wamp\www\root\borramultiple.php on line 7


basandose en los siguientes cambios



<?php


echo("<form name='form1' method='post' action='BorraMultiple.php'>");
echo("<input name='submit' type='submit' value='Borrar Seleccionado'>");

while($row = mysql_fetch_array($result)) {

echo ("<tr><td><input type='checkbox' name='Id_Equipos[]' value ='$Id_equipos'><a onclick='confirmDel();' href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a>
</td><td>".$row["Id_Equipos"]."</td><td>".$row["Tipo"]."</td><td>".$row["Marca"]."</td>
<td>".$row["Modelo"]."</td><td>".$row["N_Serie"]."</td><td>".$row["Descripcion"]."</td>
<td>".$row["Fecha_Compra"]."</td><td>".$row["N_Factura"]."</td><td>".$row["Rut_Proveedor"]."</td>
<td>".$row["Rut_Asignado"]."</td></tr>");
}
echo("</form>");

mysql_free_result($result);
mysql_close($link);


el error va mas enfocado a la funcion implode. si no me equivocase.

esta forma que estoy tratando de implementar es para eliminar varios registros, ya ke tengo la funcion para eliminar registros de uno a uno.


Saludos y Feliz Año Nuevo
  #10 (permalink)  
Antiguo 02/01/2006, 08:56
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 10 meses
Puntos: 2
Hola

Mira par que no ocurra ese warning debes preguntar si el arreglo Id_Equipos tiene mas de un valor.

if(count($_POST['Id_Equipos']) > 1) {
$lista = implode(',', $_POST['Id_Equipos']);
}
else {
$lista = $_POST['Id_Equipos']);
}
  #11 (permalink)  
Antiguo 02/01/2006, 09:10
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
MUCHAS GRACIAS POR LA AYUDA PERO AL MOMENTO DE SELECCIONAR LOS REGISTROS A ELIMINAR NO LOS ELIMINA, PERO YA NO ME MARCA EL ERROR ANTERIORMENTE MENCIONADO

CUAL SERA EL MOTIVO ESTARA MAL DEFINIDA MIS VARIABLES PARA ELIMINAR.





Cita:
Iniciado por Dwar
Hola

Mira par que no ocurra ese warning debes preguntar si el arreglo Id_Equipos tiene mas de un valor.

if(count($_POST['Id_Equipos']) > 1) {
$lista = implode(',', $_POST['Id_Equipos']);
}
else {
$lista = $_POST['Id_Equipos']);
}
  #12 (permalink)  
Antiguo 02/01/2006, 10:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Indica el código completo que te quedó despues de todas las modificaciones. (usa el botón "PHP" para que el código salga coloreado .. no uses colores própios que no se vé bien ...). Separa y nombra cada uno de los scripts que el código indiques.

Un saludo,
  #13 (permalink)  
Antiguo 02/01/2006, 10:30
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
Mensaje

este es mi codigo para eliminar uno o varios registros en el cual pagino y elimino

Código PHP:
<body bgcolor="#2C89AD">
<table width="792" height="38" border="0">
  <!--DWLayoutTable-->
  <tr> 
    <td width="786" height="34" valign="top" bgcolor=eec236> <p align="center"><font color="#000000" size="5" ><strong>Eliminar</strong></font></td>
    </tr>
</table>
<?php
   
include("conex.php");
   
$link=Conectarse();
   
$result=mysql_query("select * from Equipos",$link);
   
   
   
$base="Test";
   
$link=mysql_connect("localhost","root");
   
mysql_select_db($base,$link);
   if (!isset(
$pg))
    
$pg 0// $pg es la pagina actual
    
$cantidad=10// cantidad de resultados por página
    
$inicial $pg $cantidad;

    
$pegar = ("SELECT * FROM Equipos ORDER BY Id_Equipos LIMIT $inicial,$cantidad");
    
$result mysql_db_query($base,$pegar) or die (mysql_error());

    
$contar = ("SELECT * FROM Equipos ORDER BY Id_Equipos"); 
    
$contarokmysql_db_query($base,$contar);
    
$total_records mysql_num_rows($contarok);
    
$pages intval($total_records $cantidad);
?>
<tr></tr>
 
<td width="800" height="28" valign="top">&nbsp;</td>
  </tr>
  <tr>
  <tr>
  <tr>
  </tr></tr></tr>
    
<TABLE width="797" height="54" BORDER=1 CELLPADDING=1 CELLSPACING=1>
  <!--DWLayoutTable-->
  <TR> 
    <td width="110" height="23"> <div align="justify">&nbsp;<font size="3"><strong>ACCIONES&nbsp;</strong></font></div></TD>
    <td width="64">&nbsp;</td>
    <td width="25">&nbsp;</td>
    <td width="38">&nbsp;</td>
    <td width="40">&nbsp;</td>
    <td width="46">&nbsp;</td>
    <td width="64">&nbsp;</td>
    <td width="129">&nbsp;</td>
    <td width="88">&nbsp;</td>
    <td width="92">&nbsp;</td>
    <td width="81">&nbsp;</td>
  <TR> 
    <td height="28"></td>
    <TD valign="top"><div align="left"><font size="1"><font size="1">&nbsp;Id_Equipos</font></font></div></TD>
    <TD valign="top"><div align="left"><font size="1">&nbsp;Tipo</font><font size="2"><strong></strong></font></div>
    <TD valign="top"><div align="left"><font size="1">&nbsp;Marca&nbsp;</font></div>
    <TD valign="top"><div align="left"><font size="2"><font size="1">&nbsp;Modelo</font></font></div>
    <TD valign="top"><div align="left"><font size="1">&nbsp;N_Serie</font><font size="2"><strong></strong></font></div></TD>
    <TD valign="top"><div align="justify"><font size="1">&nbsp;Descripción</font><font size="2"><strong></strong></font></div></TD>
    <TD valign="top"><div align="left"><font size="1">Fecha_ Compra</font><font size="2"><strong></strong></font></div></TD>
    <TD valign="top"><div align="left"><font size="1">&nbsp;N_Factura</font><font size="2"></font></div></TD>
    <TD valign="top"><div align="left"><font size="1">&nbsp;Rut_ Proveedor</font></div></TD>
    <TD valign="top"><div align="left"><font size="1">&nbsp;Rut_Asignado</font></div></TD>
  </TR>
  <?php       


echo("<form name='form1' method='post' action='BorraMultiple.php'>");
echo(
"<input name='submit' type='submit' value='Borrar Seleccionado'>");  
      
   while(
$row mysql_fetch_array($result)) { 
   
        echo (
"<tr><td><input type='checkbox' name='Id_Equipos[$Id_equipos]'><a onclick='confirmDel(); 'href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a>                                        
                </td><td>"
.$row["Id_Equipos"]."</td><td>".$row["Tipo"]."</td><td>".$row["Marca"]."</td>
                <td>"
.$row["Modelo"]."</td><td>".$row["N_Serie"]."</td><td>".$row["Descripcion"]."</td>
                <td>"
.$row["Fecha_Compra"]."</td><td>".$row["N_Factura"]."</td><td>".$row["Rut_Proveedor"]."</td>
                <td>"
.$row["Rut_Asignado"]."</td></tr>"); 
         } 
echo(
"</form>");

     
mysql_free_result($result); 
     
mysql_close($link);   
     
     
     echo (
"<p class=fonty center>"); 
     
                if (
$pg != 0) { 
                    
$url $pg 1
                        echo (
"<a href='$PHP_SELF?pg=".$url."'>&laquo;Anterior</a>"); 
                              }
                              else { 
                                echo (
" "); 
                              } 
                    for (
$i 0$i <= $pages$i++) { 
                        if (
$i == $pg) { 
                            if (
$i == "0") { 
                        echo (
"<b> 1 </b>"); 
                                           }
                                 else { 
                                        
$i $i+1
                                            echo (
"<b> ".$i." </b>"); 
                                       } 
                                      }
                                        else { 
                                            if (
$i == "0") { 
                                            echo (
"<a href='$PHP_SELF?pg=".$i."'>1</a> "); 
                                     } 
                                             else { 
                                            echo (
"<a href='$PHP_SELF?pg=".$i."'>"); 
                                            
$i $i+1
                                            echo (
" ".$i." </a>"); 
                                            } 
                                                          } 
                                                } 
                                            if (
$pg $pages) { 
                                            
$url $pg 1
                                            echo (
"<a href='$PHP_SELF?pg=".$url."'>Siguiente&raquo;</a>"); 
                                                              }
                                                               else { 
                                                                echo (
" "); 
                                                                    } 
                                                                echo (
"</p>"); 
 
?>
</table>

<table width="772" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr> 
    <td width="125" height="29"></td>
    <td width="176"></td>
    <td width="51"></td>
    <td width="420"></td>
  </tr>
  <tr> 
    <td rowspan="2" valign="top"> <form name="form1" method="post" action="BorraMultiple.php">
        
      </form></td>

   
   

    <td height="16"></td>
    <td valign="top"><div align="center"><a href="Equipos.php"><strong><font size="2"> 
        Volver </font></strong></a></div></td>
    <td></td>
  </tr>
  <tr>
    <td height="4"></td>
    <td></td>
    <td></td>
  </tr>
  <tr> 
    <td height="46">&nbsp;</td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>
Código PHP:
//haca es donde llamo a BorraMultiple.php
<?php 
     
include("conex.php");
   
$link=Conectarse();
   
$result=mysql_query("select * from Equipos",$link);    

// Generamos una lista de los ID's (campo value= ..) que tenemos en nuestro array. 
if(count($_POST['Id_Equipos']) > 1) {
$lista implode(','$_POST['Id_Equipos']);
}
else {
$lista =($_POST['Id_Equipos']);
}

// Y lo aplicamos al SQL correspondiente y ejecutamos la consulta. 
mysql_query("DELETE * FROM Equipos WHERE Id_Equipos IN(".$lista.")",$link); 

header('Location: Equipos.php');

 
mysql_free_result($result); 
 
mysql_close($link);   

?>


Cita:
Iniciado por Cluster
Indica el código completo que te quedó despues de todas las modificaciones. (usa el botón "PHP" para que el código salga coloreado .. no uses colores própios que no se vé bien ...). Separa y nombra cada uno de los scripts que el código indiques.

Un saludo,
  #14 (permalink)  
Antiguo 02/01/2006, 10:47
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Yo le pongo una fichita a la siguiente corrección. En caso de que siga sin andar probá con 0, 1, y 2 checkbox seleccionados a ver si no anda nunca, o a veces.
Código PHP:
if(count($_POST['Id_Equipos']) > 1) {
$lista implode(','$_POST['Id_Equipos']);
}
else {
$lista =($_POST['Id_Equipos'][0]); //agrego 0 porque es un array, aunque tenga un solo valor

  #15 (permalink)  
Antiguo 02/01/2006, 10:48
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 10 meses
Puntos: 2
mira tengo una duda el campo en la base de datos llama igual en mayusculas y minusculas??

si es asi yo cambiaria esta linea

echo ("<tr><td><input type='checkbox' name='Id_Equipos[$Id_equipos]'><a onclick='confirmDel(); 'href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a>

por esta otra

echo ("<tr><td><input type='checkbox' name='Id_Equipos[]' value='$row[Id_Equipos]'>


fijate que tambien le quito las comillas del subindice del arreglo $row
  #16 (permalink)  
Antiguo 02/01/2006, 11:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Parece que el código que pusistes no aplicastes todas las modificaciones que te indicamos:

Esto no es correcto:
Código PHP:
echo ("<tr><td><input type='checkbox' name='Id_Equipos[$Id_equipos]'><a onclick='confirmDel(); 'href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a> 
Debes usar el "name" y dentro de el ahí poner el valor de tu "ID" del registro .. no sé si será $row['nose'] .. o lo que corresponda .. pero eso debe ser!.

Un saludo,
  #17 (permalink)  
Antiguo 02/01/2006, 11:41
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
Mensaje

hola amigos e hecho los cambios que me han sujerido, pero aun no me elimina varios registros a la vez, caso contrario es cuando elimino 1 por 1, si alguien puede aportar otras variantes se los agradeceria muchisimo
aqui esta el codigo completo muevamente con sus modificaciones



Código PHP:
codigo de borra.php
<body bgcolor="#2C89AD">
<table width="792" height="38" border="0">
  <!--DWLayoutTable-->
  <tr> 
    <td width="786" height="34" valign="top" bgcolor=eec236> <p align="center"><font color="#000000" size="5" ><strong>Eliminar</strong></font></td>
    </tr>
</table>
<?php
   
include("conex.php");
   
$link=Conectarse();
   
$result=mysql_query("select * from Equipos",$link);
   
   
   
$base="Test";
   
$link=mysql_connect("localhost","root");
   
mysql_select_db($base,$link);
   if (!isset(
$pg))
    
$pg 0// $pg es la pagina actual
    
$cantidad=10// cantidad de resultados por página
    
$inicial $pg $cantidad;

    
$pegar = ("SELECT * FROM Equipos ORDER BY Id_Equipos LIMIT $inicial,$cantidad");
    
$result mysql_db_query($base,$pegar) or die (mysql_error());

    
$contar = ("SELECT * FROM Equipos ORDER BY Id_Equipos"); 
    
$contarokmysql_db_query($base,$contar);
    
$total_records mysql_num_rows($contarok);
    
$pages intval($total_records $cantidad);
?>
<tr></tr>
 
<td width="800" height="28" valign="top">&nbsp;</td>
  </tr>
  <tr>
  <tr>
  <tr>
  </tr></tr></tr>
    
<TABLE width="797" height="54" BORDER=1 CELLPADDING=1 CELLSPACING=1>
  <!--DWLayoutTable-->
  <TR> 
    <td width="110" height="23"> <div align="justify">&nbsp;<font size="3"><strong>ACCIONES&nbsp;</strong></font></div></TD>
    <td width="64">&nbsp;</td>
    <td width="25">&nbsp;</td>
    <td width="38">&nbsp;</td>
    <td width="40">&nbsp;</td>
    <td width="46">&nbsp;</td>
    <td width="64">&nbsp;</td>
    <td width="129">&nbsp;</td>
    <td width="88">&nbsp;</td>
    <td width="92">&nbsp;</td>
    <td width="81">&nbsp;</td>
  <TR> 
    <td height="28"></td>
    <TD valign="top"><div align="left"><font size="1"><font size="1">&nbsp;Id_Equipos</font></font></div></TD>
    <TD valign="top"><div align="left"><font size="1">&nbsp;Tipo</font><font size="2"><strong></strong></font></div>
    <TD valign="top"><div align="left"><font size="1">&nbsp;Marca&nbsp;</font></div>
    <TD valign="top"><div align="left"><font size="2"><font size="1">&nbsp;Modelo</font></font></div>
    <TD valign="top"><div align="left"><font size="1">&nbsp;N_Serie</font><font size="2"><strong></strong></font></div></TD>
    <TD valign="top"><div align="justify"><font size="1">&nbsp;Descripción</font><font size="2"><strong></strong></font></div></TD>
    <TD valign="top"><div align="left"><font size="1">Fecha_ Compra</font><font size="2"><strong></strong></font></div></TD>
    <TD valign="top"><div align="left"><font size="1">&nbsp;N_Factura</font><font size="2"></font></div></TD>
    <TD valign="top"><div align="left"><font size="1">&nbsp;Rut_ Proveedor</font></div></TD>
    <TD valign="top"><div align="left"><font size="1">&nbsp;Rut_Asignado</font></div></TD>
  </TR>
  <?php       


echo("<form name='form1' method='post' action='BorraMultiple.php'>");
echo(
"<input name='submit' type='submit' value='Borrar Seleccionado'>");  
      
   while(
$row mysql_fetch_array($result)) { 
   
        echo (
"<tr><td><input type='checkbox' name='Id_Equipos[]' value='$row[Id_Equipos]'><a onclick='confirmDel(); 'href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a>                                        
                </td><td>"
.$row["Id_Equipos"]."</td><td>".$row["Tipo"]."</td><td>".$row["Marca"]."</td>
                <td>"
.$row["Modelo"]."</td><td>".$row["N_Serie"]."</td><td>".$row["Descripcion"]."</td>
                <td>"
.$row["Fecha_Compra"]."</td><td>".$row["N_Factura"]."</td><td>".$row["Rut_Proveedor"]."</td>
                <td>"
.$row["Rut_Asignado"]."</td></tr>"); 
         } 
echo(
"</form>");

     
mysql_free_result($result); 
     
mysql_close($link);   
     
     
     echo (
"<p class=fonty center>"); 
     
                if (
$pg != 0) { 
                    
$url $pg 1
                        echo (
"<a href='$PHP_SELF?pg=".$url."'>&laquo;Anterior</a>"); 
                              }
                              else { 
                                echo (
" "); 
                              } 
                    for (
$i 0$i <= $pages$i++) { 
                        if (
$i == $pg) { 
                            if (
$i == "0") { 
                        echo (
"<b> 1 </b>"); 
                                           }
                                 else { 
                                        
$i $i+1
                                            echo (
"<b> ".$i." </b>"); 
                                       } 
                                      }
                                        else { 
                                            if (
$i == "0") { 
                                            echo (
"<a href='$PHP_SELF?pg=".$i."'>1</a> "); 
                                     } 
                                             else { 
                                            echo (
"<a href='$PHP_SELF?pg=".$i."'>"); 
                                            
$i $i+1
                                            echo (
" ".$i." </a>"); 
                                            } 
                                                          } 
                                                } 
                                            if (
$pg $pages) { 
                                            
$url $pg 1
                                            echo (
"<a href='$PHP_SELF?pg=".$url."'>Siguiente&raquo;</a>"); 
                                                              }
                                                               else { 
                                                                echo (
" "); 
                                                                    } 
                                                                echo (
"</p>"); 
 
?>
</table>

<table width="772" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr> 
    <td width="125" height="29"></td>
    <td width="176"></td>
    <td width="51"></td>
    <td width="420"></td>
  </tr>
  <tr> 
    <td rowspan="2" valign="top"> <form name="form1" method="post" action="BorraMultiple.php">
        
      </form></td>

   
   

    <td height="16"></td>
    <td valign="top"><div align="center"><a href="Equipos.php"><strong><font size="2"> 
        Volver </font></strong></a></div></td>
    <td></td>
  </tr>
  <tr>
    <td height="4"></td>
    <td></td>
    <td></td>
  </tr>
  <tr> 
    <td height="46">&nbsp;</td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>
Código PHP:
codigo BorraMultiple.php
<?php 
     
include("conex.php");
   
$link=Conectarse();
   
$result=mysql_query("select * from Equipos",$link);    

// Generamos una lista de los ID's (campo value= ..) que tenemos en nuestro array. 
if(count($_POST['Id_Equipos']) > 1) {
$lista implode(','$_POST['Id_Equipos']);
}
else {
$lista =($_POST['Id_Equipos'][0]);
}

// Y lo aplicamos al SQL correspondiente y ejecutamos la consulta. 
mysql_query("DELETE * FROM Equipos WHERE Id_Equipos IN(".$lista.")",$link); 

mysql_free_result($result); 
mysql_close($link);   

header('Location: Equipos.php');
?>

aun no comprendo lo ke hay ke hacer para poder eliminar varios registros a traves de un checkbox

Muchas gracias por toda la ayuda ke me han entregado durante todo este corto tiempo

Cita:
Iniciado por Dwar
mira tengo una duda el campo en la base de datos llama igual en mayusculas y minusculas??

si es asi yo cambiaria esta linea

echo ("<tr><td><input type='checkbox' name='Id_Equipos[$Id_equipos]'><a onclick='confirmDel(); 'href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a>

por esta otra

echo ("<tr><td><input type='checkbox' name='Id_Equipos[]' value='$row[Id_Equipos]'>


fijate que tambien le quito las comillas del subindice del arreglo $row
  #18 (permalink)  
Antiguo 02/01/2006, 14:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Fijate en tu código HTML generado en concreto en los "value" de los checkbox si ahí ves tus ID's de registros .. por qué sigues teniendo problemas con el uso de comillas (de hecho no sé para que pones () en el echo . .no son necesarios, también debes "escapar" las comillas dobles cuando las necesites usar .. no usar ' simple si no corresponde.

Código PHP:
echo ("<tr><td><input type='checkbox' name='Id_Equipos[]' value='".$row["Id_Equipos"]."'><a onclick='confirmDel(); 'href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a> 
Y también comprueba en tu script PHP de proces si llegan esos "ID's" seleccionados. Haz un echo a $lista despues de aplicar el implode() o pasar por tu IF.

Código PHP:
// Y lo aplicamos al SQL correspondiente y ejecutamos la consulta. 
$sql="DELETE * FROM Equipos WHERE Id_Equipos IN(".$lista.")";
echo 
"Ejecutando sentencia SQL: ".$sql;
mysql_query($sql,$link) or die (mysql_error()); 
También puedes revisar que sentencia SQL exactamente vas a ejecutar.

Un saludo,
  #19 (permalink)  
Antiguo 03/01/2006, 05:41
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
Muchas Gracias Por Toda La Ayuda

GRACIAS A TODOS UDS. KE ME ENTREGARON LA AYUDA NECESARIA PARA PODER REALIZAR LA ELIMINACION DE VARIOS REGISTROS, YA KE AL FINALIZAR LA NOCHE PUDE DESCUBRIR COMO REALIZARLO.



Cita:
Iniciado por Cluster
Fijate en tu código HTML generado en concreto en los "value" de los checkbox si ahí ves tus ID's de registros .. por qué sigues teniendo problemas con el uso de comillas (de hecho no sé para que pones () en el echo . .no son necesarios, también debes "escapar" las comillas dobles cuando las necesites usar .. no usar ' simple si no corresponde.

Código PHP:
echo ("<tr><td><input type='checkbox' name='Id_Equipos[]' value='".$row["Id_Equipos"]."'><a onclick='confirmDel(); 'href=\"BorradoSql.php?Id_Equipos=".$row["Id_Equipos"]."\">Eliminar</a> 
Y también comprueba en tu script PHP de proces si llegan esos "ID's" seleccionados. Haz un echo a $lista despues de aplicar el implode() o pasar por tu IF.

Código PHP:
// Y lo aplicamos al SQL correspondiente y ejecutamos la consulta. 
$sql="DELETE * FROM Equipos WHERE Id_Equipos IN(".$lista.")";
echo 
"Ejecutando sentencia SQL: ".$sql;
mysql_query($sql,$link) or die (mysql_error()); 
También puedes revisar que sentencia SQL exactamente vas a ejecutar.

Un saludo,
  #20 (permalink)  
Antiguo 03/01/2006, 10:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y que problema concreto tenías?

Un saludo,
  #21 (permalink)  
Antiguo 03/01/2006, 12:14
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 3 meses
Puntos: 0
solucion

El principal problema ke tenia con el borrado multiple era ke al elegir los registros a borrar no los eliminaba con los procesos anteriormente elejidos, por lo cual los datos ke poseia la tabla no eran eliminados, y esto paraba principalmente por la funcion implode, ya ke esta no era lo suficientemente efectiva.

Para solucionar el problema descarte todo el proceso de implode y le asigne un comodin de almacenamiento para el array en la funcion foreach, y esto kedo de la sgte forma



Código PHP:
<?php 
     
include("conex.php");
   
$link=Conectarse();
   
$result=mysql_query("SELECT * FROM Equipos",$link);    

// Generamos una lista de los ID's (campo value= ..) que tenemos en nuestro array. 

if ($_POST['Id_Equipos'])   {

foreach(
$_POST['Id_Equipos'] as $var){

// Y lo aplicamos al SQL correspondiente y ejecutamos la consulta. 
mysql_query("DELETE FROM Equipos WHERE Id_Equipos=$var",$link); 

}
}
mysql_free_result($result); 
mysql_close($link);   

header('Location: Equipos.php');
?>
  #22 (permalink)  
Antiguo 03/01/2006, 12:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues realmente no sé por qué el "implode()" junto con el IN de la sentencia SQL no te funcionaba ..

He usado (y por eso desarrollé la FAQ que te mencioné) ambos métodos: bucle e implode() sin problemas muchas veces.

Un saludo,
  #23 (permalink)  
Antiguo 04/01/2006, 07:11
 
Fecha de Ingreso: junio-2004
Mensajes: 51
Antigüedad: 19 años, 10 meses
Puntos: 0
Mira , esto de borrar varios registros de un listado con check box yo lo hago muy sencillo , hago un funcion con javascript que escribe en un campo hidden de donde saca el id a borrar del value del checkbox.
en el campo hidden te quedara por ejemplo 1;5;20;60 etc etc.
en el evento click del checkbox lo mandas a la funcion que escribe en el campo hidden todos los check que estan chequedos, dejando el value separado por ;
El campo hidden que lo puedes llamar de nombre = "aborrar", a ese lo mandas por post al php que borra , y luego te haces un for para sacar numero por numero de lo registros que vas a borrar y generando una sola consulta sql para hacerla de una sola vez .

Si no me explico bien , tengo codigo para que lo veas mejor , avisame y lo publico, lo tengo que buscar.
Salu2s
  #24 (permalink)  
Antiguo 04/01/2006, 07:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Al final es lo mismo usar como técnica el nombre[] y trabajarlo como array en PHP ... (y no dependes de campos hidden que propagar por el URL ni de funciones javascript extra para tal fin).

Cita:
Si no me explico bien , tengo codigo para que lo veas mejor , avisame y lo publico, lo tengo que buscar.
No hace falta que pidas permiso para publicar ese código .. si lo tienes y lo estás mencionado, exponlo para que quede como "otra técnica" más para resolver el problema y .. quien vea este mensaje a futuro que escoja. (Pero aclarar que los problemas derivados con la solución "javascript" deberán tratarse en el foro correspondiente).


Un saludo,
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:06.