Archive

Archivo para la categoría de ‘Programación’

Clase PHP para Conectar a MySQL (mas que facil es simple)

December 17th, 2009

Hola a todos, tanto tiempo que no publicaba algo hoy les quiero dejar una clase que acabo de hacer es muy simple y facil de usar, sirve para:

  • Conectar a una base de datos
  • Si hubo un error podemos saberlo mediante un metodo
  • Contar resultados ejecutados
  • Contar resultados de una tabla con una condición o ninguna
  • Agregar datos mediante un simple metodo que se le pasa un arreglo
  • Borrar datos pasandole como referencia la tabla, una condición (puede ser nula) y el limite de resultados a borrar (Si es 0 borra todo)
  • Editar datos: Edita X datos de cierta tabla, se le puede pasar la condición a borrar y el limite.
  • Obtener un arreglo de datos de una tabla.
  • Obtener un arreglo de cualquier dato mediante query de SQL

El código de la clase es el siguiente pero abajo les dejo un link para bajarlo directamente:

/*

* mysql_db: Constructor recibe como parametros

* *El host de la base de datos

* *El user de la base de datos

* *La password de la base de datos

* *La base de datos a conectar

*

* Metodos:

* open() conecta con la base de datos y devuelve falso si no

* get_error() obtiene el error de la coneccion

* query() ejecuta cualquier query de base de datos y luego se deben procesar

* last_id() Obtiene el ultimo id que fue procesado por la clase

* num_rows() obtiene la cantidad de resultados que fueron procesadas por la clase

* count($tabla, $cond = '') Cuenta todos los resultados de una tabla y con x Condicion (puede ser nulo)

* get_array($tabla, $datos = '*', $cond = '') Obtiene un arreglo de datos (se pueden elegir) de una tabla y con x Condicion

** get_array_query($query) Obtiene un arreglo de cualquier consulta SQL

* delete($tabla , $cond = '', $limit = '1') Elimina x Datos (Por defecto 1) de una tabla con X condicion (puede ser nulo)

add($tabla, &$datos, $nomb_id = 'id'){ //agrega datos en una tabla recibiendo un arreglo de datos (las keys tienen que tener el mismo nombre que los campos de la tabla

Ademas se le tiene que pasar el nombre del campo del ID

*

* edit($tabla, &$datos, $cond, $limit = 1) Edita x Datos si se establece la condicion

* recibe un arreglo de datos

* un ejemplo de cond es 'id = 1' edita el arreglo de datos donde el id = 1

*/

define('DB_NO_LINK', 0);

define('DB_NO_DB', 1);

define('DB_NO_Q_RESULT', 2);

define('DB_NO_Q_ROWS', 3);

class mysql_db{

var $errtype;

var $errstr;

var $host;

var $user;

var $pass;

var $link;

var $database;

var $result;

function mysql_db($host,$user,$pass,$database){

/* Set error properties to initial values. */

$this->errtype = false;

$this->errstr = ”;

$this->host = $host;

$this->user = $user;

$this->pass = $pass;

$this->database = $database;

$this->result = NULL;

}

function open(){

$this->link = mysql_connect($this->host,$this->user,$this->pass);

if(!$this->link){

$this->errtype = DB_NO_LINK;

$this->errstr = ‘Connection failed for host: ‘ . $this->host;

return false;

}

if(!mysql_select_db($this->database, $this->link)){

$this->errtype = DB_NO_DB;

$this->errstr = mysql_error($this->link);

return false;

}

return true;

}

function query($sql){ // INICIO METODO

/* Determinamos que tipo de consulta es */

if(eregi(“^delete”, $sql) || eregi(“^insert”, $sql) || eregi(“^update”, $sql)){

$qtype = ‘a’;

}

elseif(eregi(“^select”, $sql)){

$qtype = ‘n’;

}

/* Sabemos cuando la consulta falla o cuando no*/

$result = mysql_query($sql, $this->link);

if(!$result){

$this->errtype = DB_NO_Q_RESULT;

$this->errstr = mysql_error($this->link);

return false;

}

/* Checkeamos por filas afectadas */

if($qtype == ‘n’){

if(mysql_num_rows($result) == 0){

$this->errtype = DB_NO_Q_ROWS;

$this->errstr = ‘NO se seleccionaron las filas’;

return false;

}

}

elseif($qtype == ‘a’){

if(mysql_affected_rows($this->link) <= 0){

$this->errtype = DB_NO_Q_ROWS;

$this->errstr = ‘No se afectaron las filas.’;

return false;

}

}

$this->result = $result;

return $this->result;

} // FIN METODO query

function last_id(){

$id = mysql_insert_id($this->link);

return $id;

}

function num_rows(){

$num_rows = mysql_num_rows($this->result);

return $num_rows;

}

function count($tabla, $cond = ”){

if ($cond) {

$cond = ‘WHERE’.’ ‘.$cond;

}

$this->query(“SELECT COUNT( * ) AS count FROM $tabla $cond ” );

return mysql_result( $this->result, 0 );

}

/*Get Array Obtiene un arreglo de datos desde una tabla, los datos que quieras

* y la condicion que quieras

**/

function get_array($tabla, $datos = ‘*’, $cond = ”) {

if ($cond) {

$cond = ‘WHERE’.’ ‘.$cond;

}

$this->query(“SELECT $datos FROM $tabla $cond”);

$rows = array();

while($row = mysql_fetch_assoc($this->result)){

$rows[] = $row;

}

return $rows;

} //Fin Get_Array

function get_array_query($query) { // OBTIENE UN ARREGLO CON CUALQUIER CONSULTA

$this->query($query);

$rows = array();

while($row = mysql_fetch_assoc($this->result)){

$rows[] = $row;

}

return $rows;

} //Fin Get_Array

function delete($tabla , $cond = ”, $limit = ‘1′){ // Metodo Delete

if ($limit == 0) $limit = ”;

else $limit = “LIMIT $limit”;

if ($cond) {

$cond = ‘WHERE’.’ ‘.$cond;

}

$sql = “DELETE FROM $tabla $cond $limit”;

return $this->query($sql);

} // Fin metodo delete

function add($tabla, &$datos, $nomb_id = ‘id’){ //agrega datos en una tabla

$donde = “`$nomb_id` “;

$valor = ‘NULL’;

foreach ($datos as $key => $value) {

$donde .= “, `$key` “;

$valor .= “, ‘$value’”;

}

return $this->query(“INSERT INTO $tabla ($donde) VALUES ($valor);”);

}// Fin agregar

function edit($tabla, &$datos, $cond, $limit = 1){

foreach ($datos as $key => $value) {

if(!empty($value))

$donde .= “`$key` = ‘$value’ ,”;

}

if ($limit == 0) $limit = ”;

else $limit = “LIMIT $limit”;

$donde = substr($donde, 0, strlen($donde)-1);

$sql = “UPDATE `$tabla` SET $donde WHERE $cond $limit;”;

return $this->query($sql);

}

function close(){

mysql_close($this->link);

}

function get_error() {

return $this->errstr;

}

}

?>

Más adelante les dejo un par de ejemplos.

Pueden bajarla desde aqui: http://geoks.com.ar/blog/wp-content/uploads/class_db.php.zip

German PHP , , , ,

Tema para NetBeans 6.7 – DarkyNerd

July 23rd, 2009

Hola a todos, les queria dejar este tema que modifique para NetBeans, tiene la caracteristica de ser un fondo negro con letras suaves asi no te hace mal a la vista cuando estas mucho tiempo en frente del PC mirando el monitor :D

Les dejo un screenshot.

Screenshot NetBeans 6.7

NetBeans 6.7 Screenshot

Para bajarlo tienen que hacer click aqui

Espero que les haya servido, gracias a los lectores.

Saludos

German Programación , , , ,

Simple Server y Proxy

April 20th, 2009

Python LogoLa otra vez navegando me encontre con un simple código en Python que permite compartir archivos via web, esta muy bueno cuando no tenes ganas de configurar el samba o bien si queres que tu amigo de China vea lo que tenes en dicho directorio.

Lo que hace es montarte un mini servidor en la carpeta que lo pongas y configurandole el puerto de ejecución.

A continuación les paso un par de ejemplos

Leer más…

German Programación, Python , ,

Script para generar passwords

April 19th, 2009

Php LogoEn este artículo voy a publicar como se hace un mini generador de passwords en php, es fácil de entender y lo bueno es que la version básica del script ocupa solo 5 lineas de código, la otra version ocupa un par de lineas más pero te va a permitir poder agregar caracteres con mayúsculas….

Leer más…

German PHP, Programación , , , ,