Weblogs Código

RecorteX

» mysql
73 usuarios y 243 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta mysql

RSS
Recortes: 13

Etiquetas relacionadas:
php
hosts
valor-maximo
elimina-ficheros
imagen-flash
valor-minimo
existe-registro
importar
clases
exportar
linux
cuenta-registros
genera-select
database

Clase para manejar conexiones mysql en localhost o servidor externo

Una clase sencilla para poder manejar la conexion a una BD MySQL asi como la ejecucion de Querys, uhmmm espero a alguien le sirva y si tiene agregados a la misma, bienvenidos !!!!

 
 
//clase Conxeion
class ManejaBD
{	
 
function Configurar($tipo="local")
{	if($tipo=="local")
	{	$parameters=array("localhost","root","mipwd","mibase");
	}else
	{	$parameters=array("http://www.mihost.com","miusuario","micontraseña","mibase");
	}
	return $parameters;
}
	
function ejecutarSQL($sql,$tipo="local")
		{	$p=array();
			$p=$this->Configurar($tipo);
			$host=$p[0]; $usr=$p[1]; $pwd=$p[2]; $db=$p[3];
			$cn=mysql_connect($host,$usr,$pwd) or die(mysql_error());
			mysql_select_db($db);
			$rs=mysql_query($sql) or die(mysql_error());
		}	
			
	function getSQL($sql,$tipo="local")
		{	$p=array();
			$p=$this->Configurar($tipo);
			$host=$p[0]; $usr=$p[1]; $pwd=$p[2]; $db=$p[3];
			$cn=mysql_connect($host,$usr,$pwd) or die(mysql_error());
			mysql_select_db($db);			
			$rs=mysql_query($sql) or die(mysql_error());
			return $rs;
		}		
		
};
 

Para "descargarte" una bbdd mysql a tu maquina local

A veces interesaría, bien para hacer pruebas reales, o bien para hacer BackUp, descargarte la bbdd de la web que tienes en un servidor a tu máquina local.

Pues bien, cómodamente y con solo dos líneas de código:

mysqldump --add-drop-table -u USER -pPASSWORD -h DOMAIN DDBB_NAME >DDBB_NAME.sql
mysql -u USER -pPASSWORD DDBB_NAME<DDBB_NAME.sql
Siempre y cuando, claro está, hayas dado acceso a tu IP al servidor MySQL. Sino tendrás que usar phpMyAdmin, y es más trabajoso.

Search and replace en Mysql usando dumps

Este código hace un dump, usa sed para reemplazar el texto y luego lo vuelve a cargar.

mysqldump --add-drop-table -u dbuser -ppassword database | sed -e 's/textoBuscado/textoReemplazar/g' | /usr/bin/mysql -u localdbuser -plocaldbpassword database

Paginar resultados con PHP

Crearemos una función en PHP para paginar resultados de una consulta MySQL

Función:
 
<?php
function PAGINAR($_max,$_db,$_uri,$_sep,$_class) {
  // $_max obtiene el numero de filas a mostrar en cada pagina (default: 20)
  // $_db contiene la consulta SQL que genera el paginador (default: error)
  // $_uri contiene la URL de la pagina para propagarla (default: automatico)
  // $_sep contiene el/los caracter/es que separan cada numero de pagina, por default son espacios en blanco (opcional)
  // $_class contiene la clase personalizada para darle formato a los vinculos (opcional)
  if (empty($_max)) { $_max = 20; } else { $_max = $_max; }
  if (empty($_sep)) { $_sep = '&nbsp;&nbsp; '; } else { $_sep = $_sep; }
  if (empty($_class)) { $_class = 'paginator'; } else { $_class = $_class; }
  if (empty($_GET['p'])) { $_pag = 1; } else { $_pag = $_GET['p']; }
  if (empty($_db)) { echo 'Error critico. No se ha seteado la variable $_db para realizar la consulta SQL'; exit; } else { $_db = $_db; }
  $_query = @mysql_query($_db); $_total = @mysql_num_rows($_query); $_total = ceil($_total/$_max);
  if (!$_uri) { $_uri = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; } else { $_uri = $_uri; }
  if ($_total >= 2) {
    for ($_i = 1; $_i <= $_total ;$_i++) {
      if ($_pag) {
        if (($_i == $_pag) || (!$_GET[p] && $_i == 1)) { echo '<span class="'.$_class.'">['.$_i.']</span>'.$_sep }
        else { echo '<a href="'.$_uri.'&amp;p='.$_i.'" class="'.$_class.'"><span class="'.$_class.'">'.$_i.'</a>'.$_sep; }
      }
    }
    mysql_free_result($_query);
  }
}
?>
 
Modo de uso (explicado linea a linea):
 
<?php
// indicamos el valor maximo
$_paginador[max] = 20;
 
// obtenemos el valor minimo actual
if (empty($_GET['p']) || $_GET['p'] == 1) { $_paginador[min] = 0; } else { $_paginador[min] = ($_GET['p']-1) * $_paginador[max]; }
 
// realizamos la consulta
$_sql = mysql_query("SELECT * FROM `nombre_de_tabla` DESC LIMIT $_paginador[min],$_paginador[max]");
while ($_row = mysql_fetch_assoc($_sql)) {
  echo $_row['nombre_de_campo'];
}
 
// URL actual
$_paginador['url'] = 'index.php?mod=fotos';
 
// Consulta sin LIMIT para contar los registros totales.
$_paginador['db'] = 'SELECT * FROM `nombre_de_tabla`';
 
// indicamos el separador (opcional)
$_paginador['sep'] = '&nbsp;&nbsp;';
 
// indicamos la clase CSS (opcional)
$_paginador['class'] = 'blue';
 
// llamamos al paginador
PAGINAR($_paginador[max],$_paginador['db'],$_paginador['url'],$_paginador['sep'],$_paginador['class']);
 
?>
 

Migrar una base de datos MySQL de un host a otro


mysqldump -h oldhost -u oldusername -poldpassword olddbname | mysql -h newhost -u newusername -pnewpassword newdbname

Escribe el código HTML para una imágen o un flash

Según la extensión del fichero, escribe el HTML correspondiente a un tag "img" o a los tags "object" y "embed" para un fichero Flash.
 
function f_ImageFlash($file, $alt = "", $w = 0, $h = 0, $id = "src") {
	if(substr($file, -3)=="swf") {
		echo "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0\" width=\"".$w."\" height=\"".$h."\" VIEWASTEXT><param name=\"menu\" value=\"false\"><param name=\"movie\" value=\"".$file."\" /><param name=\"quality\" value=\"high\" /><embed src=\"".$file."\" menu=\"false\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"".$w."\" height=\"".$h."\"></embed></object>";
	} else {
		echo "<img id=\"".$id."\" src=\"".$file."\" alt=\"\" />";
	}
}
 

Elimina ficheros referenciados por conjunto de registros

Elimina ficheros en una ruta obteniendo sus nombres de los registros de una tabla. Útil para borrar ficheros referenciados por un registro antes de borrar el registro.

$dbLink es la conexión a la base de datos MySQL
$sFields son los campos separados por comas.
 
function db_deleteFiles($sPath, $sFields, $sTable, $sWhere) {
	global $dbLink;
	$query  = "SELECT ".$sFields." FROM ".$sTable." WHERE ".$sWhere;
	$result = mysql_query($query, $dbLink);
	while($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
		$aFields = split(",", $sFields);
		while(list($a, $b)=each($aFields)) {
			if($line[$b]!="") unlink($sPath.$line[$b]);
		}
	}
	mysql_free_result($result);
}
 

Saber si existe un registro que cumpla unas condiciones

Devuelve un boolean indicando si existe un campo con un valor en concreto dentro de un conjunto de registros.

$dbLink es la conexión a la base de datos MySQL
 
function db_existRecord($sField, $sValue, $sTable, $sWhere) {
	global $dbLink;
	$query  = "SELECT count(*) as nCount FROM ".$sTable;
	if($sWhere!="") {
		$query .= " WHERE ".$sWhere." AND ".$sField."='".$sValue."'";
	} else {
		$query .= " WHERE ".$sField."='".$sValue."'";
	}
	$result = mysql_query($query, $dbLink);
	$line = mysql_fetch_array($result, MYSQL_ASSOC);
	$retval = ($line["nCount"]>0 ? TRUE : FALSE);
	mysql_free_result($result);
	return $retval;
}
 

Elementos option para un select desde MySQL

Genera las etiquetas "option" para el interior de un "select" obteniendo los valores de una consulta a base de datos.

$dbLink es la conexión a la base de datos MySQL
 
function db_getSelect($sValue, $sText, $sTable, $sWhere = "", $sSelected) {
	global $dbLink;
	if($sValue!=$sText) {
		$query  = "SELECT ".$sValue.", ".$sText." FROM ".$sTable;
	} else {
		$query  = "SELECT ".$sValue." FROM ".$sTable;
	}
	if($sWhere!="") $query .= " WHERE ".$sWhere;
	$result = mysql_query($query, $dbLink);
	while($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
		echo "<option value=\"".$line[$sValue]."\"";
		if($sSelected==$line[$sValue]) { echo "selected=\"true\""; }
		echo ">";
		echo $line[$sText];
		echo "</option>";
	}
	mysql_free_result($result);
}
 

Número de registros que cumplen una condición.

Obtiene el número de registros de una tabla o consulta, con opción a filtrar el conjunto.

$dbLink es la conexión a la base de datos MySQL
 
function db_getCount($sTable, $sWhere = "") {
	global $dbLink;
	$query  = "SELECT Count(*) as nCount FROM ".$sTable;
	if($sWhere!="") $query .= " WHERE ".$sWhere;
	$result = mysql_query($query, $dbLink);
	$line   = mysql_fetch_array($result, MYSQL_ASSOC);
	$nCount = $line["nCount"];
	mysql_free_result($result);
	return $nCount;
}
 
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin