Foros del Web » Programando para Internet » PHP »

PHP OO eliminar datos multiples en php

Estas en el tema de eliminar datos multiples en php en el foro de PHP en Foros del Web. Hola, Estoy creando un proyecto y voy en la parte borrar,Ahora necesito que el programa me borre varios registros a la vez. Creo que el ...
  #1 (permalink)  
Antiguo 24/12/2013, 09:24
 
Fecha de Ingreso: diciembre-2013
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
Pregunta eliminar datos multiples en php

Hola,
Estoy creando un proyecto y voy en la parte borrar,Ahora
necesito que el programa me borre varios registros a la vez.
Creo que el problema esta en donde lo lanzo hacia

borrar.php

me dice que los datos los a borrado, pero no no los borro, creo que hay un problema en deasignar el checkbox o en la consulta delete, creo que aun nose como deasignar esa variable les dejo el codigo para que me ayuden.

de ante mano muchas gracias :)





Este es el primer php que muestra las tablas y donde esta el checkbox y lo envia a la direccion eliminar.php


Código PHP:
<?
//Conexion con la base
$conexion=mysql_connect("127.0.0.1","root","");
if (!
$conexion)
  {
  die(
'Could not connect: ' mysql_error());
  }
//Ejecucion de la sentencia SQL
mysql_select_db("registro3"$conexion);
//Ejecutamos la sentencia SQL
$result=mysql_query("select * from productos");
?>



<!DOCTYPE html>
<html>
<body>

<h1>Eliminar datos</h1>

<form method="post" action="eliminar.php">

<table align="center"  border='1' width='80%'>
<tr  bgcolor="868383">
<th height="50">codigo</th>
<th>nombre producto</th>
<th>descripcion</th>
<th>Precio</th>
<th>Cantidad</th>



</tr>




<?
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
echo 
'<tr> <td align="center"><input type="checkbox" name="casilla[] value=<? echo $rows["cod_producto"]; ?></td>';
echo 
'<td align="center">'.$row["nombre_producto"].'</td>';
echo 
'<td align="center">'.$row["descripcion"].'</td>';
echo 
'<td align="center">'.$row["precio"].'</td>';
echo 
'<td align="center">'.$row["cantidad"].'</td>';

'</tr>';

}

?>


</table>









<input type="submit" value="Eliminar" />

</form>






</html>










Y este es el eliminar.php en el cual hago referencia de que al momento de enviarla hacia haya dice que me borro, pero enralidad no a borrado nada :s

Código PHP:

<?php

$conexion
=mysql_connect("localhost","root","");
mysql_select_db("registro3"$conexion);


$x=$_POST["casilla"];

foreach (
$x as $value){

$res=mysql_query("DELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = '.$value.'");
mysql_query($res);
if(
$res){

echo 
'Dato eliminado correctamente<br />';

}
else 
'error <br />';
}

?>

<a href="borrar.php">Volver</a>
Saludos y le agradesco su comprension :)
  #2 (permalink)  
Antiguo 24/12/2013, 09:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 8 meses
Puntos: 2534
Respuesta: eliminar datos multiples en php

1. Aprende a depurar tu código

Si no sabes lo que sucede con tu consulta no puedes esperar a que alguien más lo adivine, lo mejor que puedes hacer es asignar la consulta a una cadena de texto e imprimir dicha consulta para verificar que esta bien formada.

Código PHP:
Ver original
  1. )// MAL
  2. $res=mysql_query("DELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = '.$value.'");
  3.  
  4. // BIEN
  5. $sql = "DELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = '.$value.'";
  6. $res = mysql_query($res);
  7.  
  8. echo "SQL=$sql";

¿La consulta está bien?

2. Aprende a usar las comillas bien

Si no depuraras tus consultas, ¿cómo esperas saber lo que haces mal?

Bueno, pues viendo el resultado de tu consulta (y de hecho a simple vista) estás concatenando la variable $value de forma incorrecta.

Código PHP:
Ver original
  1. // MAL
  2. $sql = "DELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = '.$value.'";
  3.  
  4. // BIEN
  5. $sql = "DELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = '$value'";

¿Se nota el error de comillas?

3. Lee lo siguiente: http://www.forosdelweb.com/f18/como-...as-bien-588701
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/12/2013, 10:34
 
Fecha de Ingreso: diciembre-2013
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
Respuesta: eliminar datos multiples en php

Muchas gracias por tu tiempo.
Se que debo aprender mas sobre esto, ya que llevo poco tiempo en php, ya leeré algunos libros y tutoriales de códigos, y me sirvió el post que mandaste gracias.

Ahora volviendo al tema, e analizado varias veces el código que me enviaste, pero sigo con el mismo problema de que dice eliminar dicho dato pero no lo hace, Ahora viéndolo el checkbox recibe el dato así que el problema no es ese, también e investigado antes de postear.

el $res al momento de designarle variable tampoco lo hace, lo hice de formas alas cuales conozco sin obtener el resultado, igualmente tengo que poner los paréntesis a la consulta hay me toma en cuenta la consulta, mientras eso no, pero aun así no cumple con el requisito pedido :/
  #4 (permalink)  
Antiguo 24/12/2013, 11:29
 
Fecha de Ingreso: diciembre-2013
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
Respuesta: eliminar datos multiples en php

Mi Ramo depende de esto :/
  #5 (permalink)  
Antiguo 24/12/2013, 12:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 15 años
Puntos: 2658
Respuesta: eliminar datos multiples en php

La sintaxis del DELETE, una vez construido no contiene errores:
Código SQL:
Ver original
  1. DELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = '$value'
En tanto $value contenga algo que sea realmente un cod_producto real, no fallará.
Pero no sabemos lo que está entrando, ni qué características tiene ese campo.
Por empezar, si es numérico, elimina los apóstrofes:
Código PHP:
$sql "DELETE FROM `registro3`.`productos` WHERE `productos`.`cod_producto` = $value"
Si falla por un error de sintaxis, es que $value no contiene nada. Si falla por campo inexistente, tiene una cadena de texto con letras donde debería tener un número, y eso no es lo mismo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 24/12/2013, 17:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 15 años
Puntos: 2658
Respuesta: eliminar datos multiples en php

¿En serio?

Código PHP:
while ($row=mysql_fetch_array($result))
{
echo '<tr> <td align="center"><input type="checkbox" name="casilla[] value=<? echo $rows["cod_producto"]; ?></td>';
echo '<td align="center">'.$row["nombre_producto"].'</td>';
echo '<td align="center">'.$row["descripcion"].'</td>';
echo '<td align="center">'.$row["precio"].'</td>';
echo '<td align="center">'.$row["cantidad"].'</td>';

'</tr>';

}
¿No sería así en realidad?:
Código PHP:
while ($row=mysql_fetch_array($result))
{
echo 
'<tr> <td align="center"><input type="checkbox" name="casilla[] value='.$rows["cod_producto"].'</td>';
echo 
'<td align="center">'.$row["nombre_producto"].'</td>';
echo 
'<td align="center">'.$row["descripcion"].'</td>';
echo 
'<td align="center">'.$row["precio"].'</td>';
echo 
'<td align="center">'.$row["cantidad"].'</td>';
echo 
'</tr>';

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 25/12/2013 a las 19:05

Etiquetas: html, multiples, mysql, registro, select, sql, tabla, variable
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 22:36.