Foros del Web » Programando para Internet » PHP »

error al eliminar multiples registros

Estas en el tema de error al eliminar multiples registros en el foro de PHP en Foros del Web. hola a todos bueno estoy queriendo eliminar multiples registro y me esta dando un error pero no se en que parte. este es el codigo ...
  #1 (permalink)  
Antiguo 04/08/2008, 10:39
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación error al eliminar multiples registros

hola a todos bueno estoy queriendo eliminar multiples registro y me esta dando un error pero no se en que parte.

este es el codigo para hacer la consulta y presentarlo en una tabla y cada registro con su respectivo checkbox... funciona bien....
Código PHP:
<html><title>Eliminar</title>
<head>
</head>
<body> 
 
<form name="frm_sub" method="post" action="../conexion/con_eli_usu.php" onSubmit="confirmar()">
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="submit" name="Submit" value="Eliminar Seleccionados">
</form>
<p>
  <?php 
include("../conexion/conexion.php");
$link=Conectarse();
$result mysql_query("SELECT id,usuario,nombre,apellido,cedula,direccion FROM ing_usu where estado_usu='A'"$link); 
if (
$result!=0){ 
  echo 
"<table border = '1'> \n"
  echo 
"<tr bgcolor='#ECE9D8'><td><div align='center'><strong>Id</strong></div></td><td><div align='center'><strong>Usuario</strong></div></td><td><div align='center'><strong>Nombre</strong></div></td><td><div align='center'><strong>Apellido</strong></div></td><td><div align='center'><strong>Cedula</strong></div></td><td><div align='center'><strong>Direccion</strong></div></td><td><div align='center'><strong>Eliminar</strong></div></td></tr> \n"
  while (
$row mysql_fetch_array($result)) {
  
//$id= $row["id"];
    
echo "<tr><td>".$row["id"].
      
"</td><td>".$row["usuario"]."</td><td>".$row["nombre"]."</td><td>".$row["apellido"]."</td><td>".$row["cedula"]."</td><td>".$row["direccion"]."</td><td valign='middle'><form name='form1' method='post' action=''><div align='center'>
      <input type='checkbox' name='checkbox[]' value=\""
.$row['id']."\">
    </div>  
    </form></td></tr> \n"

  }
  echo 
"</table> \n"
}
else
  echo 
"¡ No se ha encontrado ningún registro !";
?>
</p>
<p>&nbsp;</p>
</body> 
</html>

este es el codigo que recibe supuestamente el id para poder eliminarlo(yo no lo elimino solo le cambio el estado de activo a inactivo) pero no mefunciona me da un error:
Warning: implode() [function.implode]: Bad arguments. in C:\xampp\htdocs\sisfac\conexion\con_eli_usu.php on line 5

Código PHP:
<?php
include("conexion.php");
$link=Conectarse();
$lista=implode(',',$_POST['checkbox']);
mysql_query("update ing_usu set estado_usu='I' WHERE id IN(".$lista.")",$link);
?> 
<script language="javascript">
location.href='../paginas/eli_usu.php'
</script>
no se que es lo que pasa si alguien me puede ayudar muchas gracias....
  #2 (permalink)  
Antiguo 04/08/2008, 11:02
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: error al eliminar multiples registros

Que tal cchusann estas cerrando el formulario antes de incluir el resultado de tu consulta, por esa razón no te reconoce los valores que le estas pasando y la función implode no lo reconoce como arreglo prueba así el código:

Código PHP:
<html><title>Eliminar</title> 
<head> 
</head> 
<body>  
  
<form name="frm_sub" method="post" action="../conexion/con_eli_usu.php" onSubmit="confirmar()"> 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<p> 
  <?php  
include("../conexion/conexion.php"); 
$link=Conectarse(); 
$result mysql_query("SELECT id,usuario,nombre,apellido,cedula,direccion FROM ing_usu where estado_usu='A'"$link) or die("Error en query:" .mysql_error() ); 
$filas  mysql_num_rows($result); 
if (
$filas != 0){  
  echo 
"<table border = '1'> \n";  
  echo 
"<tr bgcolor='#ECE9D8'><td><div align='center'><strong>Id</strong></div></td><td><div align='center'><strong>Usuario</strong></div></td><td><div align='center'><strong>Nombre</strong></div></td><td><div align='center'><strong>Apellido</strong></div></td><td><div align='center'><strong>Cedula</strong></div></td><td><div align='center'><strong>Direccion</strong></div></td><td><div align='center'><strong>Eliminar</strong></div></td></tr> \n";  
  while (
$row mysql_fetch_array($result)) { 
  
//$id= $row["id"]; 
    
echo "<tr><td>".$row["id"]. 
      
"</td><td>".$row["usuario"]."</td><td>".$row["nombre"]."</td><td>".$row["apellido"]."</td><td>".$row["cedula"]."</td><td>".$row["direccion"]."</td><td valign='middle'><form name='form1' method='post' action=''><div align='center'> 
      <input type='checkbox' name='checkbox[]' value=\""
.$row['id']."\"> 
    </div>   
    </form></td></tr> \n"
;  
  } 
  echo 
"</table> \n";  

else 
  echo 
"¡ No se ha encontrado ningún registro !"
?> 
</p> 
<p>&nbsp;</p>
  <input type="submit" name="Submit" value="Eliminar Seleccionados"> 
</form>
</body>  
</html>


Saludos.
  #3 (permalink)  
Antiguo 04/08/2008, 11:03
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: error al eliminar multiples registros

pue ssegun veo el error esta es en el implode como dice hay mismo:

cambie
Código PHP:
$lista=implode(',',$_POST['checkbox']); 
por
Código PHP:
for  ($a=0$a<count($_POST['checkbox']);$a++)
{
if (
$lista == ''$separador=""; else $separador ",";
$lista $lista.$separador.$_POST['checkbox'][$a];

  #4 (permalink)  
Antiguo 04/08/2008, 11:18
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

ok helacer...
ya hice lo que me dijiste y correctamente ya no me sale el error pero no me ejecuta la sentencia...

sera que no le estoy pasando el id.........
  #5 (permalink)  
Antiguo 04/08/2008, 11:23
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

muchisimas gracias solucionado....

combine las 2 respuestas y me funciono excelente....

se les agradece un monton............
  #6 (permalink)  
Antiguo 04/08/2008, 11:44
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

Bueno parece que no se soluciono por completo....

porque de que elimina elimina.... pero selecciono los que quiero eliminar y aplasto el boton eliminar y solo se me elimina uno y asi pasa solo me esta eliminando uno.... por que no se eliminan los que yo selecciono.......

si alguien lo sabe muchas gracias................
  #7 (permalink)  
Antiguo 04/08/2008, 11:47
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: error al eliminar multiples registros

haga una prueba deje el implode otra vez y ya le deberia funcionar.

osea que solo quede el cambio que le dijo carlojas y vuelva a dejar el implode y listo.

aunque con mi codigo tambien deberia funcionar pero para no alargarnos haga lo que le dije y nos cuenta si le funciona
  #8 (permalink)  
Antiguo 04/08/2008, 11:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error al eliminar multiples registros

ya imprimiste el SQL antes de ejecutarlo??

asi puedes ver cual es el comportamiento real de tu consulta, espero lo hagas... veras que simple es, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 04/08/2008, 12:34
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

hola pateketrueke....

ok tengo 2 usuarios uno con el indice 2 y el otro con el indice 4

selecciono los dos... y le hice un echo a $lista y solo me esta cogiendo el primer indice(el 2)

xq solo me pasa ese...
  #10 (permalink)  
Antiguo 04/08/2008, 12:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error al eliminar multiples registros

has un
Código PHP:
print_r($_POST['checkbox']); 
si estan ahi los indices, estas haciendo mal la conjetura de ID's .... has lo primero, y si aparecen... intenta colocando tu codigo donde creas los indices para usar con IN()

una ves echo, se puede notar cual es el problema...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 04/08/2008, 12:52
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

seleccione los dos ckeckbox el 2 y el 4 e hice lo que me dijiste y solo me sale esto...........

Array ( [0] => 2 )

no me sale el 4....
  #12 (permalink)  
Antiguo 04/08/2008, 12:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error al eliminar multiples registros

mmm... ves, asi se avanza mas.... ahora, vamos a comprobar que este bien el HTML que usas...

intenta cambiarle el name checkbox[] por alguno mas familiar, llamemosle.... borrar[]

solo que en esta ocasion... no asignes el ID al value... sino, dentro de las llaves del name

asi..

Código PHP:
<input type="checkbox" name="borrar[<?php echo $row['id']; ?>]"/>
vuelve a enviar el formulario, igualmente... un print_r() y si quieres tambien un echo al SQL, te espero... suerte!

PDTA: no vendria mal, revisar el codigo ya generado en el navegador (codigo fuente) y revisar personalmente como esta escrito...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 04/08/2008, 13:07
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

poniendo asi como tu me dices me sale un error:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\sisfac\paginas\eli_usu.php on line 29
  #14 (permalink)  
Antiguo 04/08/2008, 13:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error al eliminar multiples registros

puedes colocar las lineas que rodean la del error... osea, la linea del error... y las previas y consecutivas

postealas... porque seguramente, solo intentaste copiar y pegar mi codigo... (perdon si me equivoco)

digo, lo unico que tenias que hacer... era cambiar el name y reajuastar el ID

Código PHP:
      <input type='checkbox' name='checkbox[".$row['id']."]'
pero de acuerdo con tu codigo... no necesariamente el mio se ajustaba al tuyo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 04/08/2008, 13:24
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

ya lo puse asi...
Código PHP:
<input type='checkbox' name='checkbox[\"".$row['id']."\"]'
y funca pero solo manda como te dije enantes el primer indice(el 2)

Array ( [\"2\"] => on )
  #16 (permalink)  
Antiguo 04/08/2008, 13:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error al eliminar multiples registros

OK, si te fijas... pones comillas de mas... ese es un error

Código PHP:
echo "<input type='checkbox' name='borrar[$row[id]]'>"
con respecto... al codigo fuente... ¿ya lo has revisado???

osea... el codigo generado, en HTML ???

ya comprobaste que realmente exista... checkbox[ID] respectivamente???

por cierto, intenta cambiar el name checkbox[] por algo comun.... borrar[] por ejemplo... xD
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 04/08/2008, 13:40
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

si ya lo puse y ya revise todo y solo me manda el ese indice el 2...

no me esta enviando los multiples indices que selecciono..........
  #18 (permalink)  
Antiguo 04/08/2008, 14:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error al eliminar multiples registros

pues ya lo he dicho... entonces, no es culpa de PHP... sino del HTML

segun tu, esta bien echo... y no lo dudo, pero... podrias copiar y pegar el formulario completo un ves esta en el navegador... osea, "ver codigo fuente > seleccionar todo > copiar"

y lo posteas... lo analizamos y veremos el problema, ya que entonces... si radica en el HTML, o no?

NO el php.... aunque si pones el codigo completo que usas, es tambien es util....
SI el html.... yo recomiendo, postees ambos codigos... para titubear menos
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #19 (permalink)  
Antiguo 04/08/2008, 14:44
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

aqui esta el codigo fuente....
Código HTML:
<html><title>Eliminar</title>
<head>
<script language="javascript">
function confirmar(){
if(document.form1.borrar[].checked==true){
if(confirm("Realmente Desea eliminar el usuario")){
document.frm_sub.submit();
}
}
}
</script>
</head>
<body> 
 
<form name="frm_sub" method="post" action="../conexion/con_eli_usu.php" onSubmit="confirmar()">
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<p>
  <table border = '1'> 
<tr bgcolor='#ECE9D8'><td><div align='center'><strong>Id</strong></div></td><td><div align='center'><strong>Usuario</strong></div></td><td><div align='center'><strong>Nombre</strong></div></td><td><div align='center'><strong>Apellido</strong></div></td><td><div align='center'><strong>Cedula</strong></div></td><td><div align='center'><strong>Direccion</strong></div></td><td><div align='center'><strong>Eliminar</strong></div></td></tr> 

<tr><td>2</td><td>cchusann</td><td>cesar</td><td>chusan</td><td>0919571604</td><td>milagro</td><td valign='middle'><form name='form1' method='post' action=''><div align='center'>
      <input type='checkbox' name='borrar[]' value="2">
	</div>  
    </form></td></tr> 
<tr><td>4</td><td>cchusann</td><td>cesar</td><td>chusan</td><td>0919571604</td><td>milagro</td><td valign='middle'><form name='form1' method='post' action=''><div align='center'>

      <input type='checkbox' name='borrar[]' value="4">
	</div>  
    </form></td></tr> 
</table> 
</p>
<p>&nbsp;</p>
<input type="submit" name="Submit" value="Eliminar Seleccionados">
</form>
</body> 
</html> 
que crees que sea........
  #20 (permalink)  
Antiguo 04/08/2008, 14:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error al eliminar multiples registros

ya viste.... que se cierra varias veces </form> no se tu, pero segun... solo debe ser un formulario...

entonces, si.... (disculpa) es error de tu PHP, procura... solo imprimir un formulario.... ya que despues del primer checkbox... se cierra este... y por ende, solo se envia este....

lo digo, por que es obvio... personalmente te invito a usar algunas extensiones buenas para firefox, que te ayudaran a validar tu HTML, y sobre todo... depurar algunos que otros detalles "invisibles"

NOTA: si corriges tu formulario, la manera en que lo imprimes... ya esta, listo!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #21 (permalink)  
Antiguo 04/08/2008, 15:22
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error al eliminar multiples registros

que tonto es verdad...

muchisimas gracias me funciono de maravilla...........
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 07:39.