Foros del Web » Programando para Internet » PHP »

Enviar datos a BD MySQL con formulario PHP

Estas en el tema de Enviar datos a BD MySQL con formulario PHP en el foro de PHP en Foros del Web. Mi problema es simple, tengo un formulario muy pequeño que encontre en internet el cual se conecta a un archivo llamado inser_datos.php el cual tiene ...
  #1 (permalink)  
Antiguo 11/12/2007, 09:44
Avatar de diepdraco  
Fecha de Ingreso: marzo-2005
Mensajes: 165
Antigüedad: 19 años, 1 mes
Puntos: 0
Enviar datos a BD MySQL con formulario PHP

Mi problema es simple, tengo un formulario muy pequeño que encontre en internet el cual se conecta a un archivo llamado inser_datos.php el cual tiene todos los datos para conectarse a la base de datos MySQL.

Este es el archivo el cual manda los datos.

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="webtaller" action="insertar_datos.php" method="get">
Título:
<input type="text" name="titulo"><br>
Contenido: <textarea name="contenido"></textarea><br>
<input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>

Ahora colocare el codigo de el archivo inserta_datos

<?php
$myconn = @mysql_connection("servidor","user","pass");

if (! $myconn){
echo "Error al intentar conectarse con el servidor MySQL";
exit();
}

if (! @mysql_select_db("cuestionario",$myconn)){
echo "No se pudo conectar correctamente con la Base de datos";
exit();
}

$sql = "SELECT titulo,contenido FROM noticias";
$result = mysql_query($sql)

if (! $result){
echo "La consulta SQL contiene errores.";
exit();
}

while ($row = mysql_flech_array($result)){
echo "<P>",$row["titulo"]," - ",$row["contenido"],"</P>";
}
?>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</body>
</html>

Como veran es muy simple! mando todo a una base de datos, la cual tiene un table especifica pero no me manda nada!

Aqui lo pueden ver y el error que manda

http://www.desdegayola.com/inser.php

Muchas gracias
__________________
No por siempre llovera
  #2 (permalink)  
Antiguo 11/12/2007, 10:03
Avatar de girion  
Fecha de Ingreso: diciembre-2007
Ubicación: Teulada
Mensajes: 24
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Enviar datos a BD MySQL con formulario PHP

echo "<P>",$row["titulo"]," - ",$row["contenido"],"</P>";

esta linea no la tienes bien, no se concatena el echo con "," coma. es con el .

ejem: echo "<p>" . $row["titulo"];

de todas formas tienes que recoger las variables del formulario para hacer un insert

extract ($_REQUEST, EXTR_OVERWRITE);

esta funcion te extrae los campos pasados por el formulario i te crea las variables ocn su valor

eje: $titulo
$contenido

$sql = "insert into table(titulo, contenido) values (´" . $titulo . "´,´" . $contenido . "´)";

un saludo
  #3 (permalink)  
Antiguo 11/12/2007, 13:53
Avatar de diepdraco  
Fecha de Ingreso: marzo-2005
Mensajes: 165
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Enviar datos a BD MySQL con formulario PHP

osea que corregido seria algo asi, disculpa pero la verdad es que no se nada de esto, pero lo que se dice nadaaaaaaaaaaaaaaaaaaaaa

<?php
$myconn = @mysql_connection("10.8.11.174","cuestionario","uE PYi4A5");

if (! $myconn){
echo "Error al intentar conectarse con el servidor MySQL";
exit();
}

if (! @mysql_select_db("cuestionario",$myconn)){
echo "No se pudo conectar correctamente con la Base de datos";
exit();
}

$sql = "SELECT titulo,contenido FROM noticias";
$result = mysql_query($sql)

if (! $result){
echo "La consulta SQL contiene errores.";
exit();
}

$sql = "insert into table(titulo, contenido) values (´" . $titulo . "´,´" . $contenido . "´)";
?>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</body>
</html>
__________________
No por siempre llovera
  #4 (permalink)  
Antiguo 11/12/2007, 17:34
Avatar de girion  
Fecha de Ingreso: diciembre-2007
Ubicación: Teulada
Mensajes: 24
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Enviar datos a BD MySQL con formulario PHP

holapsss!!!! te pongo como seria

