Clase para actualizar campos recibidos de mysql

Iniciado por [.:: NauJFracT ::.], 15 Diciembre 2006, 08:20 AM

0 Miembros y 1 Visitante están viendo este tema.

[.:: NauJFracT ::.]

Bueno, como yo estaba cansado de hacer tablitas y ponerles nombres, text inputs etc, he creado esta clase para que, con solo enviarle una consulta, nos devuelta todo el formato listo para actualizar (es la versión 1.0 xD) (la clase no es mia totalmente, no recuerdo de donde la tomé, pero ha sido modificada un 80% de la original... De resto todo es mio  :P)

classForm.php
<?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->Errnomysql_errno();
$this->Errormysql_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
<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
<?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'])-)? "" ",";
$AND=($i2==count($_POST['elCampo'])-)? "" " 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 :D

De vuelta...

Luisango

No esta mal!! (.. es una kk (jajaj es broma))
Esta muy bien pero seria muy lioso no crees?
Even better...