elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Clase para actualizar campos recibidos de mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Clase para actualizar campos recibidos de mysql  (Leído 1,489 veces)
[.:: NauJFracT ::.]


Desconectado Desconectado

Mensajes: 458


[ .:: NauJFracT ::.]


Ver Perfil
Clase para actualizar campos recibidos de mysql
« en: 15 Diciembre 2006, 08:20 am »

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
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 :D


En línea

De vuelta...
Luisango


Desconectado Desconectado

Mensajes: 313



Ver Perfil WWW
Re: Clase para actualizar campos recibidos de mysql
« Respuesta #1 en: 15 Diciembre 2006, 15:37 pm »

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


En línea

Even better...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
campos en tabla mysql
Bases de Datos
djdm52 4 4,727 Último mensaje 16 Noviembre 2011, 04:22 am
por djdm52
mysql relacionar campos de distintas tablas
Bases de Datos
Pirat3net 2 4,227 Último mensaje 8 Octubre 2012, 16:15 pm
por Pirat3net
[Ayuda] Aplicación para ver mails recibidos
Java
satu 3 2,485 Último mensaje 7 Junio 2013, 18:20 pm
por RyogiShiki
Modificar campos en Mysql Linux server
GNU/Linux
WIитX 0 1,619 Último mensaje 19 Noviembre 2015, 01:17 am
por WIитX
Actualizar campos xml en bash
Scripting
yodoal 0 1,253 Último mensaje 30 Septiembre 2018, 21:28 pm
por yodoal
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines