bilches71
Usuario Novato
Usuario Novato

Hola a todos, me gustaría que me ayudaseis un poco, hace días que no logro encontrar el error:

Quiero insertar (tb consular, mostrar)datos a una tabla mediante un formulario con metodo post. La bd conecta bien, porque he metido datos directamente sin variables y los inserta, el error que me da es el siguiente:

"Se ha encontrado un error al insertar en la base de datos 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 ', ,,, ,,)' at line 2"

Está claro que son las comillas, he probado con comillas simples, dobles, etc. el codigo es el siguiente:

<?php 
include("auth/includes/config.php");
include("auth/header.php");
include("clase_plantilla.php");

$Variables_Salida = array(
'id'=>"",
'cif'=>"",
'nombre'=>"",
'apellidos'=>"",
'direccion'=>"",
'cp'=>"",
'telefono'=>"",
'email'=>"",
'datos'=>"",
'operation'=>"crear"

);
//---------------operation mostrar---------------------
if ($_GET["operation"]=="mostrar")    
{

     $query  = "SELECT * FROM cliente WHERE id=$id";
$result = mysql_query($query) or die 
        ('Se ha encontrado un error al buscar en la base de datos '. mysql_error()) ;
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $sql;

$operation="modificar"; 
$Variables_Salida['id']=$row['id'];
$Variables_Salida['cif']=$row['cif'];
$Variables_Salida['nombre']=$row['nombre'];
$Variables_Salida['apellidos']=$row['apellidos'];
$Variables_Salida['direccion']=$row['direccion'];
$Variables_Salida['cp']=$row['cp'];
$Variables_Salida['telefono']=$row['telefono'];
$Variables_Salida['email']=$row['email'];
$Variables_Salida['datos']=$row['datos'];
$Variables_Salida['operation']=$operation;

}
//-------------------operacion crear -----------------------------
//        

if ($_GET["operation"]=="crear")
    {
   
$query = "INSERT INTO cliente (`cif`) 
VALUES (null,".$_POST['cif'].",".$_POST['nombre'].", ".$_POST['apellidos'].",".$_POST['direccion'].",".$_POST['cp'].", ".$_POST['telefono'].",".$_POST['email'].",".$_POST['datos'].")";

//$query = "INSERT INTO cliente (cif, nombre, apellidos, direccion, cp, telefono, email, datos) ";
//$query.= "VALUES (null, pepe, lopez, callejuela, 40303, 94949949, es un nuevo registro para la tabla)";
//
///* $query = 'INSERT INTO `bilches`.`cliente` (`id`, `cif`, `nombre`, `apellidos`, `direccion`, `cp`, `telefono`, `email`, `datos`) VALUES (NULL, \'.$_POST['cif'].\', \'otro\', \'nuevo\', \'ricla\', \'fdfkj\', \'lkjfsj\', \'[email protected]\', \'fsdfsdlkjfsdñfjlñj\');';
//*/
//    echo $query; exit;
    
            $result = mysql_query($query) or die 
        ('Se ha encontrado un error al insertar en la base de datos '. mysql_error()) ;
    //ejecuta, si no muestra el error y "muere"    
    $id = mysql_insert_id($connectid); 
    //echo $ultimo_id; 

    header ("location:cliente.php?operation=mostrar&id=".$id);
    }

//---------------------Operation modificar---------------
 if ($_GET["operation"]=="modificar")
    {
        $id = $_GET['id'];
        
        $query = " UPDATE cliente SET `cif`='".$_POST["cif"]."' ,`nombre`='".$_POST["nombre"]."' ,`apellidos`='".$_POST["apellidos"]."' ,`direccion`='".$_POST["direccion"]."' ,`cp`='".$_POST["cp"]."' ,`telefono`='".$_POST["telefono"]."' , `email`='".$_POST["email"]."', `datos`='".$_POST["datos"]."' WHERE `id`='".$_GET["id"]."'";

        
            
//$query = " UPDATE gestion SET `cif`='".$_POST["cif"]."' ,`nombre`='".$_POST["nombre"]."' ,`apellidos`='".$_POST["apellidos"]."' ,`direccion`='".$_POST["direccion"]."' ,`cp`='".$_POST["cp"]."' ,`telefono`='".$_POST["telefono"]."' , `email`='".$_POST["email"]."', `datos`='".$_POST["datos"]."' WHERE `id`='".$_GET["id"]."'";

         
        $result = mysql_query($query) or die 
        ('Se ha encontrado un error al editar en la base de datos '. mysql_error()) ;
        
    header ("location:cliente.php?operation=mostrar&id=".$id);
    }

$Contenido=new Plantilla("cliente");
$Contenido->asigna_variables($Variables_Salida);
$ContenidoString = $Contenido->muestra();
echo $ContenidoString;    
?>

Cual sería el formato de la instrucción para que funcionase, en varios manuales no lo he encontrado.

Muchas gracias

Avatar Image
@man / @woman
@man / @woman

Estas diciendo que el problema esta en:

$query = "INSERT INTO cliente (`cif`) 
VALUES
(null,".$_POST['cif'].",".$_POST['nombre'].",
".$_POST['apellidos'].",".$_POST['direccion'].",".$_POST['cp'].",
".$_POST['telefono'].",".$_POST['email'].",".$_POST['datos'].")";

Pues no pongas el resto...

Lo mejor que puedes hacer es poner un echo $query; justo después y verás como se esta intentando meter en la base de datos... y veras donde esta el fallo.

Respecto al tema de las comillas, http://www.php-hispano.net/archivos/FAQs/140/1/FAQ-del-echo1.html te puede ayudar.

Avatar Image
@man / @woman
@man / @woman

Y utiliza estas líneas que has comentado (para orientación)

//$query = "INSERT INTO cliente (cif, nombre, apellidos, direccion, cp, telefono, email, datos) ";
//$query.= "VALUES (null, pepe, lopez, callejuela, 40303, 94949949, es un nuevo registro para la tabla)";

bilches71
Usuario Novato
Usuario Novato

muchas gracias por vuestra ayuda, he probado las opciones que me dais, ahora el error que sale es el siguiente

//$query.= "VALUES (null, pepe, lopez, callejuela, 40303, 94949949, es un nuevo registro para la tabla)";

No lo entiendo, esta linea está comentada!!!, creo que el error está en que no recoge los datos que se introducen en el formulario, he utilizado este código en otros programas... no lo veo la verdad.

Al poner echo $query me sale el campo cif  vacio, aún insertando el contenido de lavariable directamente

/$query = 'INSERT INTO `bilches`.`cliente` (`id`, `cif`, `nombre`, `apellidos`, `direccion`, `cp`, `telefono`, `email`, `datos`) VALUES (NULL, '.$_POST['cif'].', 'otro', 'nuevo', 'ricla', 'fdfkj', 'lkjfsj', '[email protected]', 'fsdfsdlkjfsdñfjlñj');';
//

He comprobado que llega a operation ==crear, así que el error lo tengo pillado ahí.

Necesito más ojos

Gracias de nuevo

Avatar Image
@man / @woman
@man / @woman

Cuando te dice el número es en la línea que ha ido a procesar y se ha encontrado con algo que no esperaba... seguramente, el error esta en las líneas de arriba, que te falte un ; o algo.

Respecto al campo CIF, si te sale vacio. Haz antes un echo de $_POST['cif'] para ver si llega... de esta manera, vas paso a paso.

bilches71
Usuario Novato
Usuario Novato

aún no he conseguido que me recoga los datos de cif,  el error que me muestra es el siguiente:

Cita:

Se ha encontrado un error al buscar en la base de datos 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 '' at line 1

haciendo echo "hola"; exit; he conseguido averiguar que me llega hasta ($_GET["operation"]=="mostrar"), creo que el error se encuentra en esta parte.

Código:

dejo un enlace de la página

http://www.webzaragoza.webcindario.com/cliente/cliente.php?

cuando introduzco datos en cif y le doy a guardar en la linea de navegación aparece:

http://www.webzaragoza.webcindario.[....]te/cliente.php?operation=mostrar&amp;id=

al poner echo "hola"; llega si lo comento me sale el error que he mencionado antes

creo que tengo rodeado el problema pero no consigo verlo.

Muchas gracias por vuestro interés.

bilches71
Usuario Novato
Usuario Novato

Código:

//---------------operation mostrar---------------------
if ($_GET["operation"]=="mostrar") 
 {
echo "hola"; exit;
  $query  = "SELECT * FROM cliente WHERE id=$id";
 
$result = mysql_query($query) or die
  ('Se ha encontrado un error al buscar en la base de datos '. mysql_error()) ;

$row = mysql_fetch_array($result, MYSQL_ASSOC);

$operation="modificar";

$Variables_Salida['id']=$row['id'];
$Variables_Salida['cif']=$row['cif'];
$Variables_Salida['nombre']=$row['nombre'];
$Variables_Salida['apellidos']=$row['apellidos'];
$Variables_Salida['direccion']=$row['direccion'];
$Variables_Salida['cp']=$row['cp'];
$Variables_Salida['telefono']=$row['telefono'];
$Variables_Salida['email']=$row['email'];
$Variables_Salida['datos']=$row['datos'];
$Variables_Salida['operation']=$operation;

bilches71
Usuario Novato
Usuario Novato

No me da ningún error, creo que el problema está en el metodo Post, me inserta en la base de datos pero campos vacios si esto os puede dar una pista. Supongo que no recoge los datos que le inserto en los campos en la web.

Gracias

Avatar Image
@man / @woman
@man / @woman

Por partes... si pones un exit, se acaba el script!!!

Ahora... primero tienes que comprobar que te llegan bien las variables, si estas usando POST tendrás que poner, al inicio:

echo 'cif es '.$_POST['cif'].'<br />';

Y así con todas... para comprobar que llegan.

Ahora, una vez que has comprobado que llegan todas las variables ¿te llegan? SI / NO

bilches71
Usuario Novato
Usuario Novato

He insertado al principio como tu dices

Código:

y al ejecutar el programa sale el siguiente error:

Cita:

Se ha encontrado un error al buscar en la base de datos 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 '' at line 1

No saca el valor de cif y la bd me crea un registro vacio, el error que muestra "buscar en la bd" no está en operation crear si no en el paso siguiente operation mostrar.

Entonces realiza todo lo que hay dentro de crear (aún que no correctamente) y pasa al siguiente paso que es mostrar y ahí se detiene.

Muchas gracias por tu ayuda

bilches71
Usuario Novato
Usuario Novato

No sé que pasa que no inserta el código.

Código:

if ($_GET["operation"]=="crear")
 {
 echo 'cif es '.$_POST['cif'].'<br />';

 $query="INSERT INTO `bilches`.`cliente` (`id`,`cif` ,`nombre` ,`apellidos` ,`direccion` ,`cp` ,`telefono` ,`email`,`datos`)".
  " VALUES ( NULL,'".$_POST["cif"]."' ,'".$_POST["nombre"]."' ,'".$_POST["apellidos"]."' ,'".$_POST["direccion"]."','".$_POST["cp"]."' ,'".$_POST["telefono"]."' ,'".$_POST["email"]."' ,'".$_POST["datos"]."')";

Avatar Image
@man / @woman
@man / @woman

Luego de la líne:

$query="INSERT INTO `bilches`.`cliente` (`id`,`cif` ,`nombre` ,`apellidos` ,`direccion` ,`cp` ,`telefono` ,`email`,`datos`)".
  " VALUES ( NULL,'".$_POST["cif"]."' ,'".$_POST["nombre"]."' ,'".$_POST["apellidos"]."' ,'".$_POST["direccion"]."','".$_POST["cp"]."' ,'".$_POST["telefono"]."' ,'".$_POST["email"]."' ,'".$_POST["datos"]."')";

pon:

echo $query ."<br>";

para que compruebes si la instrucción se armó bien.

bilches71
Usuario Novato
Usuario Novato

sin añadir exit al final de la instrucción sale el mismo error de sintaxis  " line 1, si al final añado exit para que se detenga aparece esto:

cif es
INSERT INTO `bilches`.`cliente` (`id`,`cif` ,`nombre` ,`apellidos` ,`direccion` ,`cp` ,`telefono` ,`email`,`datos`) VALUES ( NULL,'' ,'' ,'' ,'','' ,'' ,'' ,'')

osea los campos vacios.

¿que opinais?

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por bilches71

aparece esto:

cif es

INSERT INTO ....

Te esta diciendo que no recibes el dato de CIF... detente en ese error... y solucionalo!!!!! y hasta que no lo tengas, no continues.

¿De donde puede venir el error? del formulario ¿como se llama el campo del formulario?

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 29/Ago/2002, 22:28
Xion ctzar12kSep/02