Compañeros hoy no vengo a consultarles o preguntarles algo, el motivo de este foro será darles un aporte de código de PHP. Les explico un poco de que se trata:
En días pasados, cansado de la poca utilidad y óptimo uso que se puede tener utilizando un campo como autoincrement en alguna tabla de MySQL, decide escribir una función que me hiciera eso que aquella función hace, pero con más usabilidad. Por ejemplo:
Tengo los siguientes ID gracias al autoincrement: 1-2-3. Por supuesto que el siguiente será 4. Pero si tengo: 1-3, el próximo será: 4. Además, si borrase todos mis datos de la tabla que trabaja con autoincrement (suponiendo que mis ID eran: 1-2-3), con la tabla vacía insertando un nuevo dato su ID será 4. A diferencia, el código que les presento busca los ID faltantes (en el caso que tuviéramos: 1-3, el nuevo ID será: 2), o en caso que no hayan datos (sea que recién creaste la tabla o la BD, o borraste todos los datos que existían) el nuevo ID será: 1. - Espero haberme hecho entender correctamente-
A continuación les presento su uso:
conexion.php
Código PHP:
Nota: El anterior código se conecta con la BD.Ver original
<?php /* Autor: De|aCuesta. Comentario: Enjoy it. ;-) */ function Conectarse(){ ##============================================================================================ ## Configurar Conexión ##============================================================================================ $server="localhost"; ##Servidor $user=""; ##Usuario $password=""; ##Password $database=""; ##Base de Datos ##============================================================================================ if(!$conn){ echo "<br/><div align='center' style='font-family: Verdana; font-size:22px;font-weight: bold;color:red;'> ERROR CONECTANDO A LA BASE DE DATOS</div>"; } if (!$conn_db){ echo "<br/><div align='center' style='font-family: Verdana; font-size:22px;font-weight: bold;color:red;'> ERROR SELECCIONANDO LA BASE DE DATOS</div>"; } return $conn; } Conectarse(); ?>
funct_autoID.php
Código PHP:
Nota: Creo que queda claro cual es el uso del código anterior. Ver original
<? /* Autor: De|aCuesta. Comentario: Enjoy it. ;-) */ include("conexion.php"); ## Fichero para conectarnos a la BD. ## $tabla_bd: Es el valor que se recibe como nombre de la tabla donde vamos a obtener nuestro nuevo ID. ## $campo_bd: Es el campo numérico (de tipo entero) que vamos a consultar para tener el nuevo ID. function funct_autoID($tabla_bd,$campo_bd){ $conn=Conectarse();## Nos conectamos a la BD. ## Consultamos los ID existentes $ssql = "SELECT $campo_bd FROM $tabla_bd order by $campo_bd"; $i=0; $datos[$i]=$row["$campo_bd"]; $i++; } } $val_max=$datos[$i-1]; ## Valor máximo de ID existentes. $p=0;$l=0; ## Buscando ID disponibles for($j=1;$j<=$val_max;$j++){ for($k=0;$k<$total_val;$k++){ if($j==$datos[$k]) break; else $p++; if($p==$total_val){ $val_disp[$l]=$j; $l++; } } $p=0; } ## Asignamos el nuevo ID $id_new=$val_max+1; else $id_new=$val_disp[0]; return ($id_new); } ?>
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
Y ahora el uso:
index.php
Código PHP:
Ver original
<? /* Autor: De|aCuesta. Comentario: Enjoy it. ;-) */ include("funct_autoID.php"); ## Fichero que nos dará el nuevo ID. $tabla_bd = "autoinc_dlc"; $campo_tabla = "id"; $idnew_bd = funct_autoID($tabla_bd,$campo_tabla); //$idnew_bd = funct_autoID("autoinc_dlc","id"); echo "El nuevo ID será: <b>".$idnew_bd."</b>"."<br/>". "...by <b>De|aCuesta</b>"; ?>
Como pueden ver es mu fácil su uso. Sólo indicamos a que tabla y de cual campo de ésta obtendremos el nuevo ID (el campo debe ser de tipo entero).
Espero que lo usen
![apachar ojo](http://static.forosdelweb.com/fdwtheme/images/smilies/wink.png)
De|aCuesta.