Comunidad de diseño web y desarrollo en internet online

Problema al enviar datos a una tabla MySQL desde una web con php

Citar            
MensajeEscrito el 24 May 2011 04:25 pm
Hola a todos.

Soy nuevo en estos temas y he estado leyendo bastante pero o no me entero o decididamente me tengo que dedicar a la alfarería y dejarme estas cosas. Será una tontería, pero ¿alguien sabe por que no consigo añadir nada a mi base de datos?

Tengo dos páginas, la primera HTML


escribió:

<HTML>
<HEAD>
<TITLE>Insertar.html</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Insertar un registro</h1>
<br>
<FORM name="insertar" METHOD="POST" ACTION="insertar.php">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nombre"><br>
Teléfono<br>
<INPUT TYPE="TEXT" NAME="telefono"><br>
<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>
</div>
</BODY>
</HTML>


y la segunda ya php

escribió:

<HTML>
<HEAD>
<TITLE>Insertar.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
function opendb()
{

$db = mysql_connect("localhost", "root", "");
mysql_select_db("ejemplo", $db);

return $db;
}
$db = opendb();
//Ejecucion de la sentencia SQL
mysql_db_query($db,"insert into clientes (nombre,telefono) values ('$nombre','$telefono')");
mysql_close($db);
?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div>
</BODY>
</HTML>


Pero la base de datos sigue invariable, ¿Alguna idea de donde fallo?

Por Sarlit

8 de clabLevel



 

Mal intento de webmaster...

chrome
Citar            
MensajeEscrito el 24 May 2011 05:18 pm
A simple vista, en insertar.php, nunca recuperas los valores del POST, lo que deberias hacer al inicio.

Código PHP :

$nombre = $_POST["nombre"];
$telefono = $_POST["telefono"];

Por edge

57 de clabLevel



Genero:Masculino  

Software developer

chrome
Citar            
MensajeEscrito el 24 May 2011 05:58 pm

edge escribió:

A simple vista, en insertar.php, nunca recuperas los valores del POST, lo que deberias hacer al inicio.

Código PHP :

$nombre = $_POST["nombre"];
$telefono = $_POST["telefono"];


Lo he intentado como dices pero sigue sin funcionar, aunque si le doy a actualizar la página me aparece un cartelito de que reenviara la información, así que enviarse se envía, pero no se recibe, como dices tu...

Por Sarlit

8 de clabLevel



 

Mal intento de webmaster...

chrome
Citar            
MensajeEscrito el 24 May 2011 06:40 pm
No sé de dónde has sacado este código pero las funciones mysql_db_select() y mysql_db_query() están obsoletas.

En su lugar usa
mysql_select("nombre_db", $db);
y
mysql_query("INSERT bla bla bla...",$db);

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 24 May 2011 07:09 pm
Vale... viva yo, aunque sigue sin ir...

Para no liarnos, el código actual es:

Código :

<HTML> 
<HEAD> 
<TITLE>Insertar.php</TITLE> 
</HEAD> 
<BODY> 
<?php
//Conexion con la base de datos 
function opendb() 
{ 
    
   $db = mysql_connect("localhost", "root", ""); 
   mysql_select("ejemplo", $db); 
    
   return $db; 
} 
$db = opendb(); 
 
//Llamar a las variables a introducir 
$nombre = $_POST["nombre"];  
$telefono = $_POST["telefono"];  
 
//Ejecucion de la sentencia SQL 
 
mysql_query("insert into clientes (nombre,telefono) values ('$nombre','$telefono')", $db); 
   mysql_close($db); 
?> 
<h1><div align="center">Registro Insertado</div></h1> 
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div> 
</BODY> 
</HTML>


¿Se os ocurre algo más?

Por Sarlit

8 de clabLevel



 

Mal intento de webmaster...

chrome
Citar            
MensajeEscrito el 24 May 2011 08:56 pm
a simple vista parece estar todo bien dime haz probado la consulta desde el phpmyadmin?
bueno si tienes las extensiones pdo y pdo_mysql esto podria serte mas util

Código PHP :

<?php
//le indicamos a nuestro script q nos muestre todos los errores en pantalla
error_reporting(E_ALL);
//verificamos que se haya enviado desde un formulario
if(isset($_POST['nombre'])):
$user = 'root';
$password = '';
//conexion necesaria a la clase
$MI_DB = new PDO('mysql:host=localhost;dbname=ejemplo',$user,$password);
//escapamos las variables a introducir a la DB para evitar injecciones SQL
//y las almacenamos en una variable
$resultado = $MI_DB->prepare('INSERT INTO clientes (nombre,telefono) values (:nombre,:telefono)');
//ejecutamos la consulta pasandole un array de las variables
$resultado->execute(array(
      ':nombre' => $_POST["nombre"]
,   ':telefono' => $_POST["telefono"]
));
//almacenamos en una variable cuantos registros se insertaron
$n_agregados = $resultado->rowCount();
endif;
?>
<html>
   <head>
      <title>Insertar.php</title>
   </head>
   <body>
      <h1>Se insertaron <span style="color:red"><?php echo $n_agregados;?></span></h1>
      <div><a href="lectura.php">Visualizar el contenido de la base</a></div>
   </body>
</html>

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 May 2011 08:09 am

tuadmin escribió:

a simple vista parece estar todo bien dime haz probado la consulta desde el phpmyadmin?
bueno si tienes las extensiones pdo y pdo_mysql esto podria serte mas util

Código PHP :

<?php
//le indicamos a nuestro script q nos muestre todos los errores en pantalla
error_reporting(E_ALL);
//verificamos que se haya enviado desde un formulario
if(isset($_POST['nombre'])):
$user = 'root';
$password = '';
//conexion necesaria a la clase
$MI_DB = new PDO('mysql:host=localhost;dbname=ejemplo',$user,$password);
//escapamos las variables a introducir a la DB para evitar injecciones SQL
//y las almacenamos en una variable
$resultado = $MI_DB->prepare('INSERT INTO clientes (nombre,telefono) values (:nombre,:telefono)');
//ejecutamos la consulta pasandole un array de las variables
$resultado->execute(array(
      ':nombre' => $_POST["nombre"]
,   ':telefono' => $_POST["telefono"]
));
//almacenamos en una variable cuantos registros se insertaron
$n_agregados = $resultado->rowCount();
endif;
?>
<html>
   <head>
      <title>Insertar.php</title>
   </head>
   <body>
      <h1>Se insertaron <span style="color:red"><?php echo $n_agregados;?></span></h1>
      <div><a href="lectura.php">Visualizar el contenido de la base</a></div>
   </body>
</html>


No me preguntes por que, pero tú código si que funciona perfectamente, además me viene bastante mejor que el mio ya que la idea es que pueda agregar varios registros y el contador me viene de lujo. Muchas gracias

Por Sarlit

8 de clabLevel



 

Mal intento de webmaster...

chrome
Citar            
MensajeEscrito el 25 May 2011 02:26 pm
pues si te gusto jeej pasate por el manual de la clase PDO o mysqli que hace casi lo mismo
http://es2.php.net/pdo
puedes hacer muchas cosas como abstraer los datos en objetos tienes fetchAll,fetchObject y fetch

y si vas a hacer varias inserciones fijate en este ejemplo que te ponen en el sitio

http://es2.php.net/manual/es/pdostatement.execute.php#usernotes

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.