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-10 of 10 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.

   1  
   2  <?php
   3  require_once("cabezera/funciones.php");
   4  conectar_mysql();
   5  require_once("cabezera/scripts/constantes.php");
   6  ?>
   7  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   8  <html xmlns="http://www.w3.org/1999/xhtml">
   9  <head>
  10  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  11  <title>Untitled Document</title>
  12  </head>
  13  
  14  <body>
  15  <?php
  16  $ejecutar = isset($_GET['ejecutar']) && $_GET['ejecutar']=='si';
  17  $tabla_padre = "album";
  18  $tabla_hijo = "fotos";
  19  $campo_padre = "idAlbum";
  20  $campo_hijo = "idAlbum";
  21  
  22  $sinIntegridad = 0;
  23  
  24  $sql="select * from ".$tabla_hijo;
  25  $resultado = mysql_query($sql);
  26  while($fila = mysql_fetch_array($resultado))
  27  {
  28  	$sql2 = "select * from ".$tabla_padre." where ".$campo_padre." = '".$fila[$campo_hijo]."'";
  29  	//echo $sql2."<br/>";
  30  	$resultado2 = mysql_query($sql2);
  31  	if(mysql_num_rows($resultado2) <= 0)
  32  	{
  33  		$sql3 = "DELETE FROM `".$tabla_hijo."` WHERE `".$campo_hijo."` = '".$fila[$campo_hijo]."' LIMIT 1;";
  34  		if($ejecutar)
  35  		{
  36  			if(mysql_query($sql3)) echo "OK query : ".$sql3."<br />";
  37  			else echo "Error en query : ".$sql3."<br />";
  38  		}
  39  		else
  40  		{
  41  			echo $sql3."<br/>";
  42  		}
  43  		$sinIntegridad++;
  44  	}
  45  }
  46  
  47  $sql1="ALTER TABLE `".$tabla_padre."` ADD INDEX ( `".$campo_padre."` ) ";
  48  $sql2="ALTER TABLE `".$tabla_hijo."` ADD INDEX ( `".$campo_hijo."` ) ";
  49  $sql3="ALTER TABLE ".$tabla_hijo." ADD FOREIGN KEY(".$campo_hijo.") REFERENCES ".$tabla_padre." (".$campo_padre.") ON DELETE CASCADE ON UPDATE CASCADE";
  50  if($ejecutar)
  51  {
  52  	if(mysql_query($sql1)) echo "OK query : ".$sql1."<br />";
  53  	else echo "Error en query : ".$sql1."<br />";
  54  	
  55  	if(mysql_query($sql2)) echo "OK query : ".$sql2."<br />";
  56  	else echo "Error en query : ".$sql2."<br />";
  57  	
  58  	if(mysql_query($sql3)) echo "OK query : ".$sql3."<br />";
  59  	else echo "Error en query : ".$sql3."<br />";
  60  }
  61  else
  62  {
  63  	echo $sql1."<br/>";
  64  	echo $sql2."<br/>";
  65  	echo $sql3."<br/>";
  66  }
  67  
  68  echo "<br/>".$sinIntegridad." filas sin integridad.<br/>";
  69  ?>
  70  <form id="form1" name="form1" method="get" action="">
  71    <label>
  72    <input name="ejecutar" type="hidden" id="ejecutar" value="si" />
  73    <input name="Button" type="button" onclick="location.href=location.href" value="Recargar sin ejecutar nada" />
  74    <input type="submit" name="button" id="button" value="Ejecutar SQL!" />
  75    </label>
  76  </form>
  77  <?php
  78  /*
  79  ALTER TABLE fotos_nueva_version ADD FOREIGN KEY(idUsuario) REFERENCES usuarios_portalcocinas (idUsuario) ON DELETE CASCADE ON UPDATE CASCADE
  80  
  81  ALTER TABLE relacion_usuario_localidad ADD FOREIGN KEY(idUsuario) REFERENCES usuarios_portalcocinas (idUsuario) ON DELETE CASCADE ON UPDATE CASCADE
  82  
  83  
  84  ALTER TABLE relacion_usuario_actividad ADD FOREIGN KEY(idUsuario) REFERENCES usuarios_portalcocinas (idUsuario) ON DELETE CASCADE ON UPDATE CASCADE
  85  
  86  
  87  ALTER TABLE fotos_nueva_version DROP FOREIGN KEY idUsuario_FK;
  88  
  89  SHOW CREATE TABLE fotos_nueva_version;
  90  */
  91  ?>
  92  </body>
  93  </html>
  94  

Joints with PhysX

   1  
   2  class Ragdoll
   3  {
   4  public:
   5     Ragdoll(const NxVec3& pos)
   6     {
   7        NxQuat qRotLeft, qRotRight, qRotAround;
   8        qRotLeft.fromAngleAxis(90, NxVec3(0,0,1));
   9        qRotRight.fromAngleAxis(-90, NxVec3(0,0,1));
  10        qRotAround.fromAngleAxis(180, NxVec3(0,0,1));
  11  
  12        NxMat33 mRotLeft, mRotRight, mRotAround;
  13        mRotLeft.fromQuat(qRotLeft);
  14        mRotRight.fromQuat(qRotRight);
  15        mRotAround.fromQuat(qRotAround);
  16  
  17        // Create body parts
  18        head = CreateSphere(NxVec3(0,8.8,0), 0.5, 10);
  19        torso = CreateSphere(NxVec3(0,7,0), 0.95, 10);
  20        pelvis = CreateSphere(NxVec3(0,5.8,0), 0.7, 10);
  21  
  22        leftUpperArm = CreateCapsule(NxVec3(0.5,8.5,0), 1, 0.4, 10);
  23        leftUpperArm->setGlobalOrientationQuat(qRotRight);
  24        leftForeArm = CreateCapsule(NxVec3(2,8.5,0), 1, 0.3, 10);
  25        leftForeArm->setGlobalOrientationQuat(qRotRight);
  26        leftHand = CreateBox(NxVec3(3.5,8.5,0), NxVec3(0.3,0.3,0.1), 10);
  27        leftHand->setGlobalOrientationQuat(qRotRight);
  28  
  29        rightUpperArm = CreateCapsule(NxVec3(-0.5,8.5,0), 1, 0.4, 10);
  30        rightUpperArm->setGlobalOrientationQuat(qRotLeft);
  31        rightForeArm = CreateCapsule(NxVec3(-2,8.5,0), 1, 0.3, 10);
  32        rightForeArm->setGlobalOrientationQuat(qRotLeft);
  33        rightHand = CreateBox(NxVec3(-3.5,8.5,0), NxVec3(0.3,0.3,0.1), 10);
  34        rightHand->setGlobalOrientationQuat(qRotLeft);
  35  
  36        leftThigh = CreateCapsule(NxVec3(0.6,6,0), 1.5, 0.5, 10);
  37        leftThigh->setGlobalOrientationQuat(qRotAround);
  38        leftCalf = CreateCapsule(NxVec3(0.6,3.5,0), 1.5, 0.35, 10);
  39        leftCalf->setGlobalOrientationQuat(qRotAround);
  40        leftFoot = CreateBox(NxVec3(0.6,1.5,0.2), NxVec3(0.4,0.2,0.75), 10);
  41        leftFoot->setGlobalOrientationQuat(qRotAround);
  42  
  43        rightThigh = CreateCapsule(NxVec3(-0.6,6,0), 1.5, 0.5, 10);
  44        rightThigh->setGlobalOrientationQuat(qRotAround);
  45        rightCalf = CreateCapsule(NxVec3(-0.6,3.5,0), 1.5, 0.35, 10);
  46        rightCalf->setGlobalOrientationQuat(qRotAround);
  47        rightFoot = CreateBox(NxVec3(-0.6,1.5,0.2), NxVec3(0.4,0.2,0.75), 10);
  48        rightFoot->setGlobalOrientationQuat(qRotAround);
  49  
  50        // Joint body parts together
  51        neck = CreateBodySphericalJoint(head,torso,NxVec3(0,8.8,0),NxVec3(0,1,0));
  52        leftShoulder = CreateBodySphericalJoint(leftUpperArm,torso,NxVec3(0.5,8.5,0),NxVec3(1,0,0));
  53        rightShoulder = CreateBodySphericalJoint(rightUpperArm,torso,NxVec3(-0.5,8.5,0),NxVec3(-1,0,0));
  54        spine = CreateBodySphericalJoint(torso,pelvis,NxVec3(0,7,0),NxVec3(0,-1,0));
  55        leftHip = CreateBodySphericalJoint(leftThigh,pelvis,NxVec3(0.6,6,0),NxVec3(0,-1,0));
  56        rightHip = CreateBodySphericalJoint(rightThigh,pelvis,NxVec3(-0.6,6,0),NxVec3(0,-1,0));
  57  
  58        leftElbow = CreateRevoluteJoint(leftForeArm,leftUpperArm,NxVec3(2,8.5,0),NxVec3(0,0,-1));
  59        rightElbow = CreateRevoluteJoint(rightForeArm,rightUpperArm,NxVec3(-2,8.5,0),NxVec3(0,0,-1));
  60  
  61        leftWrist = CreateRevoluteJoint2(leftHand,leftForeArm,NxVec3(0,-0.15,0),NxVec3(0,1.3,0),NxVec3(0,1,0),NxVec3(0,1,0));
  62        rightWrist = CreateRevoluteJoint2(rightHand,rightForeArm,NxVec3(0,-0.15,0),NxVec3(0,1.3,0),NxVec3(0,1,0),NxVec3(0,1,0));
  63  
  64        leftKnee = CreateRevoluteJoint(leftCalf,leftThigh,NxVec3(0.6,3.5,0),NxVec3(1,0,0));
  65        rightKnee = CreateRevoluteJoint(rightCalf,rightThigh,NxVec3(-0.6,3.5,0),NxVec3(-1,0,0));
  66  
  67        leftAnkle = CreateRevoluteJoint(leftFoot,leftCalf,NxVec3(0.6,1.3,0),NxVec3(1,0,0));
  68        rightAnkle = CreateRevoluteJoint(rightFoot,rightCalf,NxVec3(-0.6,1.3,0),NxVec3(-1,0,0));
  69     };
  70  
  71     NxActor* head;
  72     NxActor* torso;
  73     NxActor* pelvis;
  74     NxActor* leftUpperArm;
  75     NxActor* rightUpperArm;
  76     NxActor* leftForeArm;
  77     NxActor* rightForeArm;
  78     NxActor* leftHand;
  79     NxActor* rightHand;
  80     NxActor* leftThigh;
  81     NxActor* rightThigh;
  82     NxActor* leftCalf;
  83     NxActor* rightCalf;
  84     NxActor* leftFoot;
  85     NxActor* rightFoot;
  86  
  87     NxSphericalJoint* neck;
  88     NxSphericalJoint* leftShoulder;
  89     NxSphericalJoint* rightShoulder;
  90     NxSphericalJoint* spine;
  91     NxSphericalJoint* leftHip;
  92     NxSphericalJoint* rightHip;
  93  
  94     NxRevoluteJoint* leftElbow;
  95     NxRevoluteJoint* rightElbow;
  96     NxRevoluteJoint* leftWrist;
  97     NxRevoluteJoint* rightWrist;
  98     NxRevoluteJoint* leftKnee;
  99     NxRevoluteJoint* rightKnee;
 100     NxRevoluteJoint* leftAnkle;
 101     NxRevoluteJoint* rightAnkle;
 102  }; 

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

   1  
   2  function hace($timestamp)
   3  {
   4  $diferencia = time() - $timestamp;
   5  	if($diferencia > 0)
   6  	{
   7  $periodo = array("segundo", "minuto", "hora", "dia", "semana", "mes" , "a&ntilde;o", "decada");
   8  $longitud = array(           "60"    , "60"  , "24" , "7"     , "4.35", "12"       , "10"    );
   9  	
  10  	for($j = 0; $diferencia >= $longitud[$j]; $j++)
  11  	$diferencia /= $longitud[$j];
  12  	
  13  	$diferencia = round($diferencia);
  14  	
  15  	if($diferencia != 1)
  16  	{
  17  		if($periodo[$j] == "mes")
  18  		$periodo[$j].= "es";
  19  		else
  20  		$periodo[$j].= "s";
  21  	}
  22  	
  23  	return "Hace <b>".$diferencia."</b> ".$periodo[$j];
  24  	}
  25  }

PHP : Ver supervariables / Vars globals

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

   1  
   2  function versupervariables()
   3  {
   4  	echo "<b>_COOKIE</b><br />";
   5  	foreach($_COOKIE as $clave=>$valor)
   6  	{
   7  	echo $clave." = ".$valor."<br />";
   8  	}
   9  	echo "<b>_ENV</b><br />";
  10  	foreach($_ENV as $clave=>$valor)
  11  	{
  12  	echo $clave." = ".$valor."<br />";
  13  	}
  14  	echo "<b>_FILES</b><br />";
  15  	foreach($_FILES as $clave=>$valor)
  16  	{
  17  	echo $clave." = ".print_r($valor)."<br />";
  18  	}
  19  	echo "<b>_GET</b><br />";
  20  	foreach($_GET as $clave=>$valor)
  21  	{
  22  	echo $clave." = ".$valor."<br />";
  23  	}
  24  	echo "<b>_POST</b><br />";
  25  	foreach($_POST as $clave=>$valor)
  26  	{
  27  	echo $clave." = ".$valor."<br />";
  28  	}
  29  	echo "<b>_REQUEST</b><br />";
  30  	foreach($_REQUEST as $clave=>$valor)
  31  	{
  32  	echo $clave." = ".$valor."<br />";
  33  	}
  34  	echo "<b>_SESSION</b><br />";
  35  	foreach($_SESSION as $clave=>$valor)
  36  	{
  37  	echo $clave." = ".$valor."<br />";
  38  	}
  39  	echo "<b>_SERVER</b><br />";
  40  	foreach($_SERVER as $clave=>$valor)
  41  	{
  42  	echo $clave." = ".$valor."<br />";
  43  	}
  44  }

PHP : Filas al azar / Random Rows

Filas al azar / Random Rows

   1  
   2  function dame_unas_filas_al_azar($tabla,$numero_de_filas)
   3  {
   4  $sql="SELECT * FROM ".$tabla." ORDER BY RAND(NOW()) LIMIT ".$numero_de_filas;
   5  $resultado = mysql_query($sql);
   6  	if($resultado)
   7  	{
   8  	return mysql_fetch_array($resultado);
   9  	}
  10  	else
  11  	{
  12  	return false;
  13  	}
  14  }

PHP : Obtener registros por mes

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

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

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 :

   1  
   2  function parsearHTMLInjectado($texto)
   3  {
   4  	return nl2br( htmlentities($texto) );	
   5  }

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

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

   1  
   2  function esEmailValido($email)
   3  {
   4      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 ) )
   5  	{
   6         return true;
   7      }
   8  	else
   9  	{
  10         return false;
  11      }
  12  }

PHP : Conectar con Access / Connect with Access

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

   1  
   2  $pathDB = str_replace("/", "\\", $_SERVER["DOCUMENT_ROOT"]) . "\\directory1\\directory2\\bdd.mdb";
   3  
   4  if(!file_exists($pathDB))
   5  {
   6  echo "!!! Base de datos no encontrada ".$pathDB;
   7  exit;
   8  }
   9  
  10  $conexion = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".$pathDB, "ADODB.Connection", "", "SQL_CUR_USE_ODBC");
  11  $sql="select * from tabla where 1";
  12  $resultado=odbc_exec($conexion,$sql);
  13  if($resultado)
  14  {
  15  	while($fila=odbc_fetch_array($resultado))
  16  	{
  17  	echo $fila['campo1']."<br />";
  18  	echo $fila['campo2']."<br />";
  19  	}
  20  odbc_close_all();
  21  }

PHP : Exportar CSV a mySQL / Export CSV to mySQL

Cóodigo fuente / Source code :

   1  
   2  function exportarCSV_a_mySQL($fileCSV)
   3  {
   4  	$registros=0;
   5  
   6  	$ruta=$fileCSV['tmp_name'];
   7  
   8  	if(!file_exists($ruta))
   9  	{return false;}
  10  
  11  	$tabla=quitar_extension($fileCSV['name']);
  12  	
  13  	$borra_tabla="DROP TABLE `".$tabla."`";
  14  	mysql_query($borra_tabla);
  15  	$f=fopen($ruta,"r");
  16  	if($f)
  17  	{
  18  		echo "<b>Guardando CSV en la BDD :</b><br />";
  19  		$contenido=fread($f,filesize($ruta));
  20  		fclose($f);
  21  		$contenido=ereg_replace("\r\n", "\n" , $contenido); // convertimos windows a unix
  22  		$lineas=explode("\n",$contenido);
  23  		$titulo=explode(";",$lineas[0]);
  24  		$NUM_CAMPOS=count($titulo);
  25  		$sql_generado_para_eliminar="";
  26  		$crear_tabla_campos="";
  27  		for($i=0;$i<$NUM_CAMPOS;$i++)
  28  		{
  29  		$titulo[$i]=ereg_replace("\"", "" , $titulo[$i]); // kitamos comillas
  30  		$sql_generado_para_eliminar.=" AND `".$titulo[$i]."` =''";
  31  		$crear_tabla_campos.="`".$titulo[$i]."` varchar(60) NOT NULL";
  32  			if($i+1!=$NUM_CAMPOS)// si no es el ultimo , ponemos coma
  33  			{
  34  			$crear_tabla_campos.=",";
  35  			}
  36  		}
  37  		$crear_tabla="CREATE TABLE `".$tabla."` (".$crear_tabla_campos.") ENGINE=MyISAM DEFAULT CHARSET=latin1;";
  38  		mysql_query($crear_tabla);
  39  		$linea=1;
  40  		do
  41  		{
  42  			$insertar_titulos="";
  43  			$insertar_campos="";
  44  			$campo=explode(";",$lineas[$linea]);
  45  			for($i=0;$i<$NUM_CAMPOS;$i++)
  46  			{
  47  			$campo[$i]=ereg_replace("\"", "" , $campo[$i]);
  48  			$insertar_titulos.=" `".$titulo[$i]."` ";
  49  			$insertar_campos.=" '".$campo[$i]."' ";
  50  				if($i+1!=$NUM_CAMPOS)// si no es el ultimo , ponemos coma
  51  				{
  52  				$insertar_titulos.=",";
  53  				$insertar_campos.=",";
  54  				}
  55  			}
  56  			$sql="INSERT INTO `".$tabla."` ( ".$insertar_titulos." ) VALUES ( ".$insertar_campos." );";
  57  			if(mysql_query($sql))
  58  			{
  59  			echo ". ";
  60  			$registros++;
  61  			}
  62  			else
  63  			{echo "X ";return false;}
  64  		$linea++;
  65  		}while(next($lineas));
  66  
  67  	$sql="DELETE FROM `".$tabla."` WHERE 1".$sql_generado_para_eliminar;mysql_query($sql);
  68  	echo "<br />";
  69  	return $tabla;
  70  	}
  71  	else
  72  	{
  73  	return false;
  74  	}
  75  }
  76  
  77  function quitar_extension($archivo)
  78  {
  79  	$extension = strrchr($archivo,".");
  80  	$pos=strpos($archivo,$extension);
  81  	return substr($archivo,0,$pos);
  82  }


Código ejemplo de llamada / Code exmple call :

   1  
   2  $tabla = exportarCSV_a_mySQL($_FILES['archivo_csv']);
   3  if($tabla)
   4  {
   5  echo "Export OK in mysql table : ".$tabla;
   6  }
   7  else
   8  {
   9  echo "Error in export ...";
  10  }

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