Foros del Web » Programando para Internet » PHP »

Problema con DELETE en MySQL

Estas en el tema de Problema con DELETE en MySQL en el foro de PHP en Foros del Web. Estoy realizando un Panel en el cual añadir y eliminar algunos productos. He reutilizado un codigo que me funcionaba perfectamente pero ahora me devuelve el ...
  #1 (permalink)  
Antiguo 04/05/2010, 14:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Problema con DELETE en MySQL

Estoy realizando un Panel en el cual añadir y eliminar algunos productos. He reutilizado un codigo que me funcionaba perfectamente pero ahora me devuelve el siguente error.

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

Código:
<?
include("../includes/config.php");
include("../includes/funciones.php");
include("../secure.php");

if(isset($_POST['submit'])){

        //borramos el registro.
        //nos conectamos a la bd.
        $cnx = conectar();
        //consulta sql.
        $sql = "DELETE FROM plafones WHERE id =".$_POST['id'];
        $res = mysql_query($sql) or die (mysql_error());
        //actualizamos el xml de agenda.
        actualizarXmlPlafones();
        //cerramos la conexión.
        mysql_close($cnx);
        //mensaje de exito.
        $titulo = "Registro Eliminado";
        $mensaje = "El registro ha sido Eliminado";
        $link = "<a href='../index.php'>regresar</a>";
        include("../mensajes.php");
        exit;
}

if(empty($_GET['id'])){
        header("Location: index.php");
}
?>
Este es mi codigo. Lo he repasado pero no entiendo el problema.
  #2 (permalink)  
Antiguo 04/05/2010, 14:47
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Problema con DELETE en MySQL

Cita:
Iniciado por gozamilefa Ver Mensaje
Estoy realizando un Panel en el cual añadir y eliminar algunos productos. He reutilizado un codigo que me funcionaba perfectamente pero ahora me devuelve el siguente error.

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

Código:
<?
include("../includes/config.php");
include("../includes/funciones.php");
include("../secure.php");

if(isset($_POST['submit'])){

        //borramos el registro.
        //nos conectamos a la bd.
        $cnx = conectar();
        //consulta sql.
        $sql = "DELETE FROM plafones WHERE id =".$_POST['id'];
        $res = mysql_query($sql) or die (mysql_error());
        //actualizamos el xml de agenda.
        actualizarXmlPlafones();
        //cerramos la conexión.
        mysql_close($cnx);
        //mensaje de exito.
        $titulo = "Registro Eliminado";
        $mensaje = "El registro ha sido Eliminado";
        $link = "<a href='../index.php'>regresar</a>";
        include("../mensajes.php");
        exit;
}

if(empty($_GET['id'])){
        header("Location: index.php");
}
?>
Este es mi codigo. Lo he repasado pero no entiendo el problema.

te falta el cierre de comillas (")
Código PHP:
$sql "DELETE FROM plafones WHERE id ='".$_POST['id']." '"
  #3 (permalink)  
Antiguo 04/05/2010, 14:54
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con DELETE en MySQL

Ya probe esta sintaxix. Pero asi no me elimina el dato de la tabla. Sigue apareciendo.
  #4 (permalink)  
Antiguo 04/05/2010, 15:00
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Problema con DELETE en MySQL

Cita:
Iniciado por gozamilefa Ver Mensaje
Ya probe esta sintaxix. Pero asi no me elimina el dato de la tabla. Sigue apareciendo.
Como recoges la variable $_POST['id']??, a lo mejor no reconoce el id


yo lo haria asi:

Código PHP:
Ver original
  1. //aqui tu conexion
  2. $sql = mysql_query("DELETE FROM tabla WHERE campo = '".$_POST['id']."'");
  #5 (permalink)  
Antiguo 04/05/2010, 15:05
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Problema con DELETE en MySQL

que haces con la variable $res ? ... ahora prueba imprimiendo la variable $sql para saber lo que te devuelve.
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 04/05/2010, 15:24
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con DELETE en MySQL

Recojo la variable mediante POST previamente enviada desde un indexde los productos y con un formulario de confirmacion.

<form action="<? echo $SERVER['PHP_SELF']?>" method="post" name="form1">
<input name="id" type="hidden" id="id" value="<? echo $_GET['id'];?>">
<input type="hidden" name="id" value="<? echo $id;?>">
¿Eliminar registro: Ref.<? echo $_GET['ref_sql'];?> ?<br>
<input name="submit" type="submit" id="submit" value="Enviar">
</form>
  #7 (permalink)  
Antiguo 04/05/2010, 15:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Problema con DELETE en MySQL

prueba imprimir el valor de post[id] antes de borrar pa ver si tiene el id que corresponde
  #8 (permalink)  
Antiguo 04/05/2010, 15:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con DELETE en MySQL

el valor post me da vacio, pero por get si que obtengo el valor
  #9 (permalink)  
Antiguo 04/05/2010, 17:21
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Problema con DELETE en MySQL

y como te muestra la url??, lo tienes asi

...?id=campoid

imprimer la url para verla
  #10 (permalink)  
Antiguo 05/05/2010, 12:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con DELETE en MySQL

Por su puesto

Código:
producto_borrar.php?id=13&ref_sql=1111111
Y por GET si que recibe la variable, ya que me la muestra en el texto. Pero cuando confirmo la eliminacion, deberia enviarla por formulario via POST.
  #11 (permalink)  
Antiguo 05/05/2010, 12:27
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Problema con DELETE en MySQL

entonces la url esta bien,

recogela asi e imprimela para ver si el id, lo recoge el post (quitale el hidden y reemplazalo or text)

Código PHP:
Ver original
  1. <input name="id" type="text" id="id" value="<? echo $_GET['id']; ?>" />

pruebalo y me avisas
  #12 (permalink)  
Antiguo 05/05/2010, 15:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con DELETE en MySQL

asi aparece una caja de texto con el contenido de id
  #13 (permalink)  
Antiguo 05/05/2010, 16:07
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con DELETE en MySQL

El primer value del formulario si lo recoje

Cita:
"<? echo $_GET['id'];?>"
pero el segundo value

Cita:
"<? echo $id;?>"
que es el que deberia asignar el valor para posteriormente enviarlo no lo hace.

Entiendo que el error debe estar ahi
  #14 (permalink)  
Antiguo 05/05/2010, 16:36
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Problema con DELETE en MySQL

Cita:
Iniciado por gozamilefa Ver Mensaje
El primer value del formulario si lo recoje



pero el segundo value



que es el que deberia asignar el valor para posteriormente enviarlo no lo hace.

Entiendo que el error debe estar ahi

y donde haces el echo $id que no lo veo??, mira para que te sea facil, adjudica lo recogido en GET a una variable y utiliza la variable en lugar del GET, asi como quieres hacer, en su echo $id
  #15 (permalink)  
Antiguo 26/05/2010, 10:11
 
Fecha de Ingreso: mayo-2010
Mensajes: 8
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problema con DELETE en MySQL

Ya lo he realizado


Código:
<form action="<? echo $SERVER['PHP_SELF']?>" method="post" name="form1">
    //Recojo la variable mediante GET//
    <input name="id" type="hidden" id="id" value="<? echo $_GET['id'];?>">
    //Creo una variable con el valor de id para enviarla por POST//
    <input type="hidden" name="id" value="<? echo $id;?>">
    ¿Eliminar registro: Ref.<? echo $_GET['ref_sql'];?> ?<br>
    <input name="submit" type="submit" id="submit" value="Enviar">
</form>
Poro no funciona

Etiquetas: delete, mysql
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 02:26.