Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 29-jun-2004, 09:56   #1 (permalink)
asitudela está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 313
Molesto 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;
      }
  }
?>
asitudela está desconectado   Responder Citando
Antiguo 29-jun-2004, 10:08   #2 (permalink)
peloteitor ha deshabilitado el karma
 
Avatar de peloteitor
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona (España)
Mensajes: 841
Enviar un mensaje por MSN a peloteitor
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
peloteitor está desconectado   Responder Citando
Antiguo 29-jun-2004, 10:19   #3 (permalink)
asitudela está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 313
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
asitudela está desconectado   Responder Citando
Antiguo 29-jun-2004, 10:28   #4 (permalink)
peloteitor ha deshabilitado el karma
 
Avatar de peloteitor
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona (España)
Mensajes: 841
Enviar un mensaje por MSN a peloteitor
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
peloteitor está desconectado   Responder Citando
Antiguo 29-jun-2004, 11:02   #5 (permalink)
asitudela está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 313
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);
      }
  }
?>
asitudela está desconectado   Responder Citando
Antiguo 29-jun-2004, 11:02   #6 (permalink)
eqsoftware ha deshabilitado el karma
 
Fecha de Ingreso: junio-2004
Mensajes: 84
Enviar un mensaje por MSN a eqsoftware
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
eqsoftware está desconectado   Responder Citando
Antiguo 29-jun-2004, 11:41   #7 (permalink)
asitudela está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 313
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);
      }
  }
?>
asitudela está desconectado   Responder Citando
Antiguo 30-jun-2004, 01:55   #8 (permalink)
peloteitor ha deshabilitado el karma
 
Avatar de peloteitor
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona (España)
Mensajes: 841
Enviar un mensaje por MSN a peloteitor
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
peloteitor está desconectado   Responder Citando
Antiguo 02-jul-2004, 09:21   #9 (permalink)
asitudela está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 313
Alegría 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
asitudela está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 13:48.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93