Php
Como guardar multiples datos, con multiples registros en PHP
by Антонио Тони on Jun.30, 2009, under Php
En esta ocacion les dejo un pequeño script que pretende ayudar a ilustrar de una forma practica la posibilidad de poder actualizar o insertar multiples datos de multiples registros a una base de datos usando php, es decir…
Imaginemos que tenemos una seccion en la cual necesitemos actualizar o insertar los registros de varios usuarios de forma multiple y en la cual podamos actualizar todos los datos incluyendo nombre, password, usuario, contraseña, status de usuario, etc.
Tablas:
/** * @Author: J Antonio BS * @Mail: mail@antoniobs.net * @Web: www.antoniobs.net */ /* c0de for MySQL */ CREATE TABLE AppUsers ( id_user int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, user_name varchar(32) NOT NULL DEFAULT '', user_last_name varchar(32) NOT NULL DEFAULT '', user_mail varchar(32) NOT NULL DEFAULT '', user_login varchar(16) NOT NULL DEFAULT '', user_password varchar(16) NOT NULL DEFAULT '', user_status tinyint(1) NOT NULL DEFAULT '1' ); /* c0de for SQL Server */ CREATE TABLE AppUsers ( id_user int NOT NULL PRIMARY KEY IDENTITY(1,1), user_name varchar(32) NOT NULL , user_last_name varchar(32) NOT NULL , user_mail varchar(32) NOT NULL , user_login varchar(16) NOT NULL , user_password varchar(16) NOT NULL , user_status bit NOT NULL DEFAULT (1) ); /* c0de for PostgreSQL */ CREATE TABLE AppUser ( id_user serial NOT NULL PRIMARY KEY, user_name character(32), user_last_name character(32), user_mail character(32), user_login character(16), user_password character(16), user_status boolean )
Codigo:
<?
/**
* @Author: J Antonio BS
* @Mail: mail@antoniobs.net
* @Web: www.antoniobs.net
*/
if( isset( $_POST["submit"] ) ) // se envio el formulario?
for($x =0 ; $x < 10 ; $x++) // recorremos 10 posibles registros, puedes poner los que necesites
// se recuperan cada uno de los datos del form siempre y cuando se hayan enviado, de lo contrario los omite
if(isset($_POST["opcStatus" . $x])) // se envio el registro opcStatus1, opcStatus2, ... etc. ?
{
// obtenemos cada uno de los datos
$idUser = $_POST[ "idUser".$x ];
$txtNombre = $_POST[ "txtNombre".$x ];
$txtApellido= $_POST[ "txtApellido".$x ];
$txtMail = $_POST[ "txtMail".$x ];
$txtUser = $_POST[ "txtUser".$x ];
$txtPassword= $_POST[ "txtPassword".$x ];
$opcStatus = $_POST[ "opcStatus".$x ];
// tu cadena correspondiente para la actualizacion de datos.
/*Justo aqui es donde tu colocas el codigo correspondiente a la actualizacion
o a la insercion de los datos a tu base de datos, este script se limita a
proponer la funcionalidad, el resto esta de tu parte. */
echo "UPDATE SET user_name='$txtNombre', user_last_name='$txtApellido',user_mail=' $txtMail', user_login='$txtUser', user_password='$txtPassword', user_status='$opcStatus' WHERE id_usuario='$idUser'<br>";
}
else
echo "Selecciona los datos correspondientes.<br>";
?>
<pre>
Se pretende guardar multiples datos de multiples registros
</pre>
<form method="POST">
Registro 1
<br><br>
Nombre: <input type="text" name="txtNombre1">
Apellidos: <input type="text" name="txtApellido1">
Mail: <input type="text" name="txtMail1">
<br>
Usuario: <input type="text" name="txtUser1">
Password: <input type="text" name="txtPassword1">
Status: <select name="opcStatus1">
<option value="1"> Activo </option>
<option value="0"> Inactivo </option>
</select>
<input type="hidden" name="idUser1" value="10">
<hr>
Registro 2
<br><br>
Nombre: <input type="text" name="txtNombre2">
Apellidos: <input type="text" name="txtApellido2">
Mail: <input type="text" name="txtMail2">
<br>
Usuario: <input type="text" name="txtUser2">
Password: <input type="text" name="txtPassword2">
Status: <select name="opcStatus2">
<option value="1"> Activo </option>
<option value="0"> Inactivo </option>
</select>
<input type="hidden" name="idUser2" value="5345">
<hr>
Registro 3
<br><br>
Nombre: <input type="text" name="txtNombre3">
Apellidos: <input type="text" name="txtApellido3">
Mail: <input type="text" name="txtMail3">
<br>
Usuario: <input type="text" name="txtUser3">
Password: <input type="text" name="txtPassword3">
Status: <select name="opcStatus3">
<option value="1"> Activo </option>
<option value="0"> Inactivo </option>
</select>
<input type="hidden" name="idUser3" value="2334">
<hr>
<input type ="submit" name="submit" value="OK">
</form>
Con fines ilustrativos se colocaron solo 3 registros estaticos , pero esto no necesariamente deberia ser asi, ya que se podria modificar de tal forma que se pudiesen llenar esos registros de forma dinamica con la informacion proveniente de tu DB, colocando cada valor en la etiqueta value=”" correspondiente.
Suerte!

