Título: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: MakiaResc en 13 Marzo 2008, 23:58 pm (http://mountcope.files.wordpress.com/2007/10/numbers.jpg) Miren lo que pasa es lo siguiente, quiero que en php o mysql se genere un numero y que me lo muestre en un textarea, bueno pero aqui lo que se me hace dificil es que no tengo ni idea de como hacerlo.... Se que siempre decimos en internet, primero busca y luego pregunta asi que ya lo hice y aqui voy a dar la informacion que puede encontrar y que un user le funciono pero yo no se ni como.... En si busco que se genere un numero el cual pueda mostrar en un echo con php ya posteriormente esto se edita, pero quiero que este numero no se vuelva a repetir nunca de los nuncas. Voy a poner un ejemplo de lo que busco que pase, haber si alguien me ayuda..... Ejemplo: No. de Pedido # Titulo: Nombre: Descripcion: En si esto es un formulario, pero en el numero de pedido es donde quiero que aparezca un numero aleatorio de 4 o 5 cifras ya sea numerico o alfanumerico, es por ello que el numero de pedido debe ser imposible de repetirce.... Si alguien sabe como hacer esto ayudenme se los agradecere bastante. Esta es la info que encontre en internet la cual se que es SQL pero no se como crear la tabla u/o usarlo. Código: function nuevorand($lista) { Supongo que esto es lo que se necesita para hacer la conexión a la base de datos. Código: <? De antemano gracias y eespero sus respuestas Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: Ertai en 14 Marzo 2008, 01:11 am No sería más facil usar el autoincrement de SQL?
Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: MakiaResc en 14 Marzo 2008, 01:48 am Gracias por tu respuesta, y... disculpa mi ignorancia, pero que es lo que tendria que hacer....?
Tendria que crear una tabla en mysql ¿Como? ¿Luego como hago para mostrar el valor que arroje el mysql? De antemano te agradezco tu pronta respuesta y espero me puedas ayudar mientras buscare info de lo que acabas de mencionar.... Gracias por tu respuesta y espero puedas seguir ayudandome Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: Azielito en 14 Marzo 2008, 17:34 pm Pues que hacer un campo y le dices que sera autoincrement xD
o sea Código donde DB es la base de datos tabla es la tabla ¬¬ ped_id es el nombre dcel campo 5 es la longitud del campo NOT NULL siempre tendra que tener algo ¬¬ AUTO_INCREMENT es el que hace la magia de auto incrementar xD PRIMARY KEY le dice que es la llave primaria, para eso de las relaciones en tablas y demas te ayuda bastante ahora, quieres una longitud en el id del pedido entonces podrias usar el str_pad de php, o sea, la funcion Código
y listo, tendras un "00001" "00002" [...] "00526" y asi hasta que se terminen xD Tambien podrias usar un campo entero y basarte en la funcion time() de php Código igual nunca se repite :) o un campo timestamp (creo que asi se llama) en tu tabla :) Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: MakiaResc en 15 Marzo 2008, 18:44 pm Al crear la base de datos me quedo asi:
Código: Tabla pedido se creó. Lego en el codgio que me diste lo puse del siguiente modo... Código: <? Y me marco el siguiente error: Código: Parse error: syntax error, unexpected T_VAR in /home/acclasto/public_html/pedido.php on line 10 Que crees tu que este haciendo mal o por que razon crees que me marce este error? Lo estoy haciendo bien o hice algo mal???? Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: SirLanceCC en 16 Marzo 2008, 19:40 pm Citar Parse error: syntax error, unexpected T_VAR in /home/acclasto/public_html/pedido.php on line 10 Código
Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: h4ck3r_multidimensional en 20 Marzo 2008, 00:00 am Citar Parse error: syntax error, unexpected T_VAR in /home/acclasto/public_html/pedido.php on line 10 Código
Asielito y Sir_Lance, un consejo, no mezclen javascript con PHP, o de última entren a php.net y fijense para que sirve la palabra reservada VAR, http://ar.php.net/manual/es/language.oop.php#keyword.class (http://ar.php.net/manual/es/language.oop.php#keyword.class), esta se utiliza sólo en la definición de los datos o variables miembro de una clase, o en javascript para declarar como se debe una variable, pero después... ahi ven lo que dice el interprete de php Código
Que yo sepa, en los años que vengo programando en PHP esa manera de declarar variables externas a una clase no existe. Así que ponganle un poco de onda y si van a explicarle algo al alguien que al menos no tenga errores. MakiaResc, Si querés generar claves principales o primarias en una tabla de una base de datos, y que sean distintas, tenés dos opciones, en realidad hay varias, pero se usan mucho estas dos, o tomas un campo entero (INT) con una logitúd sufiente como para poder soportar una cierta cantidad de registros, utilizando este campo con la opción AUNTO_INCREMENT o simplemente definis varios campos y en combinación con los que elegístes formas una clave primaria, yo la mayoría de las veces opto por la primer opción, es la más fácil, pero cuando se puede uso la combinación de dos o más campos. Código
En donde dice <claveprimaria> iría el nombre que le quieras dar al campo, y en donde dice <longitúd del campo> va la cantidad de dígitos que necesitas usar, en esta página http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html (http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html) tenés todos los tipos de datos con sus rangos numéricos aceptables. Para que te dés una idea si en vez de declarar el campo de clave principal como INT lo declaras como DOUBLE, tenés una cantidad posible de registros de 18.446.744.073.709.551.615, unos 18 trillones y medio, fijate si te alcanza ;D igual quedate tranquilo que hay de más rango, pero se usan para cálculos con punto flotante, "números con coma" de gran tamaño. Para ver más cerca de esto, y que te quede más claro, el mejor lugar para mí, es mysql.org, ese link que te pasé es de ahí, mejor información que esa, la de los fabricantes no creo que encuentres, sin desmerecer a la gente que postea "cosas buenas" que también tienen sus méritos. Y por último, NO lleva var una declaración de variable por eso: Código te da error, por que ese var ahí no tiene que existir, sacalo y probalo. Código Igual lo que hace eso es rellenar con ceros la cadena que se encuentre en $cadena original hasta llegar a una longitúd de 5 caracteres en total, o sea los de $cadena_original + los ceros que se le agreguen, eso supongo que es para no mostrar el número así a secas, en vez de 120, por ejemplo mostraría 00120, no está mal, queda prolijo. Bueno, me voy por que tengo que seguir trabajando, saludos y acuerdense de ponerle onda cuando explican y tratar de no pifiarla, -| Sir_Lance |- la pifió arriba de Azielito :o , ta bien igual, somos todos humanos, y no se aprende de otra cosa que no sean los errores muchachos ;D, así que a darle duro nomás. Salu2. Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: alone-in-the-chat en 20 Marzo 2008, 15:42 pm :-\
Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: Azielito en 24 Marzo 2008, 17:33 pm jahahahahahaah!!!
no me di cuenta que puse "var" al inicio x'DDDDDDDDDDDD perdon, es que estaba trabajando con javascript en el trabajo y se me mesclaron los lenguajes xDDDD ya esta arreglado :P gracias por el aviso Título: Re: Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca Publicado por: Override en 29 Marzo 2008, 07:45 am Me pidieron algo asì la semana pasada en el trabajo... los numeros aleatorios que habian que generar no debeian ser repetidos con los que habia en una tabla en una base de datos MySQL... estos numeros serìan "ordenes de pedido" ...
Lo que yo hice fuè generar numeros aleatorios, luego hacer una consulta buscandolo (SELECT numero FROM tabla WHERE numero = '$numaleatoriogenerado') y con un algoritmo recursivo comprobaba de nuevo en la db el numero generado si no existia entonces lo mostraba como orden de pedido si no volvia a llamarme y generaba de nuevo un numero y repetia el proceso hasta que no existiera... PD: se que los algoritmos recursivos no deben implementarse si no es necesario por el uso de memoria pero bueno! asì resolvì el problema jaja. |