Leading 0 forsvinder

Tags:    php

Jeg har et problem med PHP fjerner leading 0'er fra mine variabler.

Fold kodeboks ind/udKode 


Hvordan kan jeg undgå at det sker??



10 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
$query = mysql_query($link, "SELECT * FROM `calendar` WHERE date LIKE \\"$year$month\\"%");



Indlæg senest redigeret d. 13.04.2006 18:09 af Bruger #7494
Du kan jo bare lave en simpel funktion der sætter det på igen:
function leadingZero($nummer)
{
return ($nummer < 10) ? "0" + $nummer : $nummer;
}

Ved ikke om det kan løses på andre måder, men problemet er vist at når du henter det fra databasen tror PHP at der er tale om en integer og ikke en string.



Sådan her:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 13.04.2006 17:59 af Bruger #7494
Ok...men jeg bruger det i et mysql query. Sådan her

$query = mysqli_query($link, "SELECT * FROM calendar WHERE date LIKE \\"$year$month%\\"");

Og der må forsvinder det også, og så kan dataene ikkke findes.



Det er ikke % der er problemet. Ændrer jeg databasen så der står 4 istedet for 04 virker det fint. Men vil gerne beholder det 0.



Har du gjort på den måde jeg viste dig?



evt prøve:

$query = mysql_query($link, "SELECT * FROM `calendar` WHERE date LIKE \\"".$year.$month."%\\"");

hvis det ikke hjælper kan det være at det blive behandlet som et nummer og så kan du prøve at bruge sprintf til at tvinge den til et givent format. http://www.phpfreaks.com/phpmanual/page/function.sprintf.html



@Nørden, det med sprintf, så bliver den da lavet om til en string eller hvad??



Lige meget. Definerer bare tallene med " omkring som Patrick foreslog. Troede bare det ville give problem med noget andet kode, men det var ikke tilfældet.



Ved at sætte " omkring konverterer PHP den jo alligevel til en string.



t