Foros del Web » Programando para Internet » PHP »

error al eliminar

Estas en el tema de error al eliminar en el foro de PHP en Foros del Web. Hola. Tengo el siguiente código que a partir de un combo box, selecciono la tabla, me lista los registros con checkboxs y al seleccionarlos me ...
  #1 (permalink)  
Antiguo 29/01/2004, 13:28
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona
Mensajes: 31
Antigüedad: 14 años, 1 mes
Puntos: 0
error al eliminar

Hola.

Tengo el siguiente código que a partir de un combo box, selecciono la tabla, me lista los registros con checkboxs y al seleccionarlos me tendría que borrar los escogidos, pero me sale el siguiente error y no se porque, ya que el delete me parece estar bien hecho.

MySQL dice: 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 'WHERE Codi_client IN (1577)' at line 1

El código es el siguiente:

html>
<head>
<title>Volcado Tipus Articles</title>
</head>

<body bgcolor="#FFFFCC">

<?php include("connexio.php");?>


<?php


//arreglo de tablas
$tbls[1]="Clients";

//arreglos nombre de tablas para el combo box
$txt[1]="Clients";

//formulario y tabla?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
<table name="formulario" width="770" border="1" align="center">
<tr>
<td>Eliminar Datos desde:</td>
<td> <?php $tablas= "<select name=\"tablas\">"; echo $tablas;?>
<?php for ($i = 0; $i <= 2; $i++){
echo "<option value=\"".$tbls[$i]."\">".$txt[$i]."</option>";
}?>
</select>&nbsp;<input type="Submit" name="Submit" value="Enviar"></td>
</tr>
</table></form>
<?php
//Query a la base de datos
if(isset($_POST['Submit']))
{
mysql_select_db("oldteddys");
$result = mysql_query("SELECT * FROM ".$_POST['tablas']."") or die("MySQL dice: ".mysql_error());
//SACAMOS A RELUCIR LAS TABLAS
echo $result;
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\" enctype=\"multipart/form-data\">
<table name=\"tabla\" width=\"770\" border=\"1\" align=\"center\">
<tr>
<td>Codi</td><td>Nom Client</td><td>Eliminar</td>";
while($row=mysql_fetch_array($result))
{
echo "<tr><td>".$row['Codi_client']."</td>
<td>".$row['Nom_client']."</td><td><input type=\"checkbox\" name=\"eliminar[]\" value=\"".$row['Codi_client']."\"></td>";
}
echo "</tr><tr><td colspan=\"3\" bgcolor=\"gray\" align=\"right\"><input type=\"Submit\" name=\"Borrar\" value=\"Borrar\"></tr></td>
</table></form>";
}
//ELIMINAMOS ID DE LA RESPECTIVA TABLA
if(isset($_POST['Borrar']))
{
$array =implode(',',$_POST['eliminar']);
mysql_select_db("oldteddys");
mysql_query("DELETE FROM ".$_POST['tablas']. "WHERE Codi_client IN (".$array.")",$Connexio) or die("MySQL dice: ".mysql_error());
}
?>
</body>
</html>

Agradeceria ayuda.

Muchas gracias
  #2 (permalink)  
Antiguo 29/01/2004, 14:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Fijate:

Código PHP:
mysql_query("DELETE FROM ".$_POST['tablas']. "WHERE Codi_client IN (".$array.")",$Connexio) or die("MySQL dice: ".mysql_error()); 

"WHERE

Separalo:

" WHERE

Sino para SQL msyql sería ejemplo: tablanombreWHERE .. cuando realmente es tablanombre WHERE ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 29/01/2004, 15:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Mejor mira si en tu segundo formulario tienes un campo que se llama 'tablas'. Yo no lo veo.

Pon un
Código PHP:
error_reporting(E_ALL); 
al comienzo de tu script (para que luego digan que los notice no son errores ).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 29/01/2004, 17:37
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona
Mensajes: 31
Antigüedad: 14 años, 1 mes
Puntos: 0
Gracias a los dos.

Poniendo lo de error reporting ahora me sale este notice, que supongo que será la causa del otro error que aun se mantiene:

Notice: Undefined index: tablas in C:\minixampp\Projecte\Pantalles\Articles\Alta_arti cle\seleccio_tipus.php on line 58

lo que no entiento es que la variable $tablas la coge del combo box inicial, al enviarlo se me muestran todos los registros. Selecciono uno y al darle a borrar me da el error. Por lo que en definitiva tengo solo un formulario.

En todo caso como le puedo asignar el valor igualmente para que me haga bien el query de eliminación???

Gracias
  #5 (permalink)  
Antiguo 30/01/2004, 02:38
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Veamos, cada vez que mandas cargar el script, es una ejecucion distinta, no recuerda que es lo que recibio en el primer formulario. Es mas, la peticion la hace el navegador en funcion del HTML que muestra. Y cuando muestra el segundo formulario, dentro de ese formulario no hay ningun campo 'tablas'.

Lo puedes hacer añadiendo un campo hidden llamado 'tablas' con el valor recibido del primer formulario.

Saludos.

PD: ¡¡¡Viva los Notice!!!
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 19:52.