Problema con for

Iniciado por Feedeex, 24 Mayo 2011, 18:26 PM

0 Miembros y 1 Visitante están viendo este tema.

Feedeex

Hola. Necesito hacer un for que empiece del 0000 y finalice en el 1000, por lo tanto, tengo el siguiente código:

<?php
 
for($a 0000$a 1001$a++) {
  echo 
$a;
  echo 
"<br>";
}
?>


Pero devuelve:

Citar0
1
2
3
4
...

¿Cómo puedo hacer para solucionarlo?.

Nakp

con esto :D

Código (php) [Seleccionar]
echo str_pad($a, 4, 0, STR_PAD_LEFT);

Ojo por ojo, y el mundo acabará ciego.

[u]nsigned

Usa la funcion str_pad para rellenar la cadena con ceros hasta una longitud de 4 caracteres:

Código (php) [Seleccionar]
<?php
 
for($a 0000$a 1001$a++) {
  echo 
str_pad($a,4,0,STR_PAD_LEFT);
  echo 
"<br>";
}
?>


Saludos

PD: Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Feedeex

#3
Muchas gracias amigos :D

PD: Tengo otro problema. Quiero ingresar los números en la BD, pero el mismo problema de antes, ingresa 0,1,2...

<?php
include("conexion.php");
 for(
$a 0000$a 1001$a++) {
  
$a1 str_pad($a,4,0,STR_PAD_LEFT);
   
mysql_query("INSERT INTO rifas (numero) VALUES ($a1)"$conexion);
}
?>


Littl3

Seguramente el tipo de campo de la BBDD es int, prueba con poner el campo tipo char.

Un saludo.

Feedeex

Gracias por la respuesta. Si, era INT, probé con CHAR y no funciona de todos modos. ¿Alguna otra idea?.

Nakp

si no pretendes guardar negativos en la columna, puedes especificar que sea de tipo NUMERIC(4) ZEROFILL :P e implicitamente sera unsigned, asi si guardas 1 en la base de datos sera 0001 :) (supongo que la base de datos esta en mysql)
Ojo por ojo, y el mundo acabará ciego.

Feedeex

Con decir genio, me quedo corto. Muchas gracias Nakp, ya me salvaste de unas cuantas junto con otros  ;-)