Foros del Web » Programando para Internet » PHP »

checkbox, borrado e implode error

Estas en el tema de checkbox, borrado e implode error en el foro de PHP en Foros del Web. hola, vi el post sobre eliminacion de registro via checkbox, he tratado de usarlo y tengo este error y por que no veo el error ...
  #1 (permalink)  
Antiguo 12/11/2003, 16:01
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 9 meses
Puntos: 6
checkbox, borrado e implode error

hola, vi el post sobre eliminacion de registro via checkbox, he tratado de usarlo y tengo este error y por que no veo el error en la sintaxis.

ERROR:
Código PHP:
NoticeUndefined indextablas in c:program fileseasyphpwwwscriptsdelete.php on line 55
MySQL dice
You have an error in your SQL syntax near 'WHERE ID IN(40,41,42,39,38,37))' at line 1 
Eh aqui el codigo completo de mi prueba.
Código PHP:
<?php
//Definimos la Coneccion
$oCon mysql_connect ("localhost","plastico","362514") or die (mysql_error());
//arreglo de tablas
$tbls[0]="tabla01";
$tbls[1]="tabla02";
$tbls[2]="tabla03";
//arreglos nombre de tablas para el combo box
$txt[0]="Tabla 01";
$txt[1]="Tabla 02";
$txt[2]="Tabla 03";
//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("prueba");
    
$result mysql_query("SELECT * FROM ".$_POST['tablas']."") or die("MySQL dice: ".mysql_error());
     
//SACAMOS A RELUCIR LAS TABLAS
     
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\" enctype=\"multipart/form-data\">
     <table name=\"tabla\" width=\"770\" border=\"1\" align=\"center\">
             <tr>
                <td>Nombre</td><td>Subtitulos</td><td>Eliminar</td>"
;
                while(
$row=mysql_fetch_array($result))
                  {
                echo 
"<tr><td>".$row['nombre']."</td>
                <td>"
.$row['subtitulo']."</td><td><input type=\"checkbox\" name=\"eliminar[]\" value=\"".$row['ID']."\"></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("prueba");
        
mysql_query("DELETE FROM ".$_POST['tablas']. "WHERE ID IN(".$array."))",$oCon) or die("MySQL dice: ".mysql_error());
         }

Saludos
__________________
www.dataautos.com

Última edición por asinox; 12/11/2003 a las 16:16
  #2 (permalink)  
Antiguo 12/11/2003, 16:08
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 9 meses
Puntos: 6
bueno hice un pequeño cambio

Código PHP:
        mysql_query("DELETE FROM ".$_POST['tablas']. "WHERE ID IN(".$array.")"),$oCon) or die("MySQL dice: ".mysql_error()); 
pero ahora me da este error sobre una coma ","
Código PHP:
Parse errorparse errorunexpected ',' in c:program fileseasyphpwwwscriptsdelete.php on line 55 
esa linea es la expuesta anteriormente.

Saludos
__________________
www.dataautos.com
  #3 (permalink)  
Antiguo 12/11/2003, 16:11
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 9 meses
Puntos: 6
bueno otro cambio :D
Código PHP:
        mysql_query("DELETE FROM ".$_POST['tablas']. "WHERE ID IN(".$array.")") or die("MySQL dice: ".mysql_error()); 
pero ahora tengo este groso error
Código PHP:
NoticeUndefined indextablas in c:program fileseasyphpwwwscriptsdelete.php on line 55
MySQL dice
You have an error in your SQL syntax near 'WHERE ID IN(36)' at line 1 
saludos
__________________
www.dataautos.com
  #4 (permalink)  
Antiguo 13/11/2003, 00:36
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Yo te recomiendo almacenar la sentencia sql en una variable para que puedas ver si está correcta y no tengas que hacer tantas pruebas "a ciegas". Así:
Código PHP:
$sql="DELETE FROM ".$_POST['tablas']." WHERE ID IN(".$array.")";
//Acá le das un "echo" para comprobar.
echo $sql;//Así puedes ver la sentencia sql impresa en pantalla y verificas.
//Una vez que tu código funcione... no te olvides de borrar la línea anterior, sino todo el mundo se entera de tus nombres de BD y campos.
//Ahora sí haces la consulta.
mysql_query($sql) or die ("Mysql dice: ".mysql_error()); 
Si no me equivoco te estaba faltando un espacio antes de WHERE y te estaba sobrando un paréntesis. Ya lo puse corregido. Prueba y nos cuentas.

Saludos

Última edición por jpinedo; 13/11/2003 a las 00:39
  #5 (permalink)  
Antiguo 13/11/2003, 02:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

El problema es que en el formulario no existe ningun campo llamado 'tablas'. Si te fijas, solo lo tienes en el primer formulario. Pero la seccion de borrar solo se accede desde el segundo formulario. Y ese no tiene un campo llamdo 'tablas'.

La solucion es que en el segundo formulario crees un campo oculto llamado 'tablas' con el valor del primer formulario.

Saludos.

PD: Aparte claro de lo del espacio.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 13/11/2003, 07:45
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 9 meses
Puntos: 6
ejej buenos dias , voy a probar y bueno lo de la BD y eso, pues la verdad es test y no reallife :-d

lo de hacer el echo a la consulta me parece perfecto ..deja pruebo.
__________________
www.dataautos.com
  #7 (permalink)  
Antiguo 13/11/2003, 08:01
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 9 meses
Puntos: 6
bueno ya logre borrar, ejje gracias, lo que hice fue un solo formulario ejej en vez de dos :-d, ahora solo me borra en una sola tabla, pero ya creo poder solucionar este problemita , gracias jeje
__________________
www.dataautos.com
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:51.