Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

error de novato.. borrar un registro, ayudadme por favor

Estas en el tema de error de novato.. borrar un registro, ayudadme por favor en el foro de Bases de Datos General en Foros del Web. Buenas Me gustaría borrar un registro de mi base de datos, pero me da el siguiente error: Parse error: parse error in /home/www/recoin.com/fventas/baja2.php on line ...
  #1 (permalink)  
Antiguo 29/06/2004, 09:56
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 20 años
Puntos: 4
error de novato.. borrar un registro, ayudadme por favor

Buenas

Me gustaría borrar un registro de mi base de datos, pero me da el siguiente error:

Parse error: parse error in /home/www/recoin.com/fventas/baja2.php on line 18

yo lo que hago es pasar desde un formulario la variable $email, para poder dar de baja a ese email en la bd para que no reciba más boletines..

Código PHP:
<?php
 
  
//--------------Conectamos con la bd
  
require("conex_.php");
  
 
$busqueda= @mysql_query("SELECT email,id FROM suscriptor");
  if (!
$busqueda)
  { 
    echo (
"<br>Error al seleccionar los elementos de la base de datos, Inténtalo más tarde");
    exit;
  }
  while(
$row mysql_fetch_array($busqueda))
  {
        if (
$row["email"] == $email)
      {
        
$borrar=$row["id"];
        
DELETE FROM suscriptor where id=$borrar//linea 18
      
}
  }
?>
También había intentado así pero me da error

Código PHP:
<?php

  
//--------------Conectamos con la bd
  
require("conex_.php");

  
$busqueda= @mysql_query("SELECT email FROM suscriptor");
  if (!
$busqueda)
  { 
    echo (
"<br>Error al seleccionar los elementos de la base de datos, Inténtalo más tarde");
    exit;
  }
  while(
$row mysql_fetch_array($busqueda))
  {
        if (
$row["email"] == $email)
      {
        
DELETE FROM suscriptor where email=$email;
      }
  }
?>
  #2 (permalink)  
Antiguo 29/06/2004, 10:08
Avatar de peloteitor  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 849
Antigüedad: 20 años, 5 meses
Puntos: 1
No recuerdo muy bien el php pero a ver si esta pregunta t sirve de ayuda:
¿Por qué haces la primera consulta de la forma: @mysql_query("SELECT...."); y la segunda la metes a fuego en el código php?
__________________
El sexo sin amor es una experiencia vacía. Pero como experiencia vacía es una de las mejores.

Woody Allen
  #3 (permalink)  
Antiguo 29/06/2004, 10:19
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 20 años
Puntos: 4
No te entiendo

"¿Por qué haces la primera consulta de la forma: @mysql_query("SELECT...."); "

Lo hago para que recoja todos los emails de bd

"y la segunda la metes a fuego en el código php?"

nose que me quieres decir con esto.


A mi lo que me importa realmente es saber si el comando para borrar de la bd está bien:

DELETE FROM suscriptor where email=$email;

De todas formas gracias por contestar
  #4 (permalink)  
Antiguo 29/06/2004, 10:28
Avatar de peloteitor  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 849
Antigüedad: 20 años, 5 meses
Puntos: 1
El error que te da significa que el compilador de php no entiende esa línea. Eso es porque las palabras DELETE, FROM, etc ni son vbles ni son palabras reservadas de php.
Lo que quise decir antes es que no tendrias que hacer algo así como:
$borrar = @mysql_query("DELETE...");
__________________
El sexo sin amor es una experiencia vacía. Pero como experiencia vacía es una de las mejores.

Woody Allen
  #5 (permalink)  
Antiguo 29/06/2004, 11:02
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 20 años
Puntos: 4
Al parecer no había que ponerlo directamente, ya no me da error pero tampoco me borra el registro

Código PHP:
<?php
 
  
//--------------Conectamos con la bd
  
require("conex_.php");
  
//--------------Comprobamos  que el em@il no se ha introducido antes
  
$busqueda= @mysql_query("SELECT email,id FROM suscriptor");
  if (!
$busqueda)
  { 
    echo (
"<br>Error al seleccionar los elementos de la base de datos, Inténtalo más tarde");
    exit;
  }
  
  while(
$row mysql_fetch_array($busqueda))
  {
        if (
$row["email"] == $email_borrar)
      {
        
$borrar=$row["id"];
        
$comando "DELETE FROM suscriptor where id=$borrar";
        
mysql_query($comando);
      }
  }
?>
  #6 (permalink)  
Antiguo 29/06/2004, 11:02
 
Fecha de Ingreso: junio-2004
Mensajes: 84
Antigüedad: 19 años, 10 meses
Puntos: 0
Estimado asitudela:
Tu error es el siguiente, cuando pones DELETE FROM suscriptor where email=$email; Php intenta interpretar esa linea, al encontrar una palabra que no conoce (como DELETE), tira un error.
Para poder eliminar un registro utlizando php, tenes que usar la api correspondiente al motor de base de datos que estas usando. Por lo visto estas utilizando MySql, por lo tanto con la siguiente linea te bastara para lograr tu objetivo.
$query = "DELETE FROM suscriptor WHERE email = '$email' ";
mysql_query($query);

Nota: Puse la consulta dentro de una variable, porque de esta forma es mas facil hacer un debug de la misma.
__________________
Repositorio de funciones utiles para programadores y administradores
http://www.particle.com.ar
  #7 (permalink)  
Antiguo 29/06/2004, 11:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 20 años
Puntos: 4
me sigue sin funcionar

Puff me sigue sin funcionar

Código PHP:
<?php
  
//--------------Conectamos con la bd
  
require("conex_.php");
  
//--------------Comprobamos  que el em@il no se ha introducido antes
  
$busqueda= @mysql_query("SELECT email FROM suscriptor");
  if (!
$busqueda)
  { 
    echo (
"<br>Error al seleccionar los elementos de la base de datos, Inténtalo más tarde");
    exit;
  }
  while(
$row mysql_fetch_array($busqueda))
  {
        if (
$row["email"] == $email_borrar)
      {
        
$query "DELETE FROM suscriptor WHERE email = '$email_borrar' "
        
mysql_query($query);
      }
  }
?>
  #8 (permalink)  
Antiguo 30/06/2004, 01:55
Avatar de peloteitor  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 849
Antigüedad: 20 años, 5 meses
Puntos: 1
Intenta esto:
$query = "DELETE FROM suscriptor WHERE email = ".$email;
mysql_query($query);
__________________
El sexo sin amor es una experiencia vacía. Pero como experiencia vacía es una de las mejores.

Woody Allen
  #9 (permalink)  
Antiguo 02/07/2004, 09:21
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 20 años
Puntos: 4
GRACIAS eqsoftware y peloteitor

GRACIAS eqsoftware y peloteitor

Ya lo he solucionado, lo he hecho como me dijistes, aunque no tenías en cuenta una cosa muy importante (un descuido lo tiene cualquiera) que era el ; que hacía que no se ejecutara el query

Entonces quedaría así el asunto:

$query = "DELETE FROM suscriptor WHERE email = '$email_borrar'; ";
mysql_query($query);

Muchas gracias de nuevo
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 00:40.