Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

About this user

Ricardo m. García

« Newer Snippets
Older Snippets »
Showing 1-9 of 9 total  RSS 

Claves Foraneas / Foreign key

Integridad de datos mediantes claves Foraneas, script que genera las SQL necesarios para garantizar la integridad entre tablas. Poco a poco vamos relacionando parejas de padre e hijo y podemos realizar un arbol de claves foraneas, cuando si borramos un registro del padre, borra y actualiza a los hijos en cascada, si no me explico bien decirme en los comentarios.

<?php
require_once("cabezera/funciones.php");
conectar_mysql();
require_once("cabezera/scripts/constantes.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Untitled Document</title>
</head>

<body>
<?php
$ejecutar = isset($_GET['ejecutar']) && $_GET['ejecutar']=='si';
$tabla_padre = "album";
$tabla_hijo = "fotos";
$campo_padre = "idAlbum";
$campo_hijo = "idAlbum";

$sinIntegridad = 0;

$sql="select * from ".$tabla_hijo;
$resultado = mysql_query($sql);
while($fila = mysql_fetch_array($resultado))
{
	$sql2 = "select * from ".$tabla_padre." where ".$campo_padre." = '".$fila[$campo_hijo]."'";
	//echo $sql2."<br/>";
	$resultado2 = mysql_query($sql2);
	if(mysql_num_rows($resultado2) <= 0)
	{
		$sql3 = "DELETE FROM `".$tabla_hijo."` WHERE `".$campo_hijo."` = '".$fila[$campo_hijo]."' LIMIT 1;";
		if($ejecutar)
		{
			if(mysql_query($sql3)) echo "OK query : ".$sql3."<br />";
			else echo "Error en query : ".$sql3."<br />";
		}
		else
		{
			echo $sql3."<br/>";
		}
		$sinIntegridad++;
	}
}

$sql1="ALTER TABLE `".$tabla_padre."` ADD INDEX ( `".$campo_padre."` ) ";
$sql2="ALTER TABLE `".$tabla_hijo."` ADD INDEX ( `".$campo_hijo."` ) ";
$sql3="ALTER TABLE ".$tabla_hijo." ADD FOREIGN KEY(".$campo_hijo.") REFERENCES ".$tabla_padre." (".$campo_padre.") ON DELETE CASCADE ON UPDATE CASCADE";
if($ejecutar)
{
	if(mysql_query($sql1)) echo "OK query : ".$sql1."<br />";
	else echo "Error en query : ".$sql1."<br />";
	
	if(mysql_query($sql2)) echo "OK query : ".$sql2."<br />";
	else echo "Error en query : ".$sql2."<br />";
	
	if(mysql_query($sql3)) echo "OK query : ".$sql3."<br />";
	else echo "Error en query : ".$sql3."<br />";
}
else
{
	echo $sql1."<br/>";
	echo $sql2."<br/>";
	echo $sql3."<br/>";
}

echo "<br/>".$sinIntegridad." filas sin integridad.<br/>";
?>
<form id="form1" name="form1" method="get" action="">
  <label>
  <input name="ejecutar" type="hidden" id="ejecutar" value="si" />
  <input name="Button" type="button" onclick="location.href=location.href" value="Recargar sin ejecutar nada" />
  <input type="submit" name="button" id="button" value="Ejecutar SQL!" />
  </label>
</form>
<?php
/*
ALTER TABLE fotos_nueva_version ADD FOREIGN KEY(idUsuario) REFERENCES usuarios_portalcocinas (idUsuario) ON DELETE CASCADE ON UPDATE CASCADE

ALTER TABLE relacion_usuario_localidad ADD FOREIGN KEY(idUsuario) REFERENCES usuarios_portalcocinas (idUsuario) ON DELETE CASCADE ON UPDATE CASCADE


ALTER TABLE relacion_usuario_actividad ADD FOREIGN KEY(idUsuario) REFERENCES usuarios_portalcocinas (idUsuario) ON DELETE CASCADE ON UPDATE CASCADE


ALTER TABLE fotos_nueva_version DROP FOREIGN KEY idUsuario_FK;

SHOW CREATE TABLE fotos_nueva_version;
*/
?>
</body>
</html>

PHP : Hace Script / Ago Script

Hace Script / Ago Script
if we call with a timestamp of a month ago, he print "Hace 1 mes". If you want this in english should traduction. Sorry my english

function hace($timestamp)
{
$diferencia = time() - $timestamp;
	if($diferencia > 0)
	{
$periodo = array("segundo", "minuto", "hora", "dia", "semana", "mes" , "a&ntilde;o", "decada");
$longitud = array(           "60"    , "60"  , "24" , "7"     , "4.35", "12"       , "10"    );
	
	for($j = 0; $diferencia >= $longitud[$j]; $j++)
	$diferencia /= $longitud[$j];
	
	$diferencia = round($diferencia);
	
	if($diferencia != 1)
	{
		if($periodo[$j] == "mes")
		$periodo[$j].= "es";
		else
		$periodo[$j].= "s";
	}
	
	return "Hace <b>".$diferencia."</b> ".$periodo[$j];
	}
}

PHP : Ver supervariables / Vars globals

Ver supervariables / Vars globals . (phpinfo style ...)

function versupervariables()
{
	echo "<b>_COOKIE</b><br />";
	foreach($_COOKIE as $clave=>$valor)
	{
	echo $clave." = ".$valor."<br />";
	}
	echo "<b>_ENV</b><br />";
	foreach($_ENV as $clave=>$valor)
	{
	echo $clave." = ".$valor."<br />";
	}
	echo "<b>_FILES</b><br />";
	foreach($_FILES as $clave=>$valor)
	{
	echo $clave." = ".print_r($valor)."<br />";
	}
	echo "<b>_GET</b><br />";
	foreach($_GET as $clave=>$valor)
	{
	echo $clave." = ".$valor."<br />";
	}
	echo "<b>_POST</b><br />";
	foreach($_POST as $clave=>$valor)
	{
	echo $clave." = ".$valor."<br />";
	}
	echo "<b>_REQUEST</b><br />";
	foreach($_REQUEST as $clave=>$valor)
	{
	echo $clave." = ".$valor."<br />";
	}
	echo "<b>_SESSION</b><br />";
	foreach($_SESSION as $clave=>$valor)
	{
	echo $clave." = ".$valor."<br />";
	}
	echo "<b>_SERVER</b><br />";
	foreach($_SERVER as $clave=>$valor)
	{
	echo $clave." = ".$valor."<br />";
	}
}

PHP : Filas al azar / Random Rows

Filas al azar / Random Rows

function dame_unas_filas_al_azar($tabla,$numero_de_filas)
{
$sql="SELECT * FROM ".$tabla." ORDER BY RAND(NOW()) LIMIT ".$numero_de_filas;
$resultado = mysql_query($sql);
	if($resultado)
	{
	return mysql_fetch_array($resultado);
	}
	else
	{
	return false;
	}
}

PHP : Obtener registros por mes

si tienes un campo de tipo time() y necesitas sacar los registros de un determinado mes.

<?php
$mes=2;//febrero
$strquery="SELECT *
FROM `tabla`
WHERE month( from_unixtime( fecha ) ) = '$mes'";
?>

PHP : Parsea HTML inyectado / Parser HTML inject

Parsea HTML Inyectado. Esto es útil cuando nos escriben código HTML o Javascript maligno en un texarea. Para más información www.php.net / Parser HTML inject. This is good when we write HTML code or bad javascript on a textarea. For more info www.php.net (sorry english)
Código fuente / Source code :

function parsearHTMLInjectado($texto)
{
	return nl2br( htmlentities($texto) );	
}

PHP : Comprobar e-mail válido / Check valid e-mail

Comprobar e-mail válido / Check valid e-mail
Código fuente / Source code :

function esEmailValido($email)
{
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", $email ) )
	{
       return true;
    }
	else
	{
       return false;
    }
}

PHP : Conectar con Access / Connect with Access

Conectar con Access / Connect with Access.
Código fuente / Source code :

$pathDB = str_replace("/", "\\", $_SERVER["DOCUMENT_ROOT"]) . "\\directory1\\directory2\\bdd.mdb";

if(!file_exists($pathDB))
{
echo "!!! Base de datos no encontrada ".$pathDB;
exit;
}

$conexion = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".$pathDB, "ADODB.Connection", "", "SQL_CUR_USE_ODBC");
$sql="select * from tabla where 1";
$resultado=odbc_exec($conexion,$sql);
if($resultado)
{
	while($fila=odbc_fetch_array($resultado))
	{
	echo $fila['campo1']."<br />";
	echo $fila['campo2']."<br />";
	}
odbc_close_all();
}

PHP : Exportar CSV a mySQL / Export CSV to mySQL

Cóodigo fuente / Source code :

function exportarCSV_a_mySQL($fileCSV)
{
	$registros=0;

	$ruta=$fileCSV['tmp_name'];

	if(!file_exists($ruta))
	{return false;}

	$tabla=quitar_extension($fileCSV['name']);
	
	$borra_tabla="DROP TABLE `".$tabla."`";
	mysql_query($borra_tabla);
	$f=fopen($ruta,"r");
	if($f)
	{
		echo "<b>Guardando CSV en la BDD :</b><br />";
		$contenido=fread($f,filesize($ruta));
		fclose($f);
		$contenido=ereg_replace("\r\n", "\n" , $contenido); // convertimos windows a unix
		$lineas=explode("\n",$contenido);
		$titulo=explode(";",$lineas[0]);
		$NUM_CAMPOS=count($titulo);
		$sql_generado_para_eliminar="";
		$crear_tabla_campos="";
		for($i=0;$i<$NUM_CAMPOS;$i++)
		{
		$titulo[$i]=ereg_replace("\"", "" , $titulo[$i]); // kitamos comillas
		$sql_generado_para_eliminar.=" AND `".$titulo[$i]."` =''";
		$crear_tabla_campos.="`".$titulo[$i]."` varchar(60) NOT NULL";
			if($i+1!=$NUM_CAMPOS)// si no es el ultimo , ponemos coma
			{
			$crear_tabla_campos.=",";
			}
		}
		$crear_tabla="CREATE TABLE `".$tabla."` (".$crear_tabla_campos.") ENGINE=MyISAM DEFAULT CHARSET=latin1;";
		mysql_query($crear_tabla);
		$linea=1;
		do
		{
			$insertar_titulos="";
			$insertar_campos="";
			$campo=explode(";",$lineas[$linea]);
			for($i=0;$i<$NUM_CAMPOS;$i++)
			{
			$campo[$i]=ereg_replace("\"", "" , $campo[$i]);
			$insertar_titulos.=" `".$titulo[$i]."` ";
			$insertar_campos.=" '".$campo[$i]."' ";
				if($i+1!=$NUM_CAMPOS)// si no es el ultimo , ponemos coma
				{
				$insertar_titulos.=",";
				$insertar_campos.=",";
				}
			}
			$sql="INSERT INTO `".$tabla."` ( ".$insertar_titulos." ) VALUES ( ".$insertar_campos." );";
			if(mysql_query($sql))
			{
			echo ". ";
			$registros++;
			}
			else
			{echo "X ";return false;}
		$linea++;
		}while(next($lineas));

	$sql="DELETE FROM `".$tabla."` WHERE 1".$sql_generado_para_eliminar;mysql_query($sql);
	echo "<br />";
	return $tabla;
	}
	else
	{
	return false;
	}
}

function quitar_extension($archivo)
{
	$extension = strrchr($archivo,".");
	$pos=strpos($archivo,$extension);
	return substr($archivo,0,$pos);
}


Código ejemplo de llamada / Code exmple call :

$tabla = exportarCSV_a_mySQL($_FILES['archivo_csv']);
if($tabla)
{
echo "Export OK in mysql table : ".$tabla;
}
else
{
echo "Error in export ...";
}

« Newer Snippets
Older Snippets »
Showing 1-9 of 9 total  RSS