PDA

View Full Version : نحوه نوشتن یک شکل خاص در اعداد ! کمک کنید



کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 11:29 صبح
سلام

چطوری میتونم این حالت رو به عدد بدم....

من تو جدول دیتابیس از 1 تا هر چند رو میتونم ذخیره کنم و بخونم

ولی این شکل رو لازم دارم 001 تا 099 اینو چجوری میتونم پیاده سازی کنم ؟ یکی کمک کنه :(

djsaeedkhan
سه شنبه 19 اردیبهشت 1391, 11:40 صبح
سلام
برای کدام فیلد میخاید برای auto increament یا هر فیلدی؟

sinasalmani
سه شنبه 19 اردیبهشت 1391, 11:46 صبح
باید text باشه کاری هم نداره . عدد نیمتونه باشه چون 099 با 99 هیچ فرق نمی کنه


<?php
function AddZero($num)
{
if ($num <10) { $strnum="00".$num;return $strnum; }
if ($num <100) { $strnum="00".$num;return $strnum; }
else {$strnum=$num;return $strnum;}
}

کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 11:53 صبح
نه ببینید من این رو اینجوری میخونم


$customernumber = isset($_POST['customernumber']) ? (string)PK::$POST['customernumber'] : '',


customernumber یک عدد رو در هر بار ثبت چاپ میکنه مثلا 1 - 2 - 3 تا الی آخر

حالا میخوام اینو در حین چاپ با شرایطی که میخوام چاپ کنم و یا در حین ثبت اینطوری ثبت کنم ! مشکلم اینه !

کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 11:53 صبح
فیلد هم از هنوع Char 100 زدم.

reza10wert
سه شنبه 19 اردیبهشت 1391, 11:57 صبح
برای نوشتن روی صفحه میخواهید یا نوشتن در بانک ؟

djsaeedkhan
سه شنبه 19 اردیبهشت 1391, 11:59 صبح
سلام
شما یه کاری کن
عدد رو بزار 1009 و ذخیره کن بعد هر وقت خواستی استفاده کنی یک اولشو بردار
دیگه راحت تر از این

sinasalmani
سه شنبه 19 اردیبهشت 1391, 12:00 عصر
خب شما اون عدد را بفرست به تابع AddZero بعد چاپش کن....یا بعد تو بانک داده بنویسش
فقط فیلد مورد نظر در بانک داده ات نباید عدد باشه.......از Navicat استفاده کن..یه برنامه برای بانک داده Mysql است

sinasalmani
سه شنبه 19 اردیبهشت 1391, 12:01 عصر
سلام
شما یه کاری کن
عدد رو بزار 1009 و ذخیره کن بعد هر وقت خواستی استفاده کنی یک اولشو بردار
دیگه راحت تر از این

زد و عددش رفت بالای 1000 . چی کار کنه؟

کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 12:02 عصر
نه نه اینجوری نه ! لطفا یکم دقیقتر فکر کنید...
ببینید customernumber فیلد شماره مشتری من هست خب ؟ هنگام ثبت این فیلد در هر بار ثبت شدن تغییر میکنه مثلا در هنگام ثبت برای اولین بار 1 میشه تا الی 999 خب ؟ حالا در داخل فیلد هم همنیجوری دیده میشه و در چاپ هم همینجوری خروجی میده !
من میخوام تا عدد 9 به صورت 009 و بعد از 9 یعنی وقتی شد 10 - 11 بشه 010 - 011 و الی آخر... مشکلم اینه :)

reza10wert
سه شنبه 19 اردیبهشت 1391, 12:06 عصر
نه نه اینجوری نه ! لطفا یکم دقیقتر فکر کنید...
ببینید customernumber فیلد شماره مشتری من هست خب ؟ هنگام ثبت این فیلد در هر بار ثبت شدن تغییر میکنه مثلا در هنگام ثبت برای اولین بار 1 میشه تا الی 999 خب ؟ حالا در داخل فیلد هم همنیجوری دیده میشه و در چاپ هم همینجوری خروجی میده !
من میخوام تا عدد 9 به صورت 009 و بعد از 9 یعنی وقتی شد 10 - 11 بشه 010 - 011 و الی آخر... مشکلم اینه :)
از این کد استفاده کن و هنگام ذخیره $user_id رو ذخیره کن


<?php
if ( $customernumber < 10 ) {
$user_id = "00".$customernumber ;
} elseif ( $customernumber > 10 AND $customernumber < 100 ) {
$user_id = "0".$customernumber ;
}
?>

sinasalmani
سه شنبه 19 اردیبهشت 1391, 12:07 عصر
یعنی شما یه فرم داری که اطلاعات customer را می گیره؟ مثل customernumber , customername ...
حالا میخواین هر بار submit می کنین شماره مشتری تون (که هر بار مشتری هم متفاوته) با این قیافه بره تو بانک داده؟

کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 12:10 عصر
از این کد استفاده کن و هنگام ذخیره $user_id رو ذخیره کن


<?php
if ( $customernumber < 10 ) {
$user_id = "00".$customernumber ;
} elseif ( $customernumber > 10 AND $customernumber < 100 ) {
$user_id = "0".$customernumber ;
}
?>


نتیجه اینجوری میشه متاسفانه : 00 فقط 00 نشونم میده !

کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 12:11 عصر
یعنی شما یه فرم داری که اطلاعات customer را می گیره؟ مثل customernumber , customername ...
حالا میخواین هر بار submit می کنین شماره مشتری تون (که هر بار مشتری هم متفاوته) با این قیافه بره تو بانک داده؟

نه این یکم خیلی هم پیچیدست هم ساده ! من در نظر دارم یک شمارنده برای هربار ثبت مشتری برای تولید یک کد پیگیری درست کتنم و این قسمت شماره مشتری جزو 16 رقتم از کد پیگیری خواهد بود :)

reza10wert
سه شنبه 19 اردیبهشت 1391, 12:16 عصر
نتیجه اینجوری میشه متاسفانه : 00 فقط 00 نشونم میده !
دوست عزیز
من تست کردم درست بود

<?php
$customernumber = 12 ;
if ( $customernumber < 10 ) {
$user_id = "00".$customernumber ;
} elseif ( $customernumber > 10 AND $customernumber < 100 ) {
$user_id = "0".$customernumber ;
} else {
$user_id = $customernumber ;
}
echo $user_id ;
?>
اینو امتحان کن

کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 12:19 عصر
دوست عزیز
من تست کردم درست بود

<?php
$customernumber = 12 ;
if ( $customernumber < 10 ) {
$user_id = "00".$customernumber ;
} elseif ( $customernumber > 10 AND $customernumber < 100 ) {
$user_id = "0".$customernumber ;
} else {
$user_id = $customernumber ;
}
echo $user_id ;
?>
اینو امتحان کن

به نوع فیلد ربطی داره ؟
من اینجوری ستش کردم : customernumber char(100) utf8_general_ci

:((

کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 12:25 عصر
آها بله رو دستور echo قشنگ جواب میده ولی تو داخل متغیر درست جور در نمیاد !!!

;$fullcode = $customernumber$

من نتیجه نهایی رو با fullcode$ به ارسال میفرستم...

در حالت echo جواب میده ولی اینجوری نه ! مشکل از چیه به نظرتون ؟

reza10wert
سه شنبه 19 اردیبهشت 1391, 12:32 عصر
نوع فیلدت رو بذار varchar . باید درست جواب بده
نمیدونم شاید جایی از کدت نکته ای داشته باشه

djsaeedkhan
سه شنبه 19 اردیبهشت 1391, 12:35 عصر
زد و عددش رفت بالای 1000 . چی کار کنه؟
خوب بجای عددی شما یه مقداری فرض کن مثلا اولش یه کاراکتر بزار
این که مشکلی درست نمیکنه.
شما موقع درج و خوندن یه کاراکتر اضافه می کنی و بعد حذف می کنی و نمایش میدی
چطوره

کامبیز اسدزاده
سه شنبه 19 اردیبهشت 1391, 13:05 عصر
حل شد مشکل ! بسیار سپاسگذار از همه دوستان :) 2 روزه جونم در اومده بود ....

soroush.r70
سه شنبه 19 اردیبهشت 1391, 16:30 عصر
چطوری می شه اعداد رو سه تا سه تا با , جدا کرد می شه با مثال توضیح بدید.

reza10wert
سه شنبه 19 اردیبهشت 1391, 23:25 عصر
چطوری می شه اعداد رو سه تا سه تا با , جدا کرد می شه با مثال توضیح بدید.

echo number_format(1000000);