classForm.php
Código:
<?php //by NauJFracT juanfranciscot@gmail.com
class DB_mysql{
// Variables de conexión;
var $BaseDatos;
var $Servidor;
var $Usuario;
var $Clave;
//Identificador de conexión y consulta
var $Conexion_ID=0;
var $Consulta_ID=0;
//Numero de error y texto de error
var $Errno = 0;
var $Error ="";
/*Metodo constructor: cada vez que creemos una variable de esta clase
se ejecutará esta función */
function DB_mysql($bd="",$host="",$user="",$pass=""){
$this->BaseDatos = $bd;
$this->Servidor =$host;
$this->Usuario=$user;
$this->Clave=$pass;
}
/*Conexion a la base de datos*/
function conectar($bd,$host,$user,$pass){
if($bd !="") $this->BaseDatos = $bd;
if($host !="") $this->Servidor = $host;
if($user !="") $this->Usuario = $user;
if($pass !="") $this->Clave = $pass;
/* Conectamos al server */
$this->Conexion_ID = mysql_connect($host,$user,$pass);
if(!$this->Conexion_ID){
$this->Error = "Ha fallao la conesion";
return 0;
}
//selecciono la db
if(!@mysql_select_db($this->BaseDatos,$this->Conexion_ID)){
$this->Error = "imposible conectar a la DB".$this->BaseDatos;
return 0;
}
/*Si nos conectamos entonces el identificador será devuelto*/
return $this->Conexion_ID;
}
function consultas($sql=""){
if($sql==""){
$this->Error="No ha especificado una consulta SQL";
return 0;
}
/*ejecutamos la consulta wn*/
$this->Consulta_ID = @mysql_query($sql,$this->Conexion_ID);
if(!$this->Consulta_ID){
$this->Errno= mysql_errno();
$this->Error= mysql_error();
}
/* Si todo bien devuelve el identificador de la conexion*/
return $this->Consulta_ID;
}
//Devuelve el numero de campos de una consulta
function numcampos(){
return mysql_num_fields($this->Consulta_ID);
}
//Devuelve el numero de registros de una consulta
function numregistros(){
return mysql_num_rows($this->Consulta_ID);
}
//Devuelve el nombre de un campo de una consulta
function nombrecampo($numcampo){
return mysql_field_name($this->Consulta_ID,$numcampo);
}
//Muestra los datos de una consulta
function verconsulta($formDestino,$baseDeDatosModificar){
echo '
<form name="form1" action="'.$formDestino.'" method="post">
<input type="hidden" value="'.$baseDeDatosModificar.'" name="baseDatos">
<table border =1 cellpadding="0" bordercolor="#003366" cellspacing="0">
<tr>';
//mostramos los nombres de los campos
for ($i=0;$i< $this->numcampos(); $i++){
echo "<td><b>".$this->nombrecampo($i)."</b>
<input type=\"hidden\" value=\"".$this->nombrecampo($i)."\" name=\"elCampo[".$i."]\"></td>\n";
$theNameCamp[$i]=$this->nombrecampo($i);
$theNameCamp2[$i]=$this->nombrecampo($i);
}
echo "
</tr>\n";
$inc=0;
//Mostramos los registros
while($row = mysql_fetch_row($this->Consulta_ID)){
echo "<tr> \n";
for ($j=0;$j<$this->numcampos();$j++){
echo "<td><input type=\"text\" value=\"".$row[$j]."\" name=\"".$theNameCamp[$j]."[".$inc."]\">
<input type=\"hidden\" value=\"".$row[$j]."\" name=\"".$theNameCamp2[$j]."2[".$inc."]\">
</td>\n";
}
echo "</tr>
\n";$inc++;
}
echo '<tr>
<td colspan='.$j.'><input type="submit" value="Enviar"></td>
</tr></table></form>';
}//fin funcion verconsulta();
}//fin Class DB_mysql
?>
archivo que recibe y genera un form
formularioPrueba.php
Código:
<style type="text/css">
<!--
body,td,th {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #666666;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<body>
<?php //by NauJFracT juanfranciscot@gmail.com
require("../clases/classForm.php");
$miconexion = new DB_mysql;
$miconexion->conectar("cursos_notas","localhost","root","");
$miconexion->consultas("SELECT * FROM `usuarios`");
$miconexion->verconsulta("actualizarCampos.php","usuarios");
?>
</body>
archivo que nos recibira todas las consultas y actualizará los campos:
actualizaCampos.php
Código:
<?php require_once("conexion.php");
//by NauJFracT juanfranciscot@gmail.com
function recibeForm(){
$baseDeDatos=$_POST['baseDatos'];
$comienzaQ="UPDATE `".$baseDeDatos."` SET ";
for($i=0;$i<=count($_POST[$_POST['elCampo'][0]])-1;$i++){$consulta="";
$where="";
for($i2=0;$i2<=count($_POST['elCampo']);$i2++){
$coma=($i2==count($_POST['elCampo'])-1 )? "" : ",";
$AND=($i2==count($_POST['elCampo'])-1 )? "" : " AND ";
if($_POST['elCampo'][$i2]!=''){
$consulta.="`".$_POST['elCampo'][$i2]."`='".$_POST[$_POST['elCampo'][$i2]][$i]."'".$coma;
$where.=" `".$_POST['elCampo'][$i2]."`='".$_POST[$_POST['elCampo'][$i2].'2'][$i]."'".$AND;
//echo $_POST['elCampo'][$i2]."--------->".$_POST[$_POST['elCampo'][$i2]][$i];
}
//$_POST[$_POST['elCampo'][$i2]][$i2];
}//echo $comienzaQ.$consulta." WHERE ".$where." Limit 1<br>\n";
$consulta=mysql_query($comienzaQ.$consulta." WHERE ".$where." Limit 1")or die(mysql_error());
//echo "<br>";
$inc++;
}
}
recibeForm();
?>
<p>Se han actualizado correctamente los campos! </p>
Ojalá les sirva tanto como a mi