Clase en PHP para uso de MYSQL

17 07 2008

Bueno para iniciar voy a publicar una pequeña clase con la que he venido trabajando de unos días a la fecha, en caso de que la gusten tomar no hay ningún problema, en caso de hacer alguna observación sería muy bien recibida, entonces aquí les dejo la clase y un ejemplo de su uso..

Primero el código de la clase :

<?
/**
* @author L.I. Juan José Esparza barajas
* @date Lunes, 18 de junio de 2008
* @copyright 2008
* @Version 1.0
* @License Freeware
*/
Class MySql_Class{
// function conection
var $user= "root";
var $password= "root";
var $server= "localhost";
var $db="paises";
var $erroconec="Error conectando a la base de datos";
var $errodatabase="Error conectando a la base de datos";
// function query
var $errorempty="La consulta se encuentra vacia";
var $errorquery="<b>Error al ejecutar la consulta:</b>";
var $result;
//function query -pagination
var $itemspage = 4;
var $label_next = "Siguiente";
var $label_previous= "Anterior";
var $amountitems=0;
var $home = 0;
var $end =0;
var $page=1;
var $numPages=0;
var $labelpagination="Páginas";
var $divclass = "pagination";
var $hrefclass= "a_paginado";
var $hreftext = "Texto";
// For connection to the database
function conection(){
if (!($link=mysql_connect($this->server,$this->user,$this->password))){
die($this->$erroconec);
}
if (!$link=mysql_select_db($this->db,$link)){
die($this->$errodatabase);
}
return($link);
}
//Run SQL
function query($sql,$pagination=''){
if(empty($sql)){
die($this->errorempty);
}
$tipo = explode(" ",$sql);
if(strtoupper($tipo[0])=="SELECT"){
$select = true;
}
if(strtoupper($tipo[0])=="INSERT"){
$insert = true;
}
if($pagination=='P'){ // Pagination
if($_REQUEST["page"]){
$this->page=$_REQUEST["page"];
}
$this->result = mysql_query($sql);
$this->amountitems = mysql_num_rows($this->result);
if(empty($this->page)){
$this->page=1;
$this->home=1;
$this->end=$this->itemspage;
}
$limitInf=(($this->page-1) * $this->itemspage);
$this->numPages=ceil($this->amountitems/$this->itemspage);
if(empty($this->page)){
$this->page=1;
$this->home=1;
$this->end= $this->itemspage;
}else{
$seccionActual=intval(($this->page-1)/$this->itemspage);
$this->home=($seccionActual*$this->itemspage)+1;
if($this->page< $this->numPages){
$this->end=$this->home + $this->itemspage-1;
}else{
$this->end=$this->itemspage;
}
if ($this->end>$this->numPages){
$this->end=$this->numPages;
}
}
$sql = $sql." LIMIT ".$limitInf.",".$this->itemspage;
}
$this->result = mysql_query($sql);
if($this->result){
$return["success"] = true;
if($select){
while($rs = mysql_fetch_array($this->result)){
$return["data"][]=$rs;
}
$amount = mysql_num_rows($this->result);
if($amount >0){
$return["amount"]=$amount;
}else{
$return["amount"] = 0;
}
}
if($insert){
$return["insert_id"]=mysql_insert_id();
}
}else{
die($this->errorquery."<br><b>".$sql."</b><br>".mysql_error());
}
$return["SQL"]=$sql;
return($return);
}
// To clean the problem quotes
function sql_quotes($value){
if(get_magic_quotes_gpc())
$value = stripslashes($value);
//check if this function exists
if(function_exists("mysql_real_escape_string"))
$value = mysql_real_escape_string($value);
else//for PHP version < 4.3.0 use addslashes
$value = addslashes( $value );
return $value;
}
// Count items SQL
function countitems($sql){
$result = mysql_query($sql);
if($result){
$cant = mysql_num_rows($result);
$salida=$cant;
}else{
die($this->errorquery."<br><b>".$sql."</b><br>".mysql_error());
}
return($salida);
}
// show pagination
function showpagination($morevar=''){
if($this->amountitems>0){
echo '<div align="right" class="'.$this->divclass.'">';
echo '<b>'.$this->labelpagination.': </b>';
if($this->page>1){
echo '<a class="'.$this->hrefclass.'" href="'.$_SERVER['PHP_SELF']."?page=".($this->page-1).'&'.$morevar.'"> '.$this->label_previous.'</a>';
}
for($i=$this->home;$i<=$this->end;$i++){
if($i==$this->page){
echo ' <span class="'.$this->hreftext.'">'.$i.'</spaa>';
}else{
echo ' <a class="'.$this->hrefclass.'" href="'.$_SERVER['PHP_SELF']."?page=".$i.'&'.$morevar.'">'.$i.'</a>';
}
}
if($this->page<$this->numPages){
echo '<a class="'.$this->hrefclass.'" href="'.$_SERVER['PHP_SELF']."?page=".($this->page+1).'&'.$morevar.'"> '.$this->label_next.'</a>';
}
echo "</div>";
}
}
}
?>

