Está en la página 1de 25

Procedimientos almacenados en PhpMyAdmin

MySql desde la version 5.xx soporta la creacin de procedimientos


almacenados. Una de las ventajas que aporta el desarrollar aplicaciones con
procedimientos es que permite un mejor rendimiento de las aplicaciones. Ya
que no son tantos los datos que transitan entre el cliente y el servidor.
Probablemente quienes quieran hacer sus pruebas, creando sp (Store
Procedures / Procedimientos Almacenados) en phpmyadmin se darn cuenta
que no resulta tan sencillo. Por esto este tip:
Por ejemplo: Tengo una tabla que se llama usuarios y creare un procedimiento
para que me retorne todos los datos de esa tabla. Esto seria de la siguiente
manera:

al finalizar la sentencia END se agregan estos signos $$, mas abajo en la caja
de texto que dice delimitador, se vuelven a ingresar estos signos $$. Tal cual
aparece en la imagen que adjunto.

Edicin 01/05/2012
Tal como lo indica uno de los comentarios annimos. Para obtener una lista de
los procedimientos creados en una base de datos se usa la siguiente orden:

Para obtener una lista de todos los procedimientos almacenados en tu


instalacin de MySql, debes seleccionar la base de
datos information_schema y hacer la consulta:

Tambin se puede obtener el cdigo de un procedimiento

Por defecto, PhpMyAdmin muestra el cdigo en una linea. Se debe hacer click
sobre el linkOpciones y elegir Texto Completo.
Para cerrar el circulo. Lo que normalmente va a pasar es que quieras hacer
alguna modificacin al procedimiento. Pero en MySql un ALTER PROCEDURE no
va a funcionar para cambiar parmetros ni el cdigo (ver link ALTER
PROCEDURE Syntax). Lo que se debe hacer es eliminar el procedimiento y
volver a crearlo.

Artculos de este blog Relacionados


sp_helptext en MySql u obtener Create
Otros Links
ALTER PROCEDURE Syntax
Si te ha sido til o te ha gustado el artculo, aydame compartindolo con tus
amigos. Haz clic en el botn de la red social de tu preferencia. Gracias.

Procedimientos almacenados MYSQL


Creacin, Consultas e inserciones de
datos
Tutorial sobre la creacin, consultas e inserciones de datos en bases de datos MYSQL. Store
Procedure.
Escrito por Sergio Culoccioni el jun 06 2013 09:59
mysql insertar datos mysql consultas mysql datos mysql inserciones bbdd

Comparte! Facebook

Comparte! Twitter

Comparte! Google+

Imprimir

Un procedimiento almacenado (Store Procedure), es un pequeo algoritmo en lenguaje SQL


que se almacena junto a la base de datos y permite realizar tareas sobre estos datos.
Las Ventajas de los procedimientos almacenados son:
- Se pueden acceder desde distintos programas externos, si la necesidad de hacer publica la
estructura de la base de datos.
- Se pueden reutilizar por lo tanto ganaremos tiempo al estar ya programado y testeado.

Utilizar procedimientos mysql almacenados, con


phpmyadmin
Iniciaremos el trabajo de crear y consultar procedimientos almacenados con la herramienta
phpmyadmin, pero puede utilizarse cualquiera que soporte consultas SQL a partir de MYSQL
5.0
En este caso tomaremos la base de datos de una agencia de autos o vehculos.
1) Ingresamos a phpmyadmin y de all a la base de datos
Existen 2 tipo motores que manejan datos en Mysql

MyISAM: motor por defecto, muy rpido para consultas, no provee integridad de datos,
ni proteccin referencial. Ideal sistemas con muchas consultas
InnoDB: provee proteccin referencial e integridad de datos adems de bloqueo de
registros, ideal si se va a insertar, editar o eliminar mucha informacin constantemente.
Generalmente para procedimientos almacenados es mejor utilizar InnoDB.

En la pestaa SQL creamos nuestro primer procedimiento almacenado para consultar los tipos
de vehculos. Escribiros en el campo de texto de sql.
CREATE PROCEDURE consultar_tipo_vehiculo() ---> nombre del procedimiento
SELECT * FROM tipo_vehiculo ---> SQL que debe resolver
Si ejecutamos la consulta SQL recibiremos un mensaje de xito al crearse el procedimiento.
Para ver los procedimientos creados desde la pestaa SQL consultamos la orden SHOW
PROCEDURE STATUS, que no mostrara todos los procedimientos almacenados.
Ahora mostraremos como ejecutar el procedimiento almacenado con el comando CALL
nombre_procedimiento(cada lenguaje de programacin tiene su propia librera para acceder
a un procedimiento almacenado pero son todos similares.

Aqu podemos ver el resultado de ejecutar el procedimiento almacenado CALL


pa_tipo_vehiculo, devolvi el resultado y nadie ve que comandos se han ejecutado.

En el siguiente ejemplo listaremos vehculos pero por marca, el procedimiento seria:


CREATE PROCEDURE pa_vehiculos_por_marca(marca varchar(50))
SELECT * FROM
vehiculos, marcas
WHERE vehiculos.marca = marcas.id
AND marcas.marca=marca
Al nombre del procedimiento le aadimos una variable para poder buscar ejemplo vehculos
marca Honda
Para ejecutar el ejemplo llamamos al procedimiento almacenado en una pestaa de SQL
CALL pa_vehiculos_por_marca(Honda)
CALL pa_vehiculos_por_marca(Ford)
Tambin podes utilizar los procedimientos almacenados para tareas de insercin ejemplo un
procedimiento para grabar datos de un cliente
CREATE PROCEDURE pa_cliente_insertar(
vnombre VARCHAR(64),
vapellidos VARCHAR(64)
)
INSERT INTO cliente (nombre, apellidos) VALUES(vnombre, vapellidos);
Para utilizarlo lo llamamos de la siguiente forma
CALL pa_cliente_insertar('Jos','Gonzales');
Otro podra ser Consultar cantidad de provincias
CREATE PROCEDURE `pa_provincias_cantidad`()
SELECT COUNT(*) as provincias FROM provincias
Para eliminar cualquier procedimiento se utiliza DROP PROCEDURE nombre_procedimiento
Llamadas a procedimientos desde distintos lenguajes.
En PHP, suponiendo que los datos vienen de un formulario
$mysqli = new mysqli("localhost", "root", "root");
$mysqli->select_db("agencia_autos");
$mysqli->query("CALL pa_cliente_insertar('$nombre', '$apellido')");
Ahora ejecutamos el procedimeinto almacenado en Java (se ha recortado el cdigo)
conn = ConexionMySQL.conectar("127,0,0,1", "root", "*******", "root");
CallableStatement Procedimiento = conn.prepareCall("{ CALL

pa_cliente_insertar('$nombre', '$apellido')) }");


Procedimiento.setString("vnombre", $nombre);
Procedimiento.setString("vapellido", $apellido);
Procedimiento.execute();
connM.commit();
De esta forma se demuestra que se ha usado el mismo procedimientos en entornos y
lenguajes diferentes, de forma transparente para el usuario. El tema procedimiento es extenso
pero cualquiera con conocimientos de SQL podr investigar y conseguir grandes logros con la
utilizacin de procedimientos almacenados, pudiendo as optimizar sus proyectos en tiempo y
seguridad de datos.

Aadir registros a nuestra base de datos


En esta leccin vamos ver como podemos aadir nuevos registros a nuesta BD. La recogida de
datos la vamos a hacer a traves de un interfaz de web. En primer lugar vamos a crear una
pgina web con un simple formulario, con los campos que deseamos.
Formulario inicial aadir BD
<html>
<body>
<formmethod="post"action="add_reg.php3">
Nombre:<inputtype="Text"name="nombre"><br>
Direccin:<inputtype="Text"name="direccion"><br>
Telfono:<inputtype="Text"name="telefono"><br>
Email:<inputtype="Text"name="email"><br>
<inputtype="Submit"name="enviar"value="Aceptarinformacin">
</form>
</body>
</html>
Hemos creado un formulario donde recoger los datos, y una vez introducidos ejecutamos
un script llamado add_reg.php3, pues veamos como es este script.
aadir registros
<html>
<body>
<?php
//processform
$link=mysql_connect("localhost","root");
mysql_select_db("mydb",$db);
$sql="INSERTINTOagenda(nombre,direccion,telefono,email)"+
"VALUES('$nombre','$direccion','$telefono','$email')";
$result=mysql_query($sql);

