Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   error de novato.. borrar un registro, ayudadme por favor (http://www.forosdelweb.com/f21/error-novato-borrar-registro-ayudadme-por-favor-213722/)

asitudela 29/06/2004 09:56

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;
      }
  }
?>


peloteitor 29/06/2004 10:08

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?

asitudela 29/06/2004 10:19

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

peloteitor 29/06/2004 10:28

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...");

asitudela 29/06/2004 11:02

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);
      }
  }
?>


eqsoftware 29/06/2004 11:02

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.

asitudela 29/06/2004 11:41

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);
      }
  }
?>


peloteitor 30/06/2004 01:55

Intenta esto:
$query = "DELETE FROM suscriptor WHERE email = ".$email;
mysql_query($query);

asitudela 02/07/2004 09:21

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


La zona horaria es GMT -6. Ahora son las 10:38.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.