Foros del Web » Programando para Internet » PHP »

No entiendo este error

Estas en el tema de No entiendo este error en el foro de PHP en Foros del Web. En mi página web para borrar un registro llamo a un script php desde un formulario. El código es este: Código PHP: <?php $link3  =  ...
  #1 (permalink)  
Antiguo 20/12/2010, 09:21
 
Fecha de Ingreso: diciembre-2010
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
No entiendo este error

En mi página web para borrar un registro llamo a un script php desde un formulario. El código es este:
Código PHP:
<?php
$link3 
mysql_connect("*******""*******","******"); //conecto con el servidor de  base de datos
mysql_select_db("*******"$link3); //abro la base de datos
$email $_POST[email];
$nombre $_POST[tabla];
$sentencia "DELETE FROM $nombre WHERE email= '$email'";
$result mysql_query($sentencia$link3) or die(mysql_error());
mysql_close($link3);
?>
<script language="javascript">
window.location.href="http://www.avisad-a.com/index.php?option=com_content&view=article&id=52&Itemid=62";
</script>
Pues bien, cuando se ejecuta el script me sale el siguiente error y no sé qué puedo hacer:

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 'JavaScript' type='text/javascript'>

Llevo dos días y supongo que debe ser algún detalle menor pero no lo veo. Muchas gracias por adelantado
  #2 (permalink)  
Antiguo 20/12/2010, 09:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: No entiendo este error

probaste hacer un echo de las variables $email y $nombre antes de la consulta ?
  #3 (permalink)  
Antiguo 20/12/2010, 13:25
 
Fecha de Ingreso: diciembre-2010
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: No entiendo este error

Sí. Y me salen correctamente.
  #4 (permalink)  
Antiguo 20/12/2010, 13:31
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 18 años
Puntos: 0
Respuesta: No entiendo este error

Seguro? me suena que estas pasando valores de mas desde el formulario.
Podes poner el codigo del formulario?
  #5 (permalink)  
Antiguo 20/12/2010, 14:22
 
Fecha de Ingreso: diciembre-2010
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: No entiendo este error

Esta es el código que llama al script "borrar_contacto.php":

Código PHP:
<table align="center">
<tr>
<th>Nombre</th>
<th>Email</th>
</tr>
<?php
//Mostramos los registros
while ($row=mysql_fetch_array($result3))
{

?>

<tr><td><?php echo $row["nombre"]; ?></td>
<td><?php echo $row["email"]; ?></td><td><form method="post" action="scripts/borrar_contacto.php"><input type="hidden" name="tabla" value="<?php echo $nombre_tabla;?>"><input type="hidden" name="email" value="<?php echo $row["email"];?>"><input type="submit" name="borrar" value="Borrar"></form></tr>

<?php

}

mysql_free_result($result3);
mysql_close($link2);
?>
</table>
Lo que quiero hacer es mostrar los contactos que tiene cada usuario en un bucle y en cada iteracion muestro el nombre y el correo además de un botón para borrarlo. El botón es un formulario y como podéis ver añado al array del formulario campos del tipo "hidden" que servirán para identificar la tabla y el registro mysql.

Muchísimas gracias
  #6 (permalink)  
Antiguo 20/12/2010, 14:31
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 18 años
Puntos: 0
Respuesta: No entiendo este error

proba cambiando <?php echo $row["email"]; ?>

por <?php echo $row['email']; ?>

estas dentro de una doble comilla y metes otra...
  #7 (permalink)  
Antiguo 20/12/2010, 14:34
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 18 años
Puntos: 0
Respuesta: No entiendo este error

$email = $row["email"];

<?php echo $email; ?>
  #8 (permalink)  
Antiguo 20/12/2010, 14:34
 
Fecha de Ingreso: diciembre-2010
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: No entiendo este error

Ya lo he probado y sigue igual. Mucas gracias.
  #9 (permalink)  
Antiguo 20/12/2010, 19:51
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Respuesta: No entiendo este error

hola jorgeasin has notado que pusiste la variable en vez el nombre de la tabla?:
Código PHP:
Ver original
  1. $sentencia = "DELETE FROM $nombre WHERE email= '$email'";
no tendria que ir asi?
Código PHP:
Ver original
  1. $sentencia = "DELETE FROM nombre WHERE email= '$email'";

Saludos!
__________________
Appones.net - www.appones.net
  #10 (permalink)  
Antiguo 20/12/2010, 20:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: No entiendo este error

Así tampoco. Me sale el mismo error
Sin cambiarlo, cuando hago un echo de $sentencia sale bien pero al enviar la consulta falla.
  #11 (permalink)  
Antiguo 20/12/2010, 20:56
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: No entiendo este error

$email = $_POST[email];
$nombre = $_POST[tabla];

por

$email = $_POST["email"];
$nombre = $_POST["tabla"];

El error que te sale es el mismo desde que iniciaste este post???
El error es el mismo que en tu primer mensaje???

Salut!!
__________________
Lo maravilloso de aprender algo es que nadie puede arrebatárnoslo.
  #12 (permalink)  
Antiguo 20/12/2010, 21:06
 
Fecha de Ingreso: diciembre-2010
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: No entiendo este error

Lo acabo de probar y sigue igual y es el mismo error que al principio. Gracias
Sin embargo, otro script que hace algo parecido (coger datos de formulario y insertar registro en tabla mysql) lo hace perfectamente.
  #13 (permalink)  
Antiguo 21/12/2010, 08:50
 
Fecha de Ingreso: diciembre-2010
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: No entiendo este error

Ya he descubierto que pasaba. Resulta que lo que comparaba en la clausula WHERE es una dirección de correo y el servidor MySQL no reconoce el carácter "@". Con otro identificador ha funcionado correctamente. Muchas gracias a todos por vuestro interés.

Etiquetas: Ninguno
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 14:40.