echo"Gracias!Hemosrecibidosusdatos.\n";
</body>
</html>

Como se puede ver, para introducir un nuevo registro, utilizamos la ya conocida


funcin mysql_query(), la cal tambin usamos para las consultas, y usaremos para las
actualizaciones, es decir una seorafuncin. Aaah!, una cosa muy importante, para poder
aadir o modificar registros debemos tener permiso para ello en el servidor MySQL, por eso en
este caso me conecto como root, pero podra ser cualquier otro usuario.
Para terminar esta leccin, una pequea frivolidad, vamos a combinar la pgina web de
formulario y el fichero de script php3, en un solo fichero que
llamaremos add_reg.php3 (este script no lo comentar, !algo tendran que hacer ustedes).
Combinacion de formulario y script
<html>
<body>
<?php
if($enviar){
//processform
$link=mysql_connect("localhost","root");
mysql_select_db("mydb",$db);
$sql="INSERTINTOagenda(nombre,direccion,telefono,email)".
"VALUES('$nombre','$direccion','$telefono','$email')";
$result=mysql_query($sql);
echo"Gracias!Hemosrecibidosusdatos.\n";
}else{
?>

<formmethod="post"action="add_reg.php3">
Nombre:<inputtype="Text"name="nombre"><br>
Direccin:<inputtype="Text"name="direccion"><br>
Telfono:<inputtype="Text"name="telefono"><br>
Email:<inputtype="Text"name="email"><br>
<inputtype="Submit"name="enviar"value="Aceptarinformacin">
</form>

<?php
}//endif
?>
</body>
</html>

Algo muy comn en el desarrollo de aplicaciones web es la capacidad de insertar contenidos en


un formulario y pasarlos directamente a la base de datos para su posterior uso. Registro de
usuarios, insercin de contenidos, noticias, etc.
El atributo del formulario que hagamos tiene que apuntar al script que procesar la informacin y
en este caso el mtodo que usamos es POST (method="post"). As sera un posible formulario:

<form name="holamundo" action="insertar_datos.php" method="post">


Ttulo: <input type="text" name="titulo"><br>
Contenido: <textarea name="contenido"></textarea><br>
<input type="enviar" value="Enviar">
</form>
Ahora en el archivo "insertar_datos.php" vamos a recoger estos datos e insertarlos en nuestra
base de datos. Suponemos que tenemos una tabla en la base de datos, llamada "noticias" que
tiene los campos "titulo" y "contenido". Miraremos si realmente se han introducido datos en el
formulario y si es as, insertaremos los valores en la base de datos.
<?php
// Primero comprobamos que ningn campo est vaco y que todos los campos existan.
if(isset($_POST['titulo']) && !empty($_POST['titulo']) &&
isset($_POST['contenido']) && !empty($_POST['contenido'])) {
// Si entramos es que todo se ha realizado correctamente
$link = mysql_connect("localhost","usuario","contrasea");
mysql_select_db("nombredb",$link);
// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO noticias (titulo,contenido)
VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')",$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";
}
?>
Esta es luna forma bastante simple de insertar datos en una base de datos MySQL. Podemos seguir
este esquema para procesar formularios ms complejos. Una mejora imprescindible en este
cdigo es escapar los contenidos que insertemos. Si nuestro servidor no tiene activadas las
magic_quotes, para evitar una inyeccin SQL tendremos que escapar los valores que insertemos
en la sentencia SQL. Podemos usar la funcin mysql_real_escape_string.

$titulo = mysql_real_escape_string($_POST['titulo']);
Y luego usamos la variable $titulo en la sentencia.

Redactado por Nenillo

Un gran inconveniente a la hora de insertar datos en una pgina web, es tener


que volver a cargar la pgina completa para ver los resultados, algo
que podemos evitar usando Ajax.
Para conseguirlo, Ajax recoger los datos de nuestro formulario de insercin a la
base de datos y los enviar a otra pgina PHP que se encarga de realizar la
insercin. En esta entrada veremos cmo insertar datos en MySQL con PHP y
AJAX.
De esta forma, la pgina web no necesita recargarse para mostrar los datos
insertados, ni siquiera para insertarlos simplemente.
En el ejemplo de demostracin usar una base de datos con la siguiente estructura
de tablas.
CREATE TABLE IF NOT EXISTS `empleados` (
`nombre` VARCHAR(255) NOT NULL,
`apellido` VARCHAR(255) NOT NULL,
`web` VARCHAR(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

El ejemplo, tratar de mostrar una lista con empleados y sus datos, y un formulario
de alta de empleados. Al final del ejercicio quedar as.

El ejemplo consta de 4
archivos.
empleados_registro.php: Muestra el formulario de insercin y llama a la

funcin en Ajax.
ajax.js: Realiza la recogida de datos del formulario y lo enva al script en

PHP.

registro.php: Recoge los datos de la funcin en Ajax y llama a la consulta


de los datos.

consulta.php: Realiza una consulta en la base de datos despus de


insertar los datos, este script se muestra en empleados_registro.php.
Una vez explicada la estructura y funciones de cada archivo, veremos el cdigo de
cada archivo. El cdigo es bastante sencillo y viene comentado para explicar
todas las funciones.
empleados_registro.php

<html>
<head>
<title>Registro de empleados</title>
<script language="JavaScript" type="text/javascript" src="ajax.js"></script>
</head>
<body>
<form name="nuevo_empleado" action="" onsubmit="enviarDatosEmpleado(); re
false">
<h2>Nuevo empleado</h2>
<table>
<tr>
<td>Nombres</td><td><label><input name="nombre" type="text"
/></label></td>

</tr>
<tr>
name="apellido"></label></td>

<td>Apellido</td><td><label><input type="text"
</tr>

<tr>

<td>Web</td><td><label><input name="web" type="text" /></label></td>


</tr>

<tr>

<td>&nbsp;</td><td><label><input type="submit" name="Submit"


value="Grabar" /></label></td>
</tr>
</table>
</form>
<div id="resultado"><?php include('consulta.php');?></div>
</body>
</html>

ajax.js
// JavaScript Document
// Funcin para recoger los datos de PHP segn el navegador, se usa siempre.
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

} catch (E) {
}

xmlhttp = false;

}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
//Funcin para recoger los datos del formulario y enviarlos por post
function enviarDatosEmpleado(){
//div donde se mostrar lo resultados
divResultado = document.getElementById('resultado');
//recogemos los valores de los inputs
nom=document.nuevo_empleado.nombre.value;
ape=document.nuevo_empleado.apellido.value;
web=document.nuevo_empleado.web.value;
//instanciamos el objetoAjax
ajax=objetoAjax();

//uso del medotod POST


//archivo que realizar la operacion
//registro.php
ajax.open("POST", "registro.php",true);
//cuando el objeto XMLHttpRequest cambia de estado, la funcin se inicia
ajax.onreadystatechange=function() {
//la funcin responseText tiene todos los datos pedidos al servidor
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divResultado.innerHTML = ajax.responseText
//llamar a funcion para limpiar los inputs
LimpiarCampos();
}
}

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores a registro.php para que inserte los datos
ajax.send("nombre="+nom+"&apellido="+ape+"&web="+web)
}
//funcin para limpiar los campos
function LimpiarCampos(){
document.nuevo_empleado.nombre.value="";
document.nuevo_empleado.apellido.value="";
document.nuevo_empleado.web.value="";
document.nuevo_empleado.nombre.focus();
}

registro.php
<?php
//Configuracion de la conexion a base de datos
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "";
$bd_base = "ajax";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
//variables POST
$nom=$_POST['nombre'];
$ape=$_POST['apellido'];
$web=$_POST['web'];
//registra los datos del empleados
$sql="INSERT INTO empleados (nombre, apellido, web) VALUES ('$nom', '$ape', '$web')";
mysql_query($sql,$con) or die('Error. '.mysql_error());
include('consulta.php');
?>

consulta.php
<?php
//Configuracion de la conexion a base de datos

$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "";
$bd_base = "ajax";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
//consulta todos los empleados
$sql=mysql_query("SELECT * FROM empleados",$con);
?>

<table style="color:#000099;width:400px;">
<tr style="background:#9BB;">
<td>Nombre</td>
<td>Apellido</td>
<td>Web</td>
</tr>
<?php
while($row = mysql_fetch_array($sql)){
echo "<tr>";
echo "<td>".$row['nombre']."</td>";
echo "<td>".$row['apellido']."</td>";
echo "<td>".$row['web']."</td>";
echo "</tr>";
}
?>

</table>

Te ha gustado? Comprtelo y Comenta! Puedes darme tu opinin o consultar tus


dudas, de esta forma mantendremos la blogosfera viva.

inShare

Cmo instalar y configurar un servidor FTP en Windows (Previous Post)


(Next Post) Tips y trucos CSS: Cdigos preformateados de estilos para tu web

Previous Image

54 COMMENTSTO INSERTAR DATOS EN MYSQL


CON PHP USANDO AJAX PARA EVITAR
RECARGAR LA PGINA
M a n u e l dice:

1.

25 de junio de 2013 a las 2:13:20

hola junto con saludarte y agradecerte quiero decir que esta muy bien la forma
detallada en que explicas el uso de ajax justamente estoy haciendo un sistema
web e imperiosamente necesitaba implementarlo muchas gracias.
Responder

J u a n M a n u e l dice:

2.

28 de junio de 2013 a las 9:38:54

Hola. Estoy intentando crear una sencilla app en html que enve datos a una base
de datos MySQL, a travs de un formulario (donde hay 3 campos a rellenar por el
usuario). Pero esta app (gracias a Phonegap) permite mostrar las coordenadas del
mvil, creado una variable que, lgicamente, depende de la posicin. Y me
gustara enviar los datos de los 3 campos (que s me aparecen en MySQL) y de las
coordenadas (aqu est el problema: no se graban en la base de datos). Podras
decirme donde est el problema?
Puedes ver el cdigo aqu: https://www.box.com/s/ifywsmxafp6c153x1kng
Y aqu el archivo conecta.php:https://www.box.com/s/j5cqt7rskj7hrv1hshdi
Mil gracias!
Responder

J o r g e C a p e r o t e dice:
1 de julio de 2013 a las 22:39:45

Buenas Juan Manuel,


Deberas incluir el valor de las coordenadas que estas recogiendo en el formulario
que indicas, mediante inputs hidden, para que el usuario no tenga que verlo en el
formulario, de esa forma podrs pasar los datos a la pgina de destino para
insertarlo en la base de datos.
Espero que te sirva de ayuda, saludos.

Responder

G E R A R D O dice:

3.

5 de julio de 2013 a las 21:39:24

HOLA:
Solo para agradecer el detalle de la explicacin junto con el cdigo comentado me
sirvi de mucho. Gracias
Responder

J a u n C a r l o s dice:

4.

10 de julio de 2013 a las 20:05:31

Amigo es seguro esl envia de datos con ajax o hay la posivilidad que manipulen el
envio y hacerlo desde la url y no con el button enviar
Responder

A l d a i r dice:

25 de junio de 2014 a las 4:08:06

Hola Juan carlos el riesgo existe ! por medio del metodo post
& get solo es cuestion de que no alla ningun mal intensionado haga eso en tu sitio
y pues cada vez que vallas adquiriendo conocimiento vallas mejorando el script de
tus
consultas
en
tu
base
de
datos
Jorge
Caperote
Muy bueno tu tuto me gusta mucho !
Responder

J o r g e C a p e r o t e dice:

5.

10 de julio de 2013 a las 21:39:46

Hola Juan Carlos,


Es seguro puesto que enva los datos por POST. ste mtodo es utilizado por
muchas aplicaciones.
Saludos y gracias por visitar mi blog!
Responder

R o b e r t o dice:

6.

24 de julio de 2013 a las 18:01:25

Andaba buscando una idea como esta porque necesito guardar datos en la base
pero solo de una seccion de mi pagina , ahora bien tengo una duda tengo un
sistema en php y este guarda datos en la base y tengo un formulario general y un
boton para guardar , se me ha pedido modificar la pagina y darle la oportunidad al
usuario de poder modificar las areas de texto que previamente han sido guardadas
.. tu ejemplo lo trabajas con un form pero en mi caso no podria usarlo ya que
tengo un form general y no puedo meter un form dentro de otro form.hay alguna
otra manera de enviar datos a una pagina sin usar un form??
Responder

J o r g e C a p e r o t e dice:

24 de julio de 2013 a las 22:05:57

Hola Roberto,
Para lo que necesitas tal vez te venga bien hacer un nico formulario con varios
submit, esto es, crear un submit al final del formulario que lleve al action
predeterminado y otro boton (button) en el cual luego llamas con javascript a otro
action y manejas los datos que quieras.
Para que te quede ms claro te dejo un enlace en el cual lo explica bastante
bien:http://stackoverflow.com/questions/942772/html-form-with-two-submitbuttons-and-two-target-attributes
Espero que te sirva de ayuda y gracias por visitar el blog!
Responder

M a r i o G o n z a l e s dice:

7.

31 de julio de 2013 a las 23:16:30

Hola, me parece interesante tu tutorial, pero estamos ya en el 2013, parece que


viera un cdigo de la dcada del 90, usa PDO para insertar a la base de datos, por
seguridad sobre todo, usa patrones de diseo (MVC, Factory, facade), usa un
framewrok javascript como jquery para pasar datos al servidor, usa addcslashes.
Saludos.
Responder

J o r g e C a p e r o t e dice:

1 de agosto de 2013 a las 9:29:11

Hola Mario, me parece bien tu crtica pero creo que no encaja con el contenido del
artculo, est claro que hay mtodos de conexin a base de datos como PDO (que
puedes ver en mi siguiente artculo:http://soyautodidacta.com/2013/04/conexion-abase-de-datos-en-php-con-pdo/) que supongo que no habrs visto en mi blog,
aparte de necesitar una versin superior a 5.1 de PHP, y puede que te sorprenda
pero no todo el mundo dispone de ella an.
Podra usar un modelo-vista-controlador como Symfony2 (en el que estoy
empezando
a
desarrollar
un
hilo
de
artculos
con
manualeshttp://soyautodidacta.com/2013/05/frameworks-php-symfonyempezando/) o CodeIgniter (que estoy escribiendo artculos ya, por lo que an no
estn subidos).
Se que existen mtodos para utilizar jQuery, de hecho yo los utilizo, pero la alta
demanda de ste tipo de artculos me ha llevado a hacerlo as precisamente.
Supongo que he resuelto todas tus inquietudes y dudas, y por ltimo, no creo que
vieras muchas webs con funcionalidades de Ajax en la poca de los 90.
Un saludo y gracias por visitar mi Blog!
Responder

8.

Soy Au t odidacta Insertar datos con jQuery y


P H P e n M y S Q L dice:
1 de agosto de 2013 a las 13:49:15

[] a ver otro mtodo ms para insertar datos en una base de datos MySQL, hace
unos meses vmos como insertar datos en MySQL con Ajax y PHP. Todo esto viene
por la necesidad de introducir datos en nuestra base de datos sin tener que []
Responder

9.

G i l b e r t h dice:
1 de agosto de 2013 a las 19:21:50

Hola muy buena tu explicacin. Tengo una pregunta un poco diferente de lo


explicado aqui y es que yo tengo una pagina con un select que dependiendo lo que
seleccionan se llenan unos input text con el contenido de la base de datos. Todos
los input se crean con ajax y se muestran en la pagina perfectamente el problema
es que si el usuario modifica el contenido tengo que guardar en la base de datos

las modificaciones pero como son inputs hechos en ajax nose como obtener el
value de ellos y para ponder guardarlo. Gracias.
Responder

J o r g e C a p e r o t e dice:

2 de agosto de 2013 a las 8:51:12

Hola Gilberth,
Gracias por visitar mi Blog. Cuando creas inputs por ajax, ests creando un cdigo
HTML que ser pasado su value a otra pgina al hacer submit, si yo modifico los
campos de los inputs creados, al pasarlo por POST a otra pgina php tiene que
recoger los values que estn en los inputs en el momento de hacer submit, si
quieres insertar datos desde la misma pgina puedes usar ste mtodo para
insertarlo o hacerlo con jQueryhttp://soyautodidacta.com/2013/08/insertar-datosjquery-php-en-mysql/
Los values tomarn el valor cuando se hace submit al form
Saludos.
Responder

10.

J o dice:

MTODO PARA INSERTAR REGISTROS EN MYSQL


USANDO PHP
09 de marzo de 2014
Para trabajar con bases de datos a travs de un sitio web debemos conocer algunas cosas
bsicas como por ejemplo como crear una tabla, como insertar registros y tambin como
visualizar estos datos.
Generalmente para la creacin de sitios web dinmicos se utiliza Apache, PHP y MySQL la
combinacin de estas tres soluciones de uso libre crean el estndar sobre el que se
realizan muchos proyectos pensados para operar a travs de internet.
CREAR UNA TABLA USANDO LA LNEA DE COMANDOS DE WINDOWS

Es muy normal que utilicemos MySQL a travs de las paginas php y para administrar
nuestras bases de datos ocupemos un programa como phpMyAdmin, pero en alguna ocasin
podramos no tener estas opciones por esto es necesario tener alguna nocin de como
hacerlo a travs de la linea de comandos. Como la mayora debe saber la lnea de comandos
se abre ejecutando el archivo cmd.exe. Ahora para acceder al servidor debemos conocer
en que direccin o carpeta se encuentra ubicado. En mi caso est
en C:\xampp\mysql\bin>.
view plainprint?

1.

C:\xampp\mysql\bin>mysql -h localhost -u root -p

2.

Enter password:

3.

mysql>show databases

4.

>;

5.

mysql>use test

6.

Database changed

7.

mysql>create table demo (nombre varchar(20));

8.

Query OK, 0 rows affected (0.14sec)

9.

mysql> show tables;

10. mysql>quit
11. Bye
12. C:\xampp\mysql\bin>exit

En este ejemplo utilizando la base de datos "test" se cre la tabla "demo" que contiene en
campo "nombre". Para ms informacin leer el manual de referencia MySQL
CREAR UNA TABLA A TRAVS DE PHPMYADMIN
Usar phpMyAdmin es ms simple, la administracin de las bases de datos se genera a
travs de una interfaz de usuario que es fcil de entender y de accionar.

Para crear una tabla seleccionamos la base de datos; agregamos el nombre, nmero de
columnas y presionamos continuar. Luego configuramos el tipo de datos de cada columna
como el nombre, tipo y longitud.
INSERTAR DATOS HACIA MYSQL USANDO CDIGO PHP
Teniendo creada la base de datos y su tabla necesitamos un formulario con los datos que
deseemos capturar. Obviamente los campos del formulario deben ser concordantes con los
campos de la tabla. Es importante notar que el formulario incluye un input de
tipo hidden que es muy til para relacionar los comentarios con el artculo o noticia que se
comenta.
view plainprint?

1.

<h3>Comentarios</h3>

2.

<form id="form_comentarios" action="../php/comentarios.php" method="post">

3.

<input id="id_articulo" name="id_articulo" type="hidden" value="3"/>

4.

Nombre<br>

5.

<input id="nombre" type="text" name="nombre" placeholder="Nombre y Apellido"

6.

title="Ingresa tu nombre y Apellido" required="" />

7.

Email<br>

8.

<input id="email" type="email" name="email" placeholder="ejemplo@correo.com"

9.

title="Ingresa tu email" required="" />

10. Comentario<br>
11. <textarea id="mensaje" name="mensaje" placeholder="Mensaje"
12. title="Ingresa tu comentario" required=""></textarea>
13. <input id="submit" type="submit" name="submit" value="Enviar" />
14. </form>

El archivo encargado de insertar los datos del formulario en la base de datos est
definido en el atributo action, llamado "comentarios.php" y su cdigo es el siguiente:
view plainprint?

1.

<?php

2.

function Conectarse()

3.

{ if (!($link=mysql_connect("n_host","n_usuario","password")))

4.
5.

{ echo "Error conectando a la base de datos.";


exit(); }

6.

if (!mysql_select_db("nombre_based",$link))

7.

{ echo "Error seleccionando la base de datos.";

8.
9.

exit(); }
return $link;

10. }
11.

$id_articulo = $_POST["id_articulo"];

12.

$ip = $_SERVER['REMOTE_ADDR'];

13.

$url = $_SERVER['HTTP_REFERER'];

14.

// ajusta la hora

15.

$time = time() + 7200;

16.

$fecha_hora = date('d-m-Y H:i:s', $time);

17.

$nombre = $_POST["nombre"];

18.

$email = $_POST["email"];

19.

$comentario = substr($_POST["mensaje"], 0, 500);

20.

$link = Conectarse();

21.

//devuelve el ultimo comentario, muy necesario para evitar doble envio de los datos

22.

$verif = mysql_query("SELECT * FROM comentarios ORDER BY id_comentario DESC LIM


IT 1",

23.

$link);

24.

while($row_a = mysql_fetch_row($verif)){

25.

$ultimo_com = $row_a[7];

26.

27.

if ($nombre != "" and filter_var($email, FILTER_VALIDATE_EMAIL)

28.

and $comentario != $ultimo_com) {

29.

mysql_query("INSERT INTO comentarios

30.

id_articulo, ip, url, fecha_hora, nombre, email, comentario)

31.

VALUES ('$id_articulo', '$ip', '$url', '$fecha_hora', '$nombre', '$email', '$comentario')",

32.

$link);

33.

34.

?>

Este es un mtodo para el envo de datos, existen otra formas pero creo que esta es la
ms usual y simple. Para mayor informacin pueden acceder al manual de PHP. Espero les
guste e interese el tema, se agradecen los comentarios o dudas, aprender y compartir lo
que uno sabe es el objetivo de este sitio.
Google +58 7 5

Anuncios / Ads
COMENTARIOS
oscar ledesma dice
Hola estoy en mi etapa de aprendizaje con html5 y php y necesito hacer un formulario
para insertar datos y que me muestre un resultado ingresando la id de la persona,
agradezco toda su ayuda.
Publicado el 18-03-2014 03:54:38

Juan Boris dice


Hola oscar, bueno para insertar datos ya vimos un caso en este tutorial, ahora bien para
visualizar la info se puede hacer de varias formas: en un formulario con la opcin de hacer
un UPDATE del cliente, en un archivo pdf o en una tabla que la despliega el mismo archivo
php. En el caso de hacerlo por tabla que es lo mas usual puedes usar un input donde
ingresas el id que buscas, este id lo recibes en un variable POST que la usas en una
mysql_query como SELECT * FROM mitabla WHERE id = $id con mysql_fetch_row y while
lo puedes desplegar en tu navegador como tu quieras. Aqu te de dejo un link que te
pudiese interesar: http://eisenbraun.github.io/columns/ saludos ..
Publicado el 18-03-2014 17:32:38

- See more at: http://www.ideaschile.cl/insertar-registrosmysql.php#sthash.tams6Mxz.dpuf

También podría gustarte