--------------------------------------------------------------------------------------------------
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?php
/* extrae variables del formulario */
extract ($_REQUEST, EXTR_OVERWRITE);

$myconn = @mysql_connection("10.8.11.174","cuestionario","uE PYi4A5");

if (! $myconn){
echo "Error al intentar conectarse con el servidor MySQL";
exit();
}

if (! @mysql_select_db("cuestionario",$myconn)){
echo "No se pudo conectar correctamente con la Base de datos";
exit();
}

$sql = "insert into noticias(titulo, contenido) values (' " . $titulo . " ', ' " . $contenido . " ')";
$result = mysql_query($sql)

if (! $result){
echo "La consulta SQL contiene errores.";
exit();
}


?>


</body>
</html>

-------------------------------------------------------------------------------

mas o menos asi.. valepss?? si tienes alguna duda ya me dices

un saludo
  #5 (permalink)  
Antiguo 11/12/2007, 18:34
Avatar de diepdraco  
Fecha de Ingreso: marzo-2005
Mensajes: 165
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Enviar datos a BD MySQL con formulario PHP

muchas gracias pero mira me sigue marcando error

Parse error: parse error, unexpected T_IF in /home/content/d/e/s/desdegayola/html/insertar_datos.php on line 28

aqui lo que me indica
__________________
No por siempre llovera
  #6 (permalink)  
Antiguo 12/12/2007, 10:05
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: Enviar datos a BD MySQL con formulario PHP

Por aqui voy a lo rapido
Antes de fajarse con codigo

veamos algo en el formulario
y nos referimos al metodo segun lo que posteo diepdraco
<form name="webtaller" action="insertar_datos.php" method="get">
metodo GET los datos son encadenados a la URL especificado en action , utilizando el tipo de codificación especificado en el atributo enctype.

método POST se realiza una transacción mediante el protocolo HTTP, utilizando la codificación enctype. Se utiliza para aplicaciones que modifican la base de datos de destino.

tomate estos ejemplos
index.php
<HTML>
<HEAD>
<TITLE>Insertar.html</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Insertar un registro</h1>
<br>
<FORM METHOD="POST" ACTION="insertar_datos.php">
Titulo<br>
<INPUT TYPE="TEXT" NAME="titulo"><br>
Contenido<br>
<textarea name="contenido"></textarea><br>
<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>
</div>
</BODY>
</HTML>

insertar_datos.php
<HTML>
<HEAD>
<TITLE>Insertar.php</TITLE>
</HEAD>
<BODY>
<?php
//Conexion con la base
mysql_connect("server","root","password");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("nameBD");

//Ejecucion de la sentencia SQL
mysql_query("insert into noticias (titulo,contenido) values ('$titulo','$contenido')");
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="seleccion.php">Visualizar el contenido de la base</a></div>
</BODY>

seleccion.php
<html>
<body>
<?php
$link = mysql_connect("server", "root", "password");
mysql_select_db("nameBD", $link);
$result = mysql_query("SELECT titulo, contenido FROM noticias", $link);
echo "<table border = '1'> \n";
echo "<tr> \n";
echo "<td><b>Titulo</b></td> \n";
echo "<td><b>Contenido</b></td> \n";
echo "</tr> \n";
while ($row = mysql_fetch_row($result)){
echo "<tr> \n";
echo "<td>$row[0]</td> \n";
echo "<td>$row[1]</td> \n";
echo "</tr> \n";
}
echo "</table> \n";
?>
</body>
</html>
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #7 (permalink)  
Antiguo 12/12/2007, 18:34
Avatar de diepdraco  
Fecha de Ingreso: marzo-2005
Mensajes: 165
Antigüedad: 19 años, 1 mes
Puntos: 0
De acuerdo Re: Enviar datos a BD MySQL con formulario PHP

muchisimas gracias justo lo que buscaba, pero cuando intente implementarlo algo salio mal, tu ejemplo perfecto y en si ya esta jalando en la base de datos pero cuando agrege mas opciones trono, espero me puedas hechar la mano, aqui las adecuaciones que le hice

insertar_datos.php
<?php
//Conexion con la base
mysql_connect("server","user","pass");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("cuestionario");

//Ejecucion de la sentencia SQL
mysql_query("insert into cuestionario (nombre,apellido,email,sexo,sexual,musica,residenc ia,ciudad,opinion,personaje,si) values ('$nombre','$apellido','$email','$sexo','$sexual', '$musica','$residencia','$ciudad','$opinion','$per sonaje','$si')");
?>


seleccion.php
<?php
$link = mysql_connect("server", "user", "pass");
mysql_select_db("cuestionario", $link);
$result = mysql_query("SELECT nombre, apellido, email, sexo, sexual, musica, residencia, ciudad, opinion, personaje, si FROM cuestionario", $link);
echo "<table border = '1'> \n";
echo "<tr> \n";
echo "<td><b>nombre</b></td> \n";
echo "<td><b>apellido</b></td> \n";
echo "<td><b>email</b></td> \n";
echo "<td><b>sexo</b></td> \n";
echo "<td><b>sexual</b></td> \n";
echo "<td><b>musica</b></td> \n";
echo "<td><b>residencia</b></td> \n";
echo "<td><b>ciudad</b></td> \n";
echo "<td><b>opinion</b></td> \n";
echo "<td><b>personaje</b></td> \n";
echo "<td><b>si</b></td> \n";
echo "</tr> \n";
while ($row = mysql_fetch_row($result))
{
echo "<tr> \n";
echo "<td>$row[1]</td> \n";
echo "<td>$row[2]</td> \n";
echo "<td>$row[3]</td> \n";
echo "<td>$row[4]</td> \n";
echo "<td>$row[5]</td> \n";
echo "<td>$row[6]</td> \n";
echo "<td>$row[7]</td> \n";
echo "<td>$row[8]</td> \n";
echo "<td>$row[9]</td> \n";
echo "<td>$row[10]</td> \n";
echo "<td>$row[11]</td> \n";
echo "</tr> \n";
}
echo "</table> \n";
?>
__________________
No por siempre llovera
  #8 (permalink)  
Antiguo 13/12/2007, 08:12
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: Enviar datos a BD MySQL con formulario PHP

veamos algo
Cita:
//Ejecucion de la sentencia SQL
mysql_query("insert into cuestionario (nombre,apellido,email,sexo,sexual,musica,residenc ia,ciudad,opinion,personaje,si) values ('$nombre','$apellido','$email','$sexo','$sexual', '$musica','$residencia','$ciudad','$opinion','$per sonaje','$si')");
si ter fijas la variable personaje tiene un espacio
Cita:
$per sonaje
ahora en seleccion.php
las posiciones empiezan por 0 (cero) no por 1 (uno)
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #9 (permalink)  
Antiguo 13/12/2007, 19:02
Avatar de diepdraco  
Fecha de Ingreso: marzo-2005
Mensajes: 165
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Enviar datos a BD MySQL con formulario PHP

estuve revisando y nada, personaje en el codigo no tiene ningun sepaciòn, ya hasta cambie el nombre de la tabla y el formulario de llenado es en extremo basico, te pido le heches un ojo final me imagino o supongo ya es algun minimo detalle, y reitero mi agradecimiento

base de datos: cuestionario
tabla: formulario



index.php

<FORM METHOD="POST" ACTION="insertar_datos.php">
<p>&nbsp;</p>
<table border="0" width="423">
<tbody>
<tr>
<td class="texto"> Nombre (s) </td>
<td class="texto"><input type="text" name="nombre"></td>
</tr>
<tr>
<td class="texto"> Apellido (s) </td>
<td><input type="text" name="apellido"></td>
</tr>
<tr>
<td class="texto">E-mail</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td class="texto">Sexo</td>
<td><input type="text" name="sexo">
</td>
</tr>
<tr>
<td class="texto">Preferencia sexual </td>
<td><input type="text" name="sexual">
</td>
</tr>
<tr>
<td class="texto">Preferencia m&uacute;sical</td>
<td><input name="musica" type="text"></td>
</tr>
<tr>
<td class="texto">Residencia</td>
<td><input type="text" name="residencia">
</td>
</tr>
<tr>
<td class="texto">Ciudad</td>
<td><input type="text" name="ciudad"></td>
</tr>
<tr>
<td class="texto">Opini&oacute;n del programa </td>
<td><input type="text" name="opinion"></td>
</tr>
<tr>
<td class="texto">Personaje favorito </td>
<td>
<input type="text" name="actor"></td>
</tr>
<tr>
<td class="texto">Deseas recibir informaci&oacute;n</td>
<td><input type="text" name="si"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle"><INPUT TYPE="SUBMIT" value="Insertar"></td>
</tr>
</tbody>
</table>
<br>
</form>



insertar_datos.php

<TITLE>Insertar.php</TITLE>
</HEAD>
<BODY>
<?php
//Conexion con la base
mysql_connect("server","user","pass");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("formulario");

//Ejecucion de la sentencia SQL
mysql_query("insert into formulario (nombre,apellido,email,sexo,sexual,musica,residenc ia,ciudad,opinion,actor,si) values ('$nombre','$apellido','$email','$sexo','$sexual', '$musica','$residencia','$ciudad','$opinion','$act or','$si')");
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="seleccion.php">Visualizar el contenido de la base</a></div>
</BODY>
</html>


seleccion.php
<?php
$link = mysql_connect("server", "user", "pass");
mysql_select_db("formulario", $link);
$result = mysql_query("SELECT nombre, apellido, email, sexo, sexual, musica, residencia, ciudad, opinion, actor, si FROM formulario", $link);
echo "<table border = '1'> \n";
echo "<tr> \n";
echo "<td><b>nombre</b></td> \n";
echo "<td><b>apellido</b></td> \n";
echo "<td><b>email</b></td> \n";
echo "<td><b>sexo</b></td> \n";
echo "<td><b>sexual</b></td> \n";
echo "<td><b>musica</b></td> \n";
echo "<td><b>residencia</b></td> \n";
echo "<td><b>ciudad</b></td> \n";
echo "<td><b>opinion</b></td> \n";
echo "<td><b>actor</b></td> \n";
echo "<td><b>si</b></td> \n";
echo "</tr> \n";
while ($row = mysql_fetch_row($result))
{
echo "<tr> \n";
echo "<td>$row[0]</td> \n";
echo "<td>$row[1]</td> \n";
echo "<td>$row[2]</td> \n";
echo "<td>$row[3]</td> \n";
echo "<td>$row[4]</td> \n";
echo "<td>$row[5]</td> \n";
echo "<td>$row[6]</td> \n";
echo "<td>$row[7]</td> \n";
echo "<td>$row[8]</td> \n";
echo "<td>$row[9]</td> \n";
echo "<td>$row[10]</td> \n";
echo "</tr> \n";
}
echo "</table> \n";
?>

Como veras ya cambie el nombre de la table en la base de datos, para que no fuera igual a la base misma, y tambien cambie el nombre del penultumo campo, de personaje a actor.

Otra vez mil gracias
__________________
No por siempre llovera
  #10 (permalink)  
Antiguo 14/12/2007, 08:31
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: Enviar datos a BD MySQL con formulario PHP

me diras que tu no lo vez separado pero yo si lo veo separado
Cita:
//Ejecucion de la sentencia SQL
mysql_query("insert into formulario (nombre,apellido,email,sexo,sexual,musica,residenc ia,ciudad,opinion,actor,si) values ('$nombre','$apellido','$email','$sexo','$sexual', '$musica','$residencia','$ciudad','$opinion','$act or','$si')");
?>
el campo residencia y la variable $actor

chequea hay

no obstante
te lo pongo
Cita:
mysql_query("insert into formulario (nombre,apellido,email,sexo,sexual,musica,residenc ia,ciudad,opinion,actor,si) values ('$nombre','$apellido','$email','$sexo','$sexual', '$musica','$residencia','$ciudad','$opinion','$act or','$si')");
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #11 (permalink)  
Antiguo 14/12/2007, 23:09
Avatar de diepdraco  
Fecha de Ingreso: marzo-2005
Mensajes: 165
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Enviar datos a BD MySQL con formulario PHP

Te lo juro que no esta sepado en el codigo, pero abusando mejor te lo muestro en tal cual es!

www.desdegayola.com/bd/base.zip

aqui se encuentran los tres archivos, y le quite la opcion o variable de actor, al igual que la quite de la base de datos.

Mil gracias por tu ayuda!
__________________
No por siempre llovera
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 02:22.