رفتن به مطلب

AliRezaPro

عضو سایت
  • تعداد ارسال‌ها

    91
  • تاریخ عضویت

  • آخرین بازدید

نوشته‌ها ارسال شده توسط AliRezaPro

  1. سلام دوستان.

    من اگر بخوام برنامه ای رو از ابتدا بدون استفاده از cms ها بنویسم از فریم ورک استفاده میکنم . مثلا برای یک برنامه ی سبک از CI استفاده میکنم.

    حالا اگر نخوایم از فریم ورک استفاده کنیم , و از طرفی هم نخوایم رویه ای ( اسپاگتی ) کد بزنیم , بهتره بعنوان مثال کوئری های insert , delete , update , select و ... رو در هر درخواست تکرار نکنیم .

    یعنی بعنوان مثال من یک بار کوئری insert رو بعنوان یک کلاس ایجاد کنم , و در هر درخواست , نام جدول , و فیلدهای متفاوتی بهش ارسال کنم .

    به این میگن مدل orm ؟

    آموزشی برای این مورد هست ؟ جستجو کردم نتیجه ی خوبی پیدا نکردم .

    اگر ممکنه یک مثال بزنید .

    ممنونم.

    صرف اینکه بخواید کدی بنویسید که 2-3 تا تابع از رویه ی اصلی جدا باشد کلاس نویسی نکنید . وقتی میرین سمت کلاس نویسی و OOP و MVC , یعنی به پروژه ی خیلی بزرگ تو دست دارید و می خواید که برای گسترش های بعدی کارها آسان تر باشد و جوری نباشد که برای یک تغییر کوچک مجبور به تغییر همه ی قسمت های پروژه باشید. کلا برای این کار MVC مدل خوبی رو ارائه میده که میتونید ازش بهره ببرید

    درواقع مدل MVC یه جور طرز فکر جدا نگه داشتن نمایش داده ها از روش کار با آنها است . از نظر تئوری , سیستمی که به خوبی بر مبنای MVC تولید شده است , باید به طراح کاربری و برنامه نویس پایگاه داده ها اجازه همکاری در یک سیستم مشترک را بدون تداخل بدهد.

    طرز تفکر شما نسبت به مدل ORM تغریبا درست است اما ناقص , پیشنهاد میکنم قبل از کار با هر مدلی مطالعه ی خوبی تو این زمبینه داشته باشید


    http://www.developercenter.ir/forum/showthread.php?23735-ORM-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F

    • امتیاز 2
  2. ممنونم . به چه علت ؟ من همیشه ذخیره میکردم .

    فقط به یکی من اشاره میکنم , اگر سایتی دارید که کاربراین میتوانند عکس آپلود کنند , اگرفایلها رو در بانک اطلاعاتی ذخیره کنید , با گذشت زمان و افزایش کاربران قطعا متوجه سنگین شدن بانک اطلاعاتی میشین و میبینید بعد از چند وقت هندل کردن اون بسیار سخت میشه و همینطور فشار بسیار زیادی هم به سرور وارد میشه

    درواقع اصلا این کار استاندارد نیست و کسی هم توصیه نمینکه که فایلها رو در بانک اطلاعاتی ذخیره کنید . پیشنهاد بنده اینه که فایلهاتونو در یک دایرکتوری قرار بدید و نهایتا اسم فایلها را در فیلد مریوطه ذخیره کنید . بصورت کلی داشتن Database کوچکتر , حتما perform بهتری داره , و حتما هم میتونید بهتر پشتیبان تهیه کنید . بنابراین اگر بتونید فقط reference فایل رو ذخیره کنید قطعا کار بهتری انجام دادید

    • امتیاز 5
  3. چندین راه وجود داره

    1: از تیبیل اکسپورت بگیرید و مقدار فیلد رو به 1 تغیییر بدید

    دقت کنید :



    CREATE TABLE IF NOT EXISTS `static` (
    ....
    .
    .
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=287 ;

    که عدد 287 را به 1 تغییر بدید

    2:{

    1 : بک اپ تهیه کنید از بانک اطلاعاتی

    2: فیلد مورد نظر را Drop کنید

    3 : از داده هاتون export بگیرید

    4 : TRUNCATE یا Empty کنید جدولتونو

    5 : فیلد مورد نظر خودتونو بصورت auto_increment درست کنید

    6 : داده های را import کنید }

    به این نکته دقت کنید وقتی میخواید از این query استفاده کنید {ALTER TABLE tbl AUTO_INCREMENT = value}

    #نکته :

    You cannot reset the counter to a value less than or equal to any that have already been used.

    For MyISAM, if the value is less than or equal to the maximum value currently in the AUTO_INCREMENT column, the value is reset to the current maximum plus one.

    For InnoDB, if the value is less than the current maximum value in the column, no error occurs and the current sequence value is not changed.

    • امتیاز 1
  4. 1 : بله درسته

    2 : کنترل ها , هیچ فرقی نمیکنه

    3 : ببینید شما وقتی یک متغیر درست میکنید و اونو مقدار دهی نمیکنید مثل این میمونه که یه سطل دارید اما توش آب نربختبد اما سطل وجود داره

    وقتی صفحه ایی سابمیت نشه , سشنی درست نشه مثل این میمونه که اصلا وجود نداشتند , استدلال بسیار ساده ایی داره , ایشالله متوجه منظور شده باشید

    • امتیاز 3
  5. متد isset درواقع null رو هم حساب میکنه, برای اینکار از isset استفاده نمیشه ,چیزی که وجود داشته باشه اما میخواید اعتبار سنجی کنید از empty استفاده کنید .اما مثلا برای سابمیت یا سشن یا وجود نداره و یا داره که اونو با isset بررسی میکنید اما دراین مواقع از empty استفاده کنید


    <body>


    <?php
    if (isset($_POST['submit'])) {
    if (!empty($_POST['txtName'])) {
    echo "ok";
    } else {
    echo "no";
    }
    }

    ?>

    </body>
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST">
    <input type="text" name="txtName" />
    <input type="submit" name="submit" />

    </form>

    • امتیاز 3
  6. دوستان ایا این کار رو با base64 نمی توان انجام داد ؟

    هدف کلی من تبدیل فایل به کد برای کاهش حجم آن است.

    تا جایی که بنده میدونم با base64 حجم فایل افزایش پیدا میکنه نه کاهش ! اصلا base64 برای کاهش حجم فایل طراحی نشده

    شما برای کارتون : چرا Compress نمیکنید ؟ البته توصیه نمیشه , بخاطر استفاده ی بیش از حد از منابع سیستمی , اما در مواقع لازم , شما شاید هم منابع رو مهیا کنید

    • امتیاز 3
  7. برای validation


    if(filter_var($_POST['txtemail'], FILTER_VALIDATE_EMAIL)){

    echo 'its ok';
    }
    else {
    echo 'not ok';
    }

    ببینید :

    http://php.net/manual/en/function.filter-var.php

    میتونید با این regex هم validation کنید


    <?php
    $email = "abc123@sdsd.com";
    $regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
    if (preg_match($regex, $email)) {
    echo $email . " is a valid email. We can accept it.";
    } else {
    echo $email . " is an invalid email. Please try again.";
    }
    ?>

    • امتیاز 4
  8. خروجی date میلادی است , شما اونو دارین با تاریخ شمسی مقایسه میکنید ؟

    نمیدونم jdate مستقیم خروجی غیر فارسی میده با خیر در هر صورت براتون با یه تبدیل کوچیک نوشتم . خودم با تاریخ فارسی که گروه ریلیز کرده کار میکنم که صد البته بهتر از jdate است !

    اگر بعد از تاریخ 2/2/1391 باشیم عبارت yes و اگر قبل از تاریخ عبارت no نشون داده بشه


    require_once('jdf.php');

    $year1 = '139122' ;
    echo ChengeNumToEng(jdate('Ynj'))."<br />";

    if (ChengeNumToEng(jdate('Ynj')) > $year1 ) {
    echo "yes";
    }else{
    echo "no";
    }

    function ChengeNumToEng($num) {
    $persian_digits = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
    $english_digits = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
    $myText = str_replace($persian_digits, $english_digits, $num);
    return $myText;
    }

    • امتیاز 3
  9. شما احتمالا باید فایل کانفیگ رو دست بزنید و هاست اون رو لوکال هست بگزارید و همینطور بوزر اون رو هم عوض کنید . مقادیر ثابت های موجود در فایل کانفیگ رو مشاهده بفرمایید


    define('DB_NAME', '');
    define('DB_USER', '');
    define('DB_PASSWORD', '');
    define('DB_HOST', '');

    • امتیاز 1
  10. اینکار رو با Command Line انجام بدید . مراحل کار رو براتون میزارم . البته زیاد پیشنهاد نمیشه که php.ini رو دست بزنید , شاید در آینده قادر به تغییر memory نباشید . در هر صورت از روش زیر استفاده کنید

    1. First, let us say that my Mysql.exe is in D:\xampp\mysql\mysql.exe (I’m using XAMPP by the way) . I’m gonna put my large SQL file in that directory also, meaning the path for the SQL file will be D:\xampp\mysql\your_sql_file.sql

    2. Create your database in your PhpMyAdmin interface(database name only).

    3. Run your command prompt(Start -> Run -> then type “cmd”).

    4. Type this in the command line, assuming that your MySQL installation and the SQL file locations are on the paths I had given in Step 1.

    D:\xampp\mysql\mysql.exe -u root -p db_name < D:\xampp\mysql\your_sql_file.sql

    where “root” is the username of your database and “db_name” is your database name. After the successful command, you will be asked to enter password, enter your password if it has then press Enter or just press Enter if none.

    5. Go back to your PHPMyAdmin to check of the SQL dump file has been executed properly.

    دیدن این سایت ها خالی از لطف نیست . ببینید :


    http://forum.wampserver.com/read.php?2,62493,116924
    http://dba.stackexchange.com/questions/7746/importing-large-sql-file-phpmyadmin

    • امتیاز 1
×
×
  • اضافه کردن...