MUSICONICA
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Clase para actualizar campos recibidos de mysql  (Leído 741 veces)
0 Usuarios y 1 Visitante están viendo este tema.
NauJFracT
The system engineer
Extranjero
*
Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
« en: 15 de Diciembre de 2006, 02:24:35 »

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)

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->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
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'])-)? "" ",";
$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 Cheesy
En línea




Mao
php rulz
Administrador
Vago degenerado
*
Desconectado Desconectado

Mensajes: 553



Ver Perfil WWW
« Respuesta #1 en: 16 de Diciembre de 2006, 06:20:15 »

como recomendacion para los admins agrandar la fuente en los textos citados y en la etiqueta codigo..Wink

con respecto al codigo: algo muy curioso pero no deja de ser algo basico

/delete
En línea

NauJFracT
The system engineer
Extranjero
*
Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
« Respuesta #2 en: 18 de Diciembre de 2006, 06:21:34 »

Si sabe tanto, por que no colabora? o lo que sabe es criticar no más?
En línea




flacman
Administrador
Vago degenerado
*
Desconectado Desconectado

Mensajes: 2.907


Trabajar, trabajar y trabajar! . Uribe


Ver Perfil WWW
« Respuesta #3 en: 18 de Diciembre de 2006, 07:54:03 »

uy parce me acabo de sacar una espinita q tenia hace mucho tiempo. gracias nauJFracT
En línea

Posted by
Mao
php rulz
Administrador
Vago degenerado
*
Desconectado Desconectado

Mensajes: 553



Ver Perfil WWW
« Respuesta #4 en: 23 de Diciembre de 2006, 06:19:20 »

Si sabe tanto, por que no colabora? o lo que sabe es criticar no más?

como incluir un archivo con include.. Grin

Código:
<?
//como incluir un archivo con include..XD
$user['name'] = 'NauJFracT';
include('genio_de_' . $user['name'] . '.php');//incluyo la clase genio_de_NauJFracT.php para incluir en el arrar $user el genio de NauJFracT XD
echo 'Hola' . $user;
if($user['genio'] == 'Molesto'){
echo 'Solo fue mi opinion, para esoe s un foro..:S.';
}else{
echo 'colaborar algo como que?';
}
echo '/delete';
?>

 (sarcasmo) Grin

/delete
En línea

NauJFracT
The system engineer
Extranjero
*
Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
« Respuesta #5 en: 02 de Enero de 2007, 01:29:18 »

ur crazy man  Cheesy
En línea




Mao
php rulz
Administrador
Vago degenerado
*
Desconectado Desconectado

Mensajes: 553



Ver Perfil WWW
« Respuesta #6 en: 02 de Enero de 2007, 10:00:10 »

no entiendo lo que dices... vuelve a ejecutar mi codigo..XD

/delete
En línea

Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Modify by RPM.
Página creada en 0.106 segundos con 21 queries.