y acá un ejemplo de su uso:

<?php
//Incluyo la libreria mysql_inc.php
include("mysql_inc.php");
$mysql = new MySql_class;
$mysql->conection();
// Ejemplos de su uso
echo "<br>--------Listado de registros con paginado--------<br>";
$mysql->label_next="Next";
$mysql->label_previous="Previous";
$consulta= $mysql->query("select value,id FROM countries Order by id","P");
foreach($consulta["data"] as $rs)
echo $rs["id"]."-->".$rs["value"]."<br>";
echo $mysql->showpagination();
// Cuenta la cantidad de registro que te devuelve la consulta
echo "Total de registros -> ".$mysql->countitems("select value FROM countries");
//Lista los ultimos 10 de la tabla paises
echo "<br>--------Listado los ultimos 10--------<br>";
$consulta= $mysql->query("select value,id FROM countries Order by id DESC limit 0,9 ");
foreach($consulta["data"] as $rs){
echo $rs["id"]."-->".$rs["value"]."<br>";
}
// Por cuestiones de tiempo solo inserto sobe un campo de la base de datos..pero tambien puede hacerlo sin especifcar los campos
echo "<br>--------Insertando--------<br>";
$datos= $mysql->sql_quotes('País de INSERTADO"');
$rs = $consulta= $mysql->query("INSERT INTO countries (value) values ('$datos');");
echo "Consulta insertada, el id insertado es ->".$rs["insert_id"];
$idinsertado = $rs["insert_id"];
echo "<br>".$rs["SQL"]."<br>";
// Listando pero con el nuevo registro ya agregando
echo "<br>--------Listado los ultimos 10 con el registro insertado--------<br>";
$consulta= $mysql->query("select value,id FROM countries Order by id DESC limit 0,9 ");
foreach($consulta["data"] as $rs)
echo $rs["id"]."-->".$rs["value"]."<br>";
echo "<br>--------Modificando el registro insertado--------<br>";
$datos= $mysql->sql_quotes('País de MODIFICADO"');
$rs = $consulta= $mysql->query("UPDATE countries SET value = '$datos' WHERE id=$idinsertado");
if($rs["success"]){
echo "Registro modificado"."<br>";
echo $rs["SQL"]."<br>";
}else{
echo "no se modifico";
}
// Listando pero con el nuevo registro ya agregando
echo "<br>--------Listado los ultimos 10 con el registro modificado--------<br>";
$consulta= $mysql->query("select value,id FROM countries Order by id DESC limit 0,9 ");
foreach($consulta["data"] as $rs)
echo $rs["id"]."-->".$rs["value"]."<br>";
echo "<br>--------Elimindo el registro modificado--------<br>";
$rs = $consulta= $mysql->query("DELETE FROM countries WHERE id=$idinsertado");
if($rs["success"]){
echo "Registro eliminado.."."<br>";
echo $rs["SQL"]."<br>";
}else{
echo "No se borro";
}
echo "<br>--------Listado los ultimos 10 sin el registro de prueba--------<br>";
$consulta= $mysql->query("select value,id FROM countries Order by id DESC limit 0,9 ");
foreach($consulta["data"] as $rs)
echo $rs["id"]."-->".$rs["value"]."<br>";
?>

Algunas de funciones las vi en otro sitio y decidi ponerlas por que me parecieron muy buenas, por ejemplo la un sitio donde vi una función fue en http://vyk1.spaces.live.com/blog/cns!EBE3A761F939F926!1097.entry

Descargar archivos de ejemplo

Anuncios

Acciones

Information

6 responses

29 07 2008
Combos dependientes utilizando PHP, Mysql y jquery( Javascript) « Code.jjeb™

[…] utilizando una pequeña clase para uso de mysql que hice hace algunos días y que pueden encontrar aquí, aunque en los archivos de descarga pondré los 2 utilizando la clase y sin […]

29 07 2008
Combos dependientes utilizando PHP, Mysql y jquery( Javascript) - Recursos Del Web

[…] utilizando una pequeña clase para uso de mysql que hice hace algunos días y que pueden encontrar aquí, aunque en los archivos de descarga pondré los 2 utilizando la clase y sin […]

19 01 2009
Diseño web

ensayando ya esta class 😀

3 12 2009
Ruben

muy buena clase, lo acabo de probar y funciona muy bien. Es muy flexible.. saludos

11 09 2010
Eunice

Saludos mira sabes q me parece muy interesante tu ejemplo pero no logro ejecuitarlo ya q falta el archivo jquery.js puedes facilitarlo…? gracias…!

16 03 2012
andres salazar

me da un error cambie mi base de datos y me da este error en la primera linea y no me llena los listbox:

user=”root”; $mysql->password=””; $mysql->db=”sadev”; $mysql->server=”localhost”; $mysql->conection(); ?>

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: