Foros del Web » Programando para Internet » PHP »

Problemas al rellenar con 0 el dni

Estas en el tema de Problemas al rellenar con 0 el dni en el foro de PHP en Foros del Web. Hola como estais? Necesito rellenar con "0" los dni que tienen menos digitos ya que a la bbdd que me conecto se le rellena automaticamente ...
  #1 (permalink)  
Antiguo 27/07/2012, 05:51
 
Fecha de Ingreso: julio-2012
Mensajes: 10
Antigüedad: 11 años, 8 meses
Puntos: 0
Problemas al rellenar con 0 el dni

Hola como estais? Necesito rellenar con "0" los dni que tienen menos digitos ya que a la bbdd que me conecto se le rellena automaticamente y luego al hacer una busqueda en php tengo que introducirlos a mano. El caso es que tengo algun problemilla.

Aqui os pongo el codigo donde funciona bien la busqueda pero tengo que poner los ceros en el dni y es algo que me gustaria suprimir. Aqui podemos hacer la busqueda por varios elementos, pero el principal es el dni.

Como podeis ver en la parte del dni ya he probado a hacer el str_pad pero no me funciona bien. A ver si me podeis echar una mano.... mil gracias!!!

<?php
// $inicio=$_POST ["inicio"];
$poliza=$_POST ["poliza"];
$propuesta=$_POST ["propuesta"];
$dni=$_POST ["dni"];
$matricula=$_POST ["matricula"];
// $entrada=$_POST ["entrada"];

$sql='';
$link = mysql_connect("------", "------", "--------");
if (!$link)
{
echo "mensaje=".die ('error en conexion');
}
else
{
mysql_select_db("baseAsamblea", $link);
$existeDatos=true;
if ($poliza!="")
{
$sql = "SELECT poliza,propuesta,dni,matricula,nombre,apellidos,en trada FROM polizas where poliza='".$poliza."'";
}
else if ($propuesta!="")
{
$sql = "SELECT poliza,propuesta,dni,matricula,nombre,apellidos,en trada FROM polizas where propuesta='".$propuesta."'";
}
else if ($dni!="")
//rellenar con ceros
//str_pad ($dni, 9, "0", STR_PAD_LEFT)
{
$sql = "SELECT poliza,propuesta,dni,matricula,nombre,apellidos,en trada FROM polizas where dni='".$dni."' and (entrada='SI' or entrada='NO')";
}
else if ($matricula!="")
{
$sql = "SELECT poliza,propuesta,dni,matricula,nombre,apellidos,en trada FROM polizas where matricula='".$matricula."'";
}
else
{
$existeDatos=false;
$devuelto="mensaje=Introduzca algun elemento de busqueda";
}
if ($existeDatos==true)
{
$result = mysql_query($sql, $link);
$cantidad = mysql_num_rows($result);
$contador=0;
$devuelto="elementos=".$cantidad;
if ($cantidad==0)
{
$devuelto=$devuelto . "&mensaje=NO existen registros";
}
else
{
while ($row = mysql_fetch_row($result))
{
$poliza=$row[0];
$propuesta=$row[1];
$dni=$row[2];
$matricula=$row[3];
$nombre=$row[4];
$apellidos=$row[5];
$entrada=$row[6];
$devuelto=$devuelto . "&poliza".$contador."=" .$poliza. "&propuesta".$contador."=".$propuesta;
$devuelto=$devuelto . "&dni".$contador."=".$dni. "&matricula".$contador."=".$matricula;
$devuelto=$devuelto . "&entrada".$contador."=".$entrada;
$devuelto=$devuelto . "&nombre".$contador."=".$nombre. "&apellidos".$contador."=".$apellidos."&mensaj e=";
$contador=$contador+1;
}
}
}
echo $devuelto;
}
?>
  #2 (permalink)  
Antiguo 27/07/2012, 06:18
 
Fecha de Ingreso: julio-2012
Ubicación: Girona
Mensajes: 63
Antigüedad: 11 años, 9 meses
Puntos: 10
Respuesta: Problemas al rellenar con 0 el dni

si quieres utilizar el str_pad, debes hacerlo de la siguiente manera:

Código PHP:
Ver original
  1. $dni=str_pad ($dni, 9, "0", STR_PAD_LEFT) ;

aunque tambien puedes utilizar la función sprintf

Código PHP:
Ver original
  1. $dni=sprintf("%09s",$dni);

donde el 0 es el carácter de relleno y 9 es la longitud del formato.

Saludos
__________________
Por favor utilizad HIGHLIGHTS en los códigos insertados para que sean más legibles
  #3 (permalink)  
Antiguo 01/08/2012, 02:26
 
Fecha de Ingreso: julio-2012
Mensajes: 10
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problemas al rellenar con 0 el dni

Hola, muchas gracias por la respuesta....

Me ha funcionado bien, salvo por una cosilla.

Despues de meter el dni y que me haga correctamente la funcion de complementar con ceros, intento meter otro dni y me muestra el anterior.

Como puedo "resetearlo" ?
  #4 (permalink)  
Antiguo 21/08/2012, 02:15
 
Fecha de Ingreso: julio-2012
Mensajes: 10
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problemas al rellenar con 0 el dni

Alguien me puede echar una mano en esto ultimo... Gracias!!

Etiquetas: dni, mysql, registro, rellenar, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.