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 } }