Foros del Web » Programando para Internet » PHP »

Enviar datos a mysql

Estas en el tema de Enviar datos a mysql en el foro de PHP en Foros del Web. He creado un form html para rellenar datos que es este: Código: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0"> <title>Reservas</title> ...
  #1 (permalink)  
Antiguo 12/03/2010, 05:12
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Enviar datos a mysql

He creado un form html para rellenar datos que es este:

Código:
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Reservas</title>
</head>

<body>

<form action="insertar_datos.php" method="post" name="webtaller">
    <p>&nbsp;</p>
    <div align="center"><center><table border="0" cellpadding="0"
    cellspacing="0">
        <tr>
            <td>Nombre:</td>
            <td><input type="text" size="20" name="Nombre"></td>
        </tr>
        <tr>
            <td>Apellido 1: </td>
            <td><input type="text" size="20" name="Apellido1"></td>
        </tr>
        <tr>
            <td>Apellido 2:</td>
            <td><input type="text" size="20" name="Apellido2"></td>
        </tr>
        <tr>
            <td>D.N.I:</td>
            <td><input type="text" size="20" name="Dni"></td>
        </tr>
        <tr>
            <td>Teléfono:</td>
            <td><input type="text" size="20" name="Telefono"></td>
        </tr>
        <tr>
            <td>E-mail:</td>
            <td><input type="text" size="20" name="Email"></td>
        </tr>
        <tr>
            <td>Fecha Inicio</td>
            <td><input type="text" size="20" name="Fechainicio"></td>
        </tr>
        <tr>
            <td>Fecha Fin</td>
            <td><input type="text" size="20" name="Fechafin"></td>
        </tr>
        <tr>
            <td>Personas</td>
            <td><input type="text" size="20" name="Personas"></td>
        </tr>
        <tr>
            <td>Comentarios</td>
            <td><textarea name="Comentarios" rows="7" cols="37"></textarea></td>
        </tr>
    </table>
    </center></div><p align="center"><input type="submit"
    name="submit" value="Enviar"></p>
</form>
</body>
</html>
y tambien he creado pagina php insertar_datos.php con esto

Código:
<?php

        $link = mysql_connect("xxxxxx","xxxxx","xxxx");
        mysql_select_db("xxxxxx",$link);

        mysql_query("INSERT INTO reservas (Nombre,Apellido1,Apellido2,Dni,Telefono,Email,Fechainicio,Fechafin,Personas,Comentarios)
        VALUES ('{$_POST['Nombre']}','{$_POST['Apellido1']}','{$_POST['Apellido2']}','{$_POST['Dni']}','{$_POST['Email']}','{$_POST['Fechainicio']}','{$_POST['Fechafin']}','{$_POST['Personas']}','{$_POST['Comentarios']}')",$link);

        // Ahora comprobaremos que todo ha ido correctamente
        $my_error = mysql_error($link);

        if(!empty($my_error) {

            echo "Ha habido un error al insertar los valores. $my_error"; 

        } else {

            echo "Los datos han sido introducidos satisfactoriamente";

        }

    } else {

        echo "Error, no ha introducido todos los datos";

    }
?>

El Problema es que me da error en la linea:
Código:
 if(!empty($my_error) {
Cambie datos de conexion por xxxxx

Alguien me puede decir que estoy haciendo mal?

Gracias.

Última edición por tallara; 12/03/2010 a las 05:19
  #2 (permalink)  
Antiguo 12/03/2010, 05:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Enviar datos a mysql

Cita:
Iniciado por tallara Ver Mensaje
He creado un form html para rellenar datos que es este:

Código:
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Reservas</title>
</head>

<body>

<form action="insertar_datos.php" method="post" name="webtaller">
    <p>&nbsp;</p>
    <div align="center"><center><table border="0" cellpadding="0"
    cellspacing="0">
        <tr>
            <td>Nombre:</td>
            <td><input type="text" size="20" name="Nombre"></td>
        </tr>
        <tr>
            <td>Apellido 1: </td>
            <td><input type="text" size="20" name="Apellido1"></td>
        </tr>
        <tr>
            <td>Apellido 2:</td>
            <td><input type="text" size="20" name="Apellido2"></td>
        </tr>
        <tr>
            <td>D.N.I:</td>
            <td><input type="text" size="20" name="Dni"></td>
        </tr>
        <tr>
            <td>Teléfono:</td>
            <td><input type="text" size="20" name="Telefono"></td>
        </tr>
        <tr>
            <td>E-mail:</td>
            <td><input type="text" size="20" name="Email"></td>
        </tr>
        <tr>
            <td>Fecha Inicio</td>
            <td><input type="text" size="20" name="Fechainicio"></td>
        </tr>
        <tr>
            <td>Fecha Fin</td>
            <td><input type="text" size="20" name="Fechafin"></td>
        </tr>
        <tr>
            <td>Personas</td>
            <td><input type="text" size="20" name="Personas"></td>
        </tr>
        <tr>
            <td>Comentarios</td>
            <td><textarea name="Comentarios" rows="7" cols="37"></textarea></td>
        </tr>
    </table>
    </center></div><p align="center"><input type="submit"
    name="submit" value="Enviar"></p>
</form>
</body>
</html>
y tambien he creado pagina php insertar_datos.php con esto

Código:
<?php

        $link = mysql_connect("xxxxxx","xxxxx","xxxx");
        mysql_select_db("xxxxxx",$link);

        mysql_query("INSERT INTO reservas (Nombre,Apellido1,Apellido2,Dni,Telefono,Email,Fechainicio,Fechafin,Personas,Comentarios)
        VALUES ('{$_POST['Nombre']}','{$_POST['Apellido1']}','{$_POST['Apellido2']}','{$_POST['Dni']}','{$_POST['Email']}','{$_POST['Fechainicio']}','{$_POST['Fechafin']}','{$_POST['Personas']}','{$_POST['Comentarios']}')",$link);

        // Ahora comprobaremos que todo ha ido correctamente
        $my_error = mysql_error($link);

        if(!empty($my_error) {

            echo "Ha habido un error al insertar los valores. $my_error"; 

        } else {

            echo "Los datos han sido introducidos satisfactoriamente";

        }

    } else {

        echo "Error, no ha introducido todos los datos";

    }
?>

El Problema es que me da error en la linea:
Código:
 if(!empty($my_error) {
Cambie datos de conexion por xxxxx

Alguien me puede decir que estoy haciendo mal?

Lo que tienes es un error de sintaxis en el if

debe ser if (!empty($my_error)) te faltaba un parentesis.

Fuera de esto mirando el codigo te diría que no uses directamente lo que te viene en $_POST en una query sql porque por alli te pueden hacer SQL INJECTION, yo te recomendarias que antes de hacer una query valides los datos con los que vas a hacer la query.

Saludos.
  #3 (permalink)  
Antiguo 12/03/2010, 06:04
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql

Gracias, pero ahora me sale en esta linea

echo "Error, no ha introducido todos los datos";

----------------------------------------------------------------
E mirao los errores y creo que vi uno mas,

aki
Código:
{

            echo "Los datos han sido introducidos satisfactoriamente";

        }

    } else {

        echo "Error, no ha introducido todos los datos";

    }
cambie por esto
Código:
if(!empty($my_error)) {

            echo "Ha habido un error al insertar los valores. $my_error"; 

        } else {

            echo "Los datos han sido introducidos satisfactoriamente";

        } else {

            echo "Error, no ha introducido todos los datos";

    }
  #4 (permalink)  
Antiguo 12/03/2010, 06:08
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql

A ver he hecho esto, a ver que te parece, me da error en la linea 29

Código:
<?php
$Nombre=$_POST['Nombre'];
$Apellido1=$_POST['Apellido1'];
$Apellido2=$_POST['Apellido2'];
$Dni=$_POST['Dni'];
$Email=$_POST['Email'];
$Fechainicio=$_POST['Fechainicio'];
$Fechafin=$_POST['Fechafin'];
$Personas=$_POST['Personas'];
$Comentario=$_POST['Comentario'];

        $link = mysql_connect("xxxxxxx","xxxxx","xxxx");
        mysql_select_db("qfw523",$link);

        mysql_query("INSERT INTO reservas (Nombre,Apellido1,Apellido2,Dni,Telefono,Email,Fechainicio,Fechafin,Personas,Comentario)
        VALUES ('{$Nombre}','{$Apellido1}','{$Apellido2}','{$Dni}','{$Email}','{$Fechainicio}','{$Fechafin}','{$Personas}','{$Comentario}')",$link);

        // Ahora comprobaremos que todo ha ido correctamente
        $my_error = mysql_error($link);

        if(!empty($my_error)) {

            echo "Ha habido un error al insertar los valores. $my_error"; 

        } else {

            echo "Los datos han sido introducidos satisfactoriamente";

        } else {

            echo "Error, no ha introducido todos los datos";

    }
?>

Error en line - 29 } else {

Última edición por tallara; 12/03/2010 a las 06:52
  #5 (permalink)  
Antiguo 12/03/2010, 07:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Enviar datos a mysql

tienes 2 else para un mismo if

puedes usar elseif() para preguntar sobre los otros errores
  #6 (permalink)  
Antiguo 12/03/2010, 07:41
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql

He quitado un else y me dice esto

Column count doesn't match value count at row 1
  #7 (permalink)  
Antiguo 12/03/2010, 07:42
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Enviar datos a mysql

pero hombre, el error está clarito
tienes 2 else para solo un if


edit.........
me demore un poco en responder a eso
sobre el nuevo error...

te indica alguna linea?
__________________
Mi Bosque de Sombras Solo Doom Metal!

por favor use esta etiqueta para publicar su código --->[HIGHLIGHT]
  #8 (permalink)  
Antiguo 12/03/2010, 07:54
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql

No me indica la linea me pone esto
Ha habido un error al insertar los valores. Column count doesn't match value count at row 1

he estado leyendo y en la base de datos tengo mas columnas de lo que inserto tengo que ponerlas igual?
  #9 (permalink)  
Antiguo 12/03/2010, 08:20
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql

He corregido esto pera rellenar todos los campos de la tabla

Código:
       mysql_query("INSERT INTO reservas (id,Nombre,Apellido1,Apellido2,Dni,Telefono,Email,Fechainicio,Fechafin,Personas,Comentario,Reservado,Cancelado)
        VALUES ('','{$Nombre}','{$Apellido1}','{$Apellido2}','{$Dni}','{$Email}','{$Fechainicio}','{$Fechafin}','{$Personas}','{$Comentario}','','')",$link);
Pero sigue dandome el error de arriba.
  #10 (permalink)  
Antiguo 12/03/2010, 09:53
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql

Me podeis ayudar, le estoy dando mil vueltas y no veo el fallo.

Gracias
  #11 (permalink)  
Antiguo 12/03/2010, 10:06
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Enviar datos a mysql

No te sale el error porque le estas manejando tu,pero el mysql_error te avisa q hay una columna 'count' q no existe. Pon la consulta como la tienes ahora mismo
  #12 (permalink)  
Antiguo 12/03/2010, 10:34
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql

Tal como la tengo ahora, no la toco mas asta que veais el fallo, que yo me vuelvo loco.
Código:
<?php

if ($_POST['submit']){

$Nombre = $_POST['Nombre'];
$Apellido1 = $_POST['Apellido1'];
$Apellido2 = $_POST['Apellido2'];
$Dni = $_POST['Dni'];
$Email = $_POST['Email'];
$Fechainicio = $_POST['Fechainicio'];
$Fechafin = $_POST['Fechafin'];
$Personas = $_POST['Personas'];
$Comentario = $_POST['Comentario'];

} else {

 echo "No se ha clicado el botón";

}

        $link = mysql_connect("xxxxxxxxx","xxxxxxxx","xxxxxxxx");
        mysql_select_db("qfw523",$link);

        mysql_query("INSERT INTO reservas (id, Nombre, Apellido1, Apellido2, Dni, Telefono, Email, Fechainicio, Fechafin, Personas, Comentario, Reservado, Cancelado) 
		VALUES ('', '$Nombre', '$Apellido1', '$Apellido2', '$Dni', '$Email', '$Fechainicio', '$Fechafin', '$Personas', '$Comentario', '', '')",$link);

        // Ahora comprobaremos que todo ha ido correctamente
        $my_error = mysql_error($link);

        if(!empty($my_error)) {

            echo "Ha habido un error al insertar los valores. $my_error"; 

        } else {

            echo "Los datos han sido introducidos satisfactoriamente";

    }
?>
  #13 (permalink)  
Antiguo 12/03/2010, 10:51
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Enviar datos a mysql

Te esta faltando el campo telefono a la hora de insertar los valores.

Ahora dime, cualquier puede hacer reservaciones, porque una idea mas practica es que inserte los datos de una persona en una tabla , luego amarras la reservacion, en otra tabla, con el numero de DNI.

me parece mas practico.
  #14 (permalink)  
Antiguo 12/03/2010, 11:11
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql

Eso me pasa por no fijarme, muchisimas gracias, funciona todo correctamente.
  #15 (permalink)  
Antiguo 12/03/2010, 11:27
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Enviar datos a mysql

Luego deberias publicar tu codigo, porque:
- Le puede servir a alguien
- puede mejorarse
- puede usarse con fines didacticos

Saludos
  #16 (permalink)  
Antiguo 12/03/2010, 13:44
 
Fecha de Ingreso: enero-2009
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Enviar datos a mysql - Solucionado

Ya funciona el codigo.

Aki lo dejo

Archivo - insertar_datos.php

Código:
<?php

if ($_POST['submit']){

$Nombre = $_POST['Nombre'];
$Apellido1 = $_POST['Apellido1'];
$Apellido2 = $_POST['Apellido2'];
$Dni = $_POST['Dni'];
$Email = $_POST['Email'];
$Telefono = $_POST['Telefono'];
$Fechainicio = $_POST['Fechainicio'];
$Fechafin = $_POST['Fechafin'];
$Personas = $_POST['Personas'];
$Comentario = $_POST['Comentario'];

} else {

 echo "No se ha clicado el botón";

}

        $link = mysql_connect("Server","usuario","contraseña");
        mysql_select_db("basededatos",$link);

        mysql_query("INSERT INTO Tabla (id, Nombre, Apellido1, Apellido2, Dni, Telefono, Email, Fechainicio, Fechafin, Personas, Comentario, Reservado, Cancelado) 
		VALUES ('', '$Nombre', '$Apellido1', '$Apellido2', '$Dni', '$Telefono', '$Email', '$Fechainicio', '$Fechafin', '$Personas', '$Comentario', '', '')",$link);

        // Ahora comprobaremos que todo ha ido correctamente
        $my_error = mysql_error($link);

        if(!empty($my_error)) {

            echo "Ha habido un error al insertar los valores. $my_error"; 

        } else {

            echo "Se ha hecho la Reserva correctamente.";

    }
?>
y aki el archivo HTML - Reserva.html

Código:
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Reservas</title>
</head>

<body>

<form action="insertar_datos.php" method="post" name="webtaller">
    <div align="center"><center><table border="0" cellpadding="0"
    cellspacing="0">
        <tr>
            <td>Nombre:</td>
            <td><input type="text" size="20" name="Nombre"></td>
        </tr>
        <tr>
            <td>Apellido 1: </td>
            <td><input type="text" size="20" name="Apellido1"></td>
        </tr>
        <tr>
            <td>Apellido 2:</td>
            <td><input type="text" size="20" name="Apellido2"></td>
        </tr>
        <tr>
            <td>D.N.I:</td>
            <td><input type="text" size="20" name="Dni"></td>
        </tr>
        <tr>
            <td>Teléfono:</td>
            <td><input type="text" size="20" name="Telefono"></td>
        </tr>
        <tr>
            <td>E-mail:</td>
            <td><input type="text" size="20" name="Email"></td>
        </tr>
        <tr>
            <td>Fecha Inicio</td>
            <td><input type="text" size="20" name="Fechainicio"></td>
        </tr>
        <tr>
            <td>Fecha Fin</td>
            <td><input type="text" size="20" name="Fechafin"></td>
        </tr>
        <tr>
            <td>Personas</td>
            <td><input type="text" size="20" name="Personas"></td>
        </tr>
        <tr>
            <td>Comentario</td>
            <td><textarea name="Comentario" rows="5" cols="30"></textarea></td>
        </tr>
    </table>
    </center></div><p align="center"><input type="submit"
    name="submit" value="Enviar"></p>
</form>
</body>
</html>
Espero que os sirva de ayuda

Etiquetas: enviar, mysql
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 09:58.