Consultas SQL

De ActionApps Documentacion
Saltar a: navegación, buscar

--Adam 15:28 21 nov, 2007 (CET)

En esta sección se muestran ejemplos de scripts que ejecutan consultas directas a la base de datos MySQL

Login

Es un script que verifica si el usuario y el password ingresado en un formulario se corresponden entre sí. Si corresponden entonces lanza una página para que el usuario edite sus datos.

<?php
//$id=$_POST['my_item_id'];

ob_start();

$usuario=$_POST['usuario'];

$password=$_POST['password'];

$slice_id=pack('H*','74656d706c6174656d6f696d6d6f6973');

if ($password!=""){
$password_crypt=crypt($password, 'xx');
}
else {
$password_crypt="";
}
$bd_host = "localhost";
$bd_usuario = "user"; /*****cambiar***/
$bd_password = "password"; /*****cambiar***/
$bd_base = "db"; /*****cambiar***/

//$codigo=pack('H*',$id); /*****cambiar por el Id de su canal***/

$con = mysql_connect($bd_host, $bd_usuario, $bd_password) or die ("no
me puedo conectar");

mysql_select_db($bd_base) or die ("no me puedo conectarme a esa base de datos");

$result1=mysql_query("select * from slice,item,content where 
slice.id=item.slice_id AND item.id=content.item_id AND slice.id='$slice_id' AND content.field_id='con_email.......' AND content.text = '$usuario'") 
or die("consulta invalida");

 	
$num_rows1 = mysql_num_rows($result1);

while ($row1=mysql_fetch_array($result1)) /*****va de fila en fila***/
{$id1 = $row1["item_id"];
echo "aqui esta fila 1   ".$row1["item_id"]."<br>";
}

if ($num_rows1 <= 0) {echo "ese usuario no está registrado";}

else {
		
		$result2=mysql_query("select * from content where 
		content.field_id='password........' AND content.text='$password_crypt'") 
		or die("consulta invalida");
		$num_rows2 = mysql_num_rows($result2);
		$num_coincidencias=0;
		while ($row2=mysql_fetch_array($result2))
		{$id2 = $row2["item_id"];
				echo "<br> aqui ta fila 2   ".$row2["item_id"]."<br>";
				if (($num_rows2 > 0) AND ($id1==$id2)) {
				$id=(string)bin2hex($id1);/*De binario a hexadecimal y el string es para convertir el resultado a cadena*/
				echo "lo encontre y su id es".$id;
				Header ("Location:http://www.myweb.org/index.shtml?s=C&e=a&als[my_item_id]=".$id);
				break;
				} 
		        else {echo "no ta";$num_coincidencias++;}
		if ($num_coincidencias=$num_rows2) {
		Header ("Location:http://www.myweb.org/index.shtml?s=C&e=g"); //link a módulo de sitio
		}
		}
		
		
} 

ob_end_flush();


?>


Generación de campos para alertas

Este script sirve para generar una vista de texto completo en formato de tabla a fin de que el usuario que se inscriba mediante un formulario anónimo genere una alerta con todos sus datos. Esta alerta luego se enviará por correo a la persona responsable.

<?php

$bd_host = "localhost";
$bd_usuario = "user";  /*****cambiar***/
$bd_password = "pass"; /*****cambiar***/
$bd_base = "db"; /*****cambiar***/


$codigo=pack('H*','e3bd0be9e46a9e681857ba01139ef180');  /*****cambiar por el Id de su canal***/

$id=pack('H*','cef815ad237b80a58470e165f86e15fe');  /*****cambiar por el Id item***/

/*echo $codigo.'<br>';*/

$con = mysql_connect($bd_host, $bd_usuario, $bd_password) or die ("no
me puedo conectar");

mysql_select_db($bd_base) or die ("no me puedo conectarme a esa base
de datos");

$result=mysql_query("select field.name name, field.id id from content,item,field,slice where slice.id='$codigo'AND slice.id=field.slice_id AND item.slice_id=slice.id AND content.item_id=item.id AND item.id='$id' AND content.field_id=field.id ORDER BY field.input_pri ASC") or
die("consulta invalida");

echo "<table border=1>";
while ($row=mysql_fetch_array($result))
{
echo '<tr>';
echo '<td>'.$row["name"].'</td>';
echo '<td>{'.$row["id"].'}</td>';
echo '</tr>';
}
echo "</table>";

/*
$result=mysql_query("select field.name name, field.alias1 alias from content,item,field,slice where slice.id='$codigo'AND slice.id=field.slice_id AND item.slice_id=slice.id AND content.item_id=item.id AND item.id='$id' AND content.field_id=field.id ORDER BY field.input_pri ASC") or
die("consulta invalida");


echo "<table border=1>";
while ($row=mysql_fetch_array($result))
{
echo '<tr>';
echo '<td>'.$row["name"].'</td>';
echo '<td>{'.$row["alias"].'}</td>';
echo '</tr>';
}
echo "</table>";

*/
?>

Número de conexiones MySQL

Si un usuario pierde la conexión intenta con otro hasta que lo logra. Se usa en el archivo config.php3

  define("DB_HOST", 	"localhost"); // server on which the database (MySQL) is often you can use "localhost" here
  define("DB_NAME",	"aadb");       // Name of database
 define("DB_PASSWORD","pass");    // Database password

$username = array (admin1,admin2,admin3,admin4,admin5);
$password = "pass";
$hostname = "localhost";
for ($i=0;$i<=4;$i++)
{
$link = mysql_pconnect($hostname, $username[$i] , $password);

if ($link) {
             define("DB_USER", $username[$i]);   // User name for database access
	     break;}
}

Obtener nombre de canal a partir de su ID

<?php  
$slice_id=pack('H*','58e131e91139c8e86e6619c9503a76fa');

$bd_host = "localhost";
$bd_usuario = "user"; /*****cambiar***/
$bd_password = "pwd"; /*****cambiar***/
$bd_base = "aadb"; /*****cambiar***/

$con = mysql_connect($bd_host, $bd_usuario, $bd_password) or die ("no me puedo conectar");

mysql_select_db($bd_base) or die ("no me puedo conectarme a esa base de datos");

$result=mysql_query("select name from slice where slice.id='$slice_id'") or die("consulta invalida");
 	
while ($row=mysql_fetch_array($result)) 
{
echo $row["name"];
}
?>



Obtener ID a partir de los datos de dos campos

$slice_id=pack('H*','74656d706c6174656d6f696d6d6f6973');

$result=mysql_query("SELECT item.short_id from item LEFT JOIN slice ON slice.id=item.slice_id LEFT JOIN content as C1 ON C1.item_id=item.id LEFT JOIN content as C2 ON C2.item_id=item.id WHERE C1.field_id='text..........16' AND C1.text LIKE '%Gaby%' AND C2.field_id='headline......99' AND C2.text LIKE '%Espinoza%' AND slice.id='$slice_id'") 
or die("consulta invalida");

Obtener ID a partir de los datos de 1 campo

$slice_id=pack('H*','74656d706c6174656d6f696d6d6f6973');

$result=mysql_query("SELECT item.id from item LEFT JOIN slice ON slice.id=item.slice_id LEFT JOIN content as C1 ON C1.item_id=item.id WHERE C1.field_id='text..........16' AND C1.text LIKE '%Huacho%' AND slice.id='$slice_id'") 
or die("consulta invalida");

hallar del id largo de un item dado el valor de x


# Para hallar del id largo de un item dado el valor de x
if ( isset($g)) {
	$sql = "SELECT id FROM item WHERE short_id=$g";
	$db->query($sql);
	if( $db->next_record() ) {
		$id = $db->f('id');
		$id=(string)bin2hex($id);//convierte el id de formato binario a hexadecimal
		$oi=$id; //le asigno el valor del id a una variable de estado
	}
}