Consultas SQL
--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
Contenido
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
}
}