سبد (0)

صفحه بندی داده ها در mysql

  • یک جدول در پایگاه داده شامل یک نام منحصر بفرد می باشد و شامل تعدادی ستون و ردیف است.


    ایجاد یک جدول در MySQL با استفاده از MySQLi و PDO

    Wiki

    دستور CREATE TABLE برای ایجاد یک جدول در MySQL استفاده می شود.

    در اینجا قصد داریم یک جدول با نام "MyGuests" که شامل 5 فیلد "id" و "firstname" و "lastname" و "email" و "reg_date" است را ایجاد نماییم:

    CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    )

    نکاتی درباره جدول بالا:

    نوع داده مشخص می کند که چه داده هایی در فیلدها نگهداری شوند، اگر مایلید در این زمینه اطلاعات بیشتری کسب کنید به لینک آموزش SQL-انواع داده مراجعه نمایید. در مثال بالا، موقعی که نوع فیلدها را varchar در نظر می گیرید باید حداکثر طول آنرا در پرانتز مشخص کنید(تا 255 کاراکتر)، اگر به اندازه ای بزرگتر از 255 نیاز دارید از نوع text استفاده کنید(تا 65,535 کاراکتر).

    بعد از مشخص کردن نوع داده یا Data Type، گزینه های اختیاری دیگری نیز برای هر ستون وجود دارد:

    • NOT NULL - محدودیت NOT NULL یک ستون را مجبور می کند که مقدار خالی را قبول نکند.
    • مقدار DEFAULT - محدودیت DEFAULT برای وارد کردن مقداری به صورت پیش فرض در یک ستون استفاده می شود.
    • UNSIGNED - این محدودیت تنها برای نوع عددی استفاده می شود و زمان اضافه کردن رکورد تنها اجازه وارد کردن صفر و اعداد مثبت وجود دارد.
    • AUTO INCREMENT - مقدار فیلد بصورت اتوماتیک به ازای هر رکورد جدید 1 واحد اضافه می شود. (خود افزا)
    • PRIMARY KEY - هر جدول می تواند یک کلید اصلی (PRIMARY KEY) داشته باشد، کلید اصلی برای منحصر به فرد کردن ردیفهای یک جدول استفاده می شود، بنابراین مقدار فیلدی را که کلید در نظر می گیرد در کل نباید تکراری باشد. کلید اصلی معمولاً از نوع عددی و خودافزا است، همچنین باید با مقدار NOT NULL تنظیم شود.

    مثال های زیر، نشان می دهد که چگونه می تون در PHP یک جدول را ایجاد کرد:

    مثال(MySQLi Object-oriented)

    <?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    // sql to create table
    $sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    )";

    if ($conn->query($sql) === TRUE) {
        echo "Table MyGuests created successfully";
    } else {
        echo "Error creating table: " . $conn->error;
    }

    $conn->close();
    ?>

    مثال(MySQLi Procedural)

    <?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }

    // sql to create table
    $sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    )";

    if (mysqli_query($conn, $sql)) {
        echo "Table MyGuests created successfully";
    } else {
        echo "Error creating table: " . mysqli_error($conn);
    }

    mysqli_close($conn);
    ?>

    مثال(PDO)

    <?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDBPDO";

    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        // sql to create table
        $sql = "CREATE TABLE MyGuests (
        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        firstname VARCHAR(30) NOT NULL,
        lastname VARCHAR(30) NOT NULL,
        email VARCHAR(50),
        reg_date TIMESTAMP
        )";

        // use exec() because no results are returned
        $conn->exec($sql);
        echo "Table MyGuests created successfully";
        }
    catch(PDOException $e)
        {
        echo $sql . "<br>" . $e->getMessage();
        }

    $conn = null;
    ?>

    برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

    READ MORE
  • دستور UPDATE برای به روز رسانی(تغییر) رکوردهای مشخص(از مقدار فعلی به مقدار جدید) در جدول استفاده می شود.


    دستور UPDATE

    Wiki

    دستور UPDATE برای به روز رسانی رکوردهای موجود در یک جدول استفاده می شود.

    فرم دستور UPDATE:

    UPDATE table_name
    SET column1=value, column2=value2,...
    WHERE some_column=some_value

    توجه: به بند WHERE در دستور UPDATE توجه کنید. بند WHERE مشخص می کند کدام رکورد یا رکوردها باید UPDATE شوند. اگر شما بند WHERE را حذف کنید تمام رکوردها UPDATE می شوند.


    مثال:

    Wiki

    در جدول Persons

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes
    3 Pettersen Kari Storgt 20 Stavanger
    4 Nilsen Johan Bakken 2 Stavanger
    5 Tjessem Jakob    

    می خواهیم اطلاعات شخص "Tjessem, Jakob" را در جدول فوق update کنیم(تغییر دهیم). 

    از عبارت SQLزیر استفاده می کنیم:

    UPDATE Persons
    SET Address='Nissestien 67', City='Sandnes'
    WHERE LastName='Tjessem' AND FirstName='Jakob'

    جدول Persons به این شکل در خواهد آمد:

    P_Id LastName FirstName Address City
    1 Hansen Ola Timoteivn 10 Sandnes
    2 Svendson Tove Borgvn 23 Sandnes
    3 Pettersen Kari Storgt 20 Stavanger
    4 Nilsen Johan Bakken 2 Stavanger
    5 Tjessem Jakob Nissestien 67 Sandnes

    هشدار در مورد دستور UPDATE

    Wiki

    هنگام UPDATE کردن رکوردها دقت کنید. اگر بند WHERE را در مثال بالا حذف کنیم یعنی دستور به صورت زیر شود:

    UPDATE Persons
    SET Address='Nissestien 67', City='Sandnes'

    نتیجه به شکل زیر خواهد شد یعنی تمام رکوردها به یک مقدار تغییر می کنند:

    P_Id LastName FirstName Address City
    1 Hansen Ola Nissestien 67 Sandnes
    2 Svendson Tove Nissestien 67 Sandnes
    3 Pettersen Kari Nissestien 67 Sandnes
    4 Nilsen Johan Nissestien 67 Sandnes
    5 Tjessem Jakob Nissestien 67 Sandnes
    READ MORE
  • محدود کردن رکوردهای انتخاب شده در پایگاه داده MySQL

    Wiki

    در پایگاه داده MySQL، با استفاده از قسمت LIMIT می توانید تعداد رکوردهای برگشتی را محدود کنید.

    با وجود امکان LIMIT دیگر بسادگی می توانید صفحه بندی یا pagination را روی جداول بزرگ پیاده نمایید. همان طور که می دانید در چنین جدول هایی با تعداد رکوردهای بالا، نمایش تمام رکوردها می تواند کارایی برنامه را بسیار کاهش دهد.

    فرض کنید بخواهیم تمام رکوردهای 1 تا 30 از جدول "Orders" را انتخاب کنیم، بنابراین کد زیر را خواهیم داشت:

    $sql = "SELECT * FROM Orders LIMIT 30";

    زمانی که کوئری بالا اجرا می شود، تنها 30 رکورد اول انتخاب خواهد شد.

    اگر بخواهیم رکوردهای 16 تا 25 را انتخاب کنیم، چه باید کرد؟

    با استفاده از دستور OFFSET در پایگاه داده MySQL می توانید مشکل بالا را حل کنید...!

    در مثال زیر، تنها 10 رکورد انتخاب می شود (LIMIT 10) اما از رکورد 16 به بعد این انتخاب صورت خواهد گرفت (OFFSET 15):

    $sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15";

    برای کوتاه تر شدن کد می توانید بصورت زیر عمل کنید:

    $sql = "SELECT * FROM Orders LIMIT 15, 10";

    توجه فرمایید که زمانی که از کاما (,) استفاده می کنید، گزینه های "تعداد رکوردهای برگشتی" و "نقطه شروع" برعکس خواهد شد.


    برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

    READ MORE
تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه