شنبه ۲۲ شهریور ۱۴۰۴

Saturday, September 13, 2025 GMT +3:30

انتخاب ردیف ها با دستور SELECT در MySQL

mysql-select-from

فرآیندهای متداول سیستم های مدیریت پایگاه داده نظیر MySQL شامل چند مورد اصلی ذخیره سازی، بازیابی، به روزرسانی و در نهایت حذف اطلاعات است که در خصوص شیوه ذخیره سازی با دستور INSERT INTO در آموزش گذشته مفصل صحبت کردیم، در این مطلب می خواهیم به بحث بازیابی و انتخاب ردیف ها جهت استفاده از اطلاعات جداول MySQL در برنامه PHP بپردازیم، در دنیای برنامه نویسی ذخیره سازی و نگهداری اطلاعات به خودی خود صرفا یک هدف اولیه محسوب می شود و عمدتا نیازمند این هستیم که از اطلاعات ذخیره شده در شرایط مختلف در برنامه پردازش یا خروجی مورد انتظار داشته باشیم که بدین منظور در هر زبان برنامه نویسی ساز و کاری در نظر گرفته شده است، با ذکر این مقدمه در این آموزش با دستور دیگری از MySQL تحت عنوان SELECT آشنا می شویم که برای انتخاب ردیف های اطلاعاتی (Rows) و انجام پردازش های مورد نیاز در کدهای PHP از آن استفاده می کنیم.

کاربرد دستور SELECT در MySQL


پیش تر گفتیم که صرف ساخت دیتابیس (Database)، جدول (Table)، ستون (Column) و وارد کردن اطلاعات ردیف بندی شده (Rows) در آن تمام کار ما با MySQL نیست، در واقع این فرآیندها جزء مرحله دریافت و نگهداری اطلاعات هستند، اما اگر بخواهیم مجددا از این داده ها در قسمت های مختلف برنامه استفاده کنیم نیاز است که به کمک PHP ردیف های مد نظر را انتخاب (Select) نموده و فراخوانی کنیم، این کار در تعامل بین PHP و MySQL با دستور SELECT و پارامترهای آن انجام می شود که با توجه به نیاز برنامه و تنظیماتی که انجام می دهیم اطلاعات خاصی را از ردیف های موجود در جداول انتخاب و فراخوانی می کند تا پردازش مورد نظر روی آنها صورت گرفته و احتمالا به خروجی ارسال شوند.

شیوه نگارش (Syntax) دستور SELECT در MySQL


شیوه نگارش یا Syntax دستور SELECT در MySQL به صورت نمونه زیر است و به طور معمول همراه با پارامتر FROM استفاده می شود:
SELECT col_1, col_2 FROM tbl
مثال:
//انتخاب ردیف از تمام ستون ها
mysqli_query($conn, "SELECT * FROM table");

//انتخاب ردیف از یک یا چند ستون خاص
mysqli_query($conn, "SELECT id, name FROM table");
توضیح:
- در مورد mysqli_query گفتیم که یک تابع درونی در اکستنشن MySQLi است که جهت اجرای فرآیند پرس و جو بین کدهای PHP و دیتابیس MySQL کاربرد دارد.
- بعد از عبارت SELECT می توانیم از علامت * استفاده کنیم که در اینصورت ردیف های مربوط به تمام ستون ها به عنوان نتیجه پرس و جو انتخاب می شوند، این حالت در شرایطی که صرفا ستون یا ستون های خاصی مد نظرمان باشد مناسب نیست و فشار بیشتری به دیتابیس تحمیل می کند که در برنامه های با تعداد کاربر بالا ممکن است مشکل ساز شود، روش بهینه این است که صرفا نام ستون هایی که اطلاعات آنها مد نظرمان است را پس از عبارت SELECT درج کنیم (جداسازی با کاراکتر کاما ',').
- دستور SELECT FROM با پارامترهای دیگری از جمله WHERE تکمیل می شود که در ادامه سری آموزش های مقدماتی MySQL در این خصوص خواهیم گفت.
- پس از اجرای یک Query با دستور SELECT FROM بر اساس نوع درخواست و تنظیمات ما، مقادیر یا ردیف هایی به عنوان نتیجه پرس و جو برگردانده می شود، این مقادیر می تواند اطلاعات موجود در دیتابیس یا به طور مثال تعداد ردیف های انتخابی باشد.
- برای استفاده از نتیجه پرس و جو بهتر است تابع mysqli_query را به یک متغیر نسبت دهیم تا اطلاعات در ادامه برنامه در متغیر قابل دسترسی و مدیریت باشند، به فرض:
$query = mysqli_query($conn, "SELECT id, name FROM table");
نکته: نمونه کدهای بالا در PHP جنبه کاربردی ندارند و صرفا مرحله انتخاب ردیف ها را شامل می شوند، برای استخراج نتایج برگردانده شده از پرس و جو نیاز به توابع و کدنویسی بیشتری است که در ادامه آموزش حاضر بررسی خواهیم کرد.

پردازش و خروجی با تابع mysqli_fetch_array و متد fetch_array


پس از انتخاب اطلاعات ستون ها با دستور SELECT و نسبت دادن نتیجه برگردانده شده به متغیر، می توانیم با حلقه while در PHP و با کمک تابع mysql_fetch_array (برنامه نویسی رویه ای) یا متد fetch_array (برنامه نویسی شی گرا) مقادیر موجود در متغیر را از حالت آبجکت (Object) به صورت آرایه تبدیل کرده و پردازش مورد نظرمان را روی آنها اعمال یا مقادیر را در خروجی چاپ کنیم، در مثال های زیر از جدول books که در آموزش های قبل ساختیم اطلاعات ستون های book و level را به دو روش برنامه نویسی رویه ای و شی گرا دریافت کرده ایم.
برنامه نویسی رویه ای (Procedural):
<?php
//اتصال به دیتابیس
$conn = mysqli_connect("localhost", "username", "password", "dbname");

if(!$conn){
    echo "PHP & MySQL Connection: Error! " . mysqli_connect_errno() . ' - ' . mysqli_connect_error();
    exit;
} else{    
    //سازگاری با حروف فارسی
    $sql = "SET NAMES 'utf8'";
    $query = mysqli_query($conn, $sql);
    
    //اانتخاب اطلاعات از جدول و ستون ها
    $sql = "SELECT book, level FROM books";
    $query = mysqli_query($conn, $sql);
    
    if(!$query){
        echo "Selecting From Table books: Error! " . mysqli_error($conn) . '<br>';
    } else{
        //تعداد ردیف های انتخاب شده
        $count = mysqli_num_rows($query);
        $loop = 1;
        
        //پردازش و خروجی ردیف های اطلاعات
        if($count > 0){
            echo '<div style="direction: rtl; border: 1px solid #999;">';
            
            echo 'تعداد ردیف ها: ' . $count . '<br><br>';

            while($row = mysqli_fetch_array($query)){
                echo 'ردیف ' . $loop . ' => ' .
                'کتاب: ' . $row['book'] . ' - ' .
                'سطح: ' . $row['level'] . '<br><br>';
                
                $loop++;
            }
            
            echo '</div>';
        } else{
            echo "No Rows Found in Table books!";
        }
    }
}

//پایان اتصال
mysqli_close($conn);
?>
برنامه نویسی شی گرا (Object-oriented):
<?php
//اتصال به دیتابیس
$conn = new mysqli("localhost", "username", "password", "dbname");
if(!$conn) {
    echo "PHP & MySQL Connection: Error! " . $conn->errno . ' - ' . $conn->error;
    exit;
} else {   
    //سازگاری با حروف فارسی
    $sql = "SET NAMES 'utf8'";
    $conn->query($sql);
    
    //اانتخاب اطلاعات از جدول و ستون ها
    $sql = "SELECT book, level FROM books";
    $query = $conn->query($sql);
    
    if(!$query){
        echo "Selecting Table books: Error! " . $query->error() . '<br>';
    } else{
        //تعداد ردیف های انتخاب شده
        $count = $query->num_rows;
        $loop = 1;
        
        //پردازش و خروجی ردیف های اطلاعات
        if($count > 0){
            echo '<div style="direction: rtl; border: 1px solid #999;">';
            
            echo 'تعداد ردیف ها: ' . $count . '<br><br>';

            while($row = $query->fetch_array()){
                echo 'ردیف ' . $loop . ' => ' .
                'کتاب: ' . $row['book'] . ' - ' .
                'سطح: ' . $row['level'] . '<br><br>';
                
                $loop++;
            }
            
            echo '</div>';
        } else{
            echo "No Rows Found in Table books!";
        }
    }
}

//پایان اتصال
$conn->close();
?>
توضیح:
- در این نمونه کدها فرض بر این است که جدول books را با سه ستون id، book و level از قبل ساخته ایم (رجوع به آموزش های گذشته).
- تابع mysqli_num_rows و متد num_rows تعداد ردیف هایی که به عنوان نتیجه پرس و جو انتخاب شده اند را برمی گردانند، اگر این مقدار 0 باشد یعنی هیچ ردیفی مطابق با پرس و جوی ما انتخاب نشده است.
- در صورت موفقت آمیز بودن پرس و جو نتیجه به صورت MySQL Result Object خواهد بود، این آبجکت جهت استفاده در کدهای PHP معمولا باید تبدیل به آرایه شود که در ادامه توضیح خواهیم داد.
- تابع mysqli_fetch_array نتیجه برگردانده شده توسط تابع mysqli_query و متد fetch_array نتیجه برگردانده شده توسط متد query را به آرایه قابل استفاده در PHP تبدیل می کنند.
- آرایه به دست آمده با تابع mysqli_fetch_array یا متد fetch_array با کلید و مقدار در کدهای PHP در دسترس است که در حلقه while می توانیم از ردیف های برگردانده شده خروجی بگیریم.
- در مثال های بالا مقادیر داخل علامت های [ ] در حلقه while نام ستون های جدول دیتابیس هستند که در هر دور حلقه while تا زمانی که کلید و مقداری در آرایه برای خروجی دادن وجود داشته باشد برای هر ردیف انتخاب شده تکرار می شوند.
- برای درک بهتر می توانیم با تابع var_dump در PHP از متغیر row در حلقه while خروجی بگیریم، مثال:
var_dump($row);

array (size=4)
  0 => string 'آموزش HTML' (length=15)
  'book' => string 'آموزش HTML' (length=15)
  1 => string 'مقدماتی' (length=14)
  'level' => string 'مقدماتی' (length=14)
همان طور که مشخص است MySQL نتیجه را هم به صورت کلیدهای عددی و هم رشته ای برمی گرداند که می توانیم از هر دو حالت برای گرفتن خروجی استفاده کنیم، به فرض:
$row['book'];
$row[0];
استفاده از دو شیوه بالا نتیجه یکسان خواهد داشت.
- در حالت شی گرا علاوه بر متد fetch_array می توانیم از متد fetch_assoc نیز استفاده کنیم، عبارت assoc به معنی Associative Array است که در این حالت نتیجه پرس و جو به صورت آرایه ای است که نام ستون ها (رشته متنی) به عنوان کلید آرایه تنظیم شده است، به فرض:
$row['book'];
علاوه بر مواردی که گفته شد شیوه های دیگری نیز برای دریافت نتیجه پرس و جو در حلقه while وجود دارد از جمله استفاده از تابع mysqli_fetch_row و متد fetch_row، تابع mysqli_fetch_object و متد fetch_object که به جهت کاربرد کمتر و جلوگیری از طولانی شدن مبحث در این مرحله به ذکر چند مثال بسنده می کنیم:
$query = mysqli_query($conn, "SELECT book, level FROM books");
while($row = mysqli_fetch_row($query)){
    echo $row[0] . ': ' . $row[1] . '<br>';
}

$query = $conn->query("SELECT book, level FROM books");
while($row = $query->fetch_row()){
    echo $row[0] . ': ' . $row[1] . '<br>';
}

$query = mysqli_query($conn, "SELECT book, level FROM books");
while($row = mysqli_fetch_object($query)){
    echo $obj->book . ': ' . $obj->level . '<br>';
}

$query = $conn->query("SELECT book, level FROM books");
while($obj = $query->fetch_object()){
    echo $obj->book . ': ' . $obj->level . '<br>';
}
نتیجه این پرس و جوهای فرضی می تواند به صورت زیر باشد:
آموزش HTML: مقدماتی
آموزش PHP: پیشرفته
آموزش MySQL: پیشرفته
پرس و جوهای SELECT در MySQL عموما با قسمت WHERE همراه هستند که در مباحث پیش رو در خصوص استفاده از دستور WHERE و پارامترهای آن توضیح خواهیم داد.
دسته بندی: آموزش مقدماتی » MySQL
related مطالب بیشتر:
استفاده از WHERE در پرس و جوی MySQL
نحوه ذخیره کردن اطلاعات با دستور INSERT در MySQL
اتصال PHP به MySQL با اکستنشن MySQLi
آموزش MySQL، سیستم مدیریت پایگاه داده
ساخت دیتابیس، جدول و ستون با دستور CREATE در MySQL
دیدگاه
more ۷۲ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
۰۰:۰۹ ۱۴۰۱/۰۹/۲۷
با سلام ...
من میخوام اطلاعات محصولی که داخل دیتابیس mysql هست رو بجای ستونی ، ردیفی نمایش بدم برای نمایشش چطوری باید کد رو تغییر بدم؟ میخوام توی ردیف چهارتایی نمایش داده بشه
در صورتی که با نحوه استخراج اطلاعات جداول دیتابیس آشنا باشید شیوه نمایش آنها در خروجی صفحه وب محدودیتی ندارد، بستگی به کدهای PHP و HTML دارد که در حلقه while در نظر می گیرید و معمولا از تگ table و td برای ایجاد حالت دلخواه استفاده می شود.
elahe
۱۱:۰۲ ۱۴۰۰/۱۰/۱۲
سلام وقتتون بخیر من در جدول پایگاه داده کتابخانه 4 تا ستون دارم که میخوام هر فیلد رو در یک لیبل بریزم در واقعه یک ردیف از جدول رو در 4 تا لیبل بریزم ولی هر کدی که میزنم یا جواب نمیده یا اطلاعات کل کتاب ها رو بر میگردونه
بدون دیدن سورس کدها و جدول کمک زیادی ممکن نیست، در صورت تمایل کدها، ساختار و نمونه اطلاعات قابل تست دیتابیستان را به صورت ZIP شده به آدرس ایمیل ما (موجود در بخش تماس) ارسال نمائید تا بررسی کنیم.
مجید محمدزاده
۱۳:۴۸ ۱۴۰۰/۰۷/۰۷
سلام خسته نباشید
ببخشید من میخوام از جدول پروداکتم مقدار specifi ای رو بگیرم به متغییر تبدیل کنم و قسمت قسمت کنم نمایشش بدم چطوری باید به متغییر تبدیلش کنم طبق یو ار ال هم نمیخوا باشه دیده شه
این آموزش دقیقا در خصوص استخراج ردیف های دیتابیس از جدول و ستون خاص است، البته متوجه منظورتان از "... قسمت قسمت کنم نمایشش بدم ..." نشدیم، در مجموع باید نمونه داده ای از دیتابیس و خروجی مورد نظرتان وجود داشته باشد تا بتوانیم راه حل ارائه کنیم، چه اطلاعاتی در دیتابیس ذخیره شده؟ چه خروجی و به چه شکل مد نظر است؟
۰۰:۲۷ ۱۴۰۰/۰۶/۱۱
سلام.
تو پروژه می خوام که چند پست را از دیتابیس فراخوانی کنم به شرطی که خودم چند آیدی که تعریف کردم بره تو دیتابیس و آیدی هایی که دادم (چند مورد) پست هاشو بگیره و چاپ کنه الان باید sql اینو چجوری بنویسم لطفا راهنمایی کنید ممنون.
به شیوه های مختلف می توانید پرس و جوی شامل چند ID را آماده سازی و اجرا کنید، به فرض اگر ID ها به شکل آرایه باشند (ارسال شده از فرم با قابلیت multiple):
<?php
$ids = array('3', '5', '10');
$sql = "SELECT id FROM posts WHERE id IN(" . implode(',', $ids) . ") LIMIT 10;";
//echo $sql;
?>
یا
<?php
$ids = array('3', '5', '10');
$or_str = '';
$loop = 1;
foreach($ids as $key => $value){
$or_str .= ' id = ' . $value;
if($loop < count($ids)){
$or_str .= ' OR ';
}
$loop++;
}
$sql = "SELECT id FROM posts WHERE " . $or_str . " LIMIT 10;";
//echo $sql;
?>
قاعدتا اینها فقط ساختار اولیه و جهت راهنمایی بیشتر هستند، برای نوشتن کد کاربردی باید بحث ایمن سازی پارامترهای به کار رفته در پرس و جوی MySQL را هم رعایت کنید.
اکرم
۱۸:۲۱ ۱۳۹۹/۰۲/۰۳
سلام چطوری میشه محصولات جدید رو از دیتابیس با php بگیریم و درسایت به نمایش بزاریم
سوالتان کلی است، باید دوره آموزش مقدماتی PHP و MySQL را فرا بگیرید در این صورت با اجرای پرس و جوی SELECT (مبحث این آموزش) می توانید محتوا را از دیتابیس استخراج و در صفحه وب به نام دلخواه نمایش دهید.
امیررضا نایجی
۱۸:۵۶ ۱۳۹۸/۰۳/۲۲
سلام
وقتی از select استفاده میکنم میخوام جدولی که برگشت داده میشه به 4 قسمت 10 ردیفه تقسیم شه و 10 تای دوم برگشت داده شه. راهی هست؟
راه حل این موارد در MySQL استفاده از دستور LIMIT است، لطفا در این رابطه عبارت "صفحه بندی با PHP و MySQL + وبگو" را در گوگل جستجو کنید، مطلب مجزایی در سایت در این خصوص منتشر شده است.
حسین
۰۹:۲۰ ۱۳۹۷/۱۰/۰۲
سلام. خسته نباشید.
چطوری میشه از یک ستون از جدول که یه رشته رو ذخیره کرده گوئری select رو اجرا کرد. مثلا یه ستون رشته مقابل رو داره: (1,2,3,4).
حالا اگه بخوام سطرهایی رو SELECT کنیم که عدد 3 داخل ستون مورد نظر اون سطرها باشه رو انتخاب کنه از چه دستوری باید استفاده کنیم؟
می توانید بسته به موقعیت از روش هایی مانند دستور LIKE یا دستور REGEX در MySQL استفاده کنید، مثال:
SELECT `col` FROM `table` WHERE `col` LIKE '%3%' LIMIT 10

SELECT `col` FROM `table` WHERE `col` REGEXP '(.*)3(.*)' LIMIT 10
باید توجه کنید که این نوع ساختار بهینه نیست و اگر در پرس و جو به همراه دیگر تکنیک ها مانند استفاده از ستون های ایندکس گذاری شده و LIMIT استفاده نشود در دیتابیس های حجیم باعث کندی عملکرد خواهد شد.
نکته: در حالت REGEX اگر می خواهید مقادیری مانند 33 انتخاب نشود می توانید دستور را به صورت نمونه زیر درج کنید:
REGEXP '(.*)3([^3]*)'
فهیمه
۱۵:۱۵ ۱۳۹۷/۰۸/۱۲
سلام من یه سوال داشتم داده های یه جدول رو داخل یه فرم که بصورت جدوله نشون دادم حالا میخوام رو هر سطری که کلیک میکنم داده های اون سطر حذف شه چه کدی باید بزنم
سوالتان کلی است، باید سورس کدها در دسترس باشند، اگر بخواهید صرفا سلول های جدول را از خروجی HTML حذف کنید استفاده از جاوا اسکریپت کفایت می کند، البته قاعدتا نوشتن کدها بستگی به خروجی صفحه دارد.
https://www.w3schools.com/jsref/met_tablerow_deletecell.asp
اما اگر بخواهید مقدار مورد نظر واقعا از دیتابیس حذف شود باید از ای جکس و PHP در کنار جاوا اسکریپت استفاده کنید.
اکبر
۱۳:۲۹ ۱۳۹۷/۰۵/۱۰
بخاطر جوابی که دادین خیلی ممنونم لطف کردید اما حل نشد خطا گرفت به این راحتيا نیست خیلی قبلا باهاش ور رفتم فک نکنم به این سادگی که گفتید بشه حلش کرد ولی لطف کردین مرسی حالا خودم یه کارش میکنم مرسي
راه حل همین است (پاسخ قبلی ویرایش شد)، اگر خطای خاصی دریافت می کنید متن آن را درج کنید تا بررسی و رفع گردد، البته خطایابی در این موارد نیازمند دسترسی به سورس کدها و آزمایش و خطا است، ممکن است یک ایراد جزئی (به فرض خطای Syntax در کدنویسی) موجب از کار افتادن کل برنامه شود.
اکبر
۲۳:۰۷ ۱۳۹۷/۰۵/۰۹
http://s9.picofile.com/file/8333244718/Aks.png
تو عکس بالا که کد php هستش من بجای اون جیمیلی که نوشتم چطور یه متغیر تعریف کنم
یه ایمیل رو دارم به سمت سرور ارسال میکنم اونو بلدم و انجام دادم چطور اونو تو این کد تو پی اچ پی دریافت کنم و بجای اون آدرس جیمیل تعریف کنم یعنی هر چی که کاربر فرستاده بود اون جیمیل اون آدرس جیمیلی بشه که کاربر فرستاده کسی هم میدونه کمک کنه ممنون میشم
برای انجام این کار بهتر است از prepare و execute در PDO استفاده کنید، به طور مثال:
$input_name = $_POST['input_name'];
$stmt = $pdo->prepare("SELECT * FROM tbl_name WHERE col_name = ?");
$stmt->bindValue(1, $input_name, PDO::PARAM_STR);
$stmt->execute();
با توجه به این مثال اطلاعات از فیلد input فرم در سمت کاربر دریافت می شود.
navid
۱۹:۳۳ ۱۳۹۷/۰۳/۱۸
ممنون از پاسختون
منظورم از این سوال اینه که، چگونه در جدول زیرمجموعه هر فرد با id خاص خود که در جدول register ذخیره شده است، ذخیره شود؟
می توانید در جدول زیرمجوعه دو ستون داشته باشید، ستون برای id کاربر اصلی و ستون برای id کاربر زیر مجموعه او که این اطلاعات از جدول register دریافت و در هنگام INSERT اطلاعات در جدول زیرمجموعه وارد می شوند، برای مدیریت ارتباط این جداول هم می توانید از کدنویسی PHP استفاده کنید و هم بین دو جدول ارتباط داخلی برقرار کنید که در این حالت باید id را در جدول register به صورت PRIMARY KEY در نظر گرفته و در جدول زیرمجموعه از FOREIGN KEY استفاده کنید، مثال و راهنمایی بیشتر:
https://stackoverflow.com/questions/8217742/one-to-many-mysql
navid
۱۶:۲۲ ۱۳۹۷/۰۳/۱۴
با سلام خدمت شما
من یک جدول به نام register در mysql ساخته ام که افرادیکه در سایت ثبت نام میکنند، مشخصاتشان در آن ذخیره میشود و یک کد خاص به هر فرد داده میشود و همچنین یک جدول دیگری به نام <<زیرمجموعه>> ساخته ام که در این صفحه، برخی کاربران میتوانند کاربران دیگری را به زیرمجموعه خود در بیاورند.
سوال من این است که چگونه در جدول دوم (جدول زیر مجموعه) برای شناسایی افراد، از کدهای جدول اول (جدول register) استفاده شود؟
سوالتان کلی است! معمولا ستون یکتا مانند ستون id برای این کار کاربرد دارد، به طور مثال هر کاربر در جدول register یک id منحصر به فرد (از نوع AUTO_INCREMENT) داشته باشد و از این شماره id در جداول دیگر برای شناسایی کاربران استفاده شود، پرس و جوها را هم می توان به شکل معمول (چند پرس و جوی مجزا) نوشت و هم از پرس و جوهای ترکیبی با JOIN، IN و روش های مشابه استفاده کرد که بستگی به ساختار کلی دیتابیس، نیاز برنامه و تا حدودی سلیقه برنامه نویس دارد.
محمد
۱۴:۴۱ ۱۳۹۷/۰۳/۱۱
ممنون از جوابتون
ولی من ارسال اطلاعات از طریق متد post انجام دادم که توی آدرس مرورگر چیزی نمینویسه حالا چطوری باید id گرفت و وقتی کاربر روی دکمه ویوو کلیک کرد اطلاعات اون فیلد جداگانه به نمایش گذاشت.
ممنون از وقتی که میذارین.
تفاوت صرفا در نحوه ارسال و دریافت پارامتر id است، در صورتی که می خواهید از متد POST استفاده کنید یک راه ساده ایجاد یک فیلد input از نوع hidden و درج شماره id به عنوان پارامتر value است، مثال:
<input type="hidden" name="id" value="2">
سپس این پارامتر را که به همراه فرم ارسال می شود در سمت سرور با متد POST در PHP دریافت می کنیم:
$id = $_POST['id'];
بر همین اساس می توانیم پرس و جوی SELEC بنویسیم و موارد دلخواه را از دیتابیس استخراج کنیم.
نکته: در PHP و در کل برنامه نویسی اغلب موارد به صورت داینامیک انجام می شوند، به فرض درج شماره id در قسمت value می تواند در هنگام چاپ خروجی اولیه و نمایش جدول اطلاعات در حلقه صورت بگیرد، به فرض:
$input = '<input type="hidden" name="id" value="'. $row['id'] . '">';
لذا داشتن تجربه و مهارت های مقدماتی برنامه نویسی جزء ملزومات اولیه کار است.
محمد
۰۱:۴۶ ۱۳۹۷/۰۳/۰۹
با سلام و تشکر از سایت خوبتون
من توی پروژم از php و mysqli استفاده میکنم توی پروژه من یک سری اطلاعات از دیتابیس روی صفحه نمایش دادم به صورت جدولی با سه دکمه برای وییو و ویرایش و حذف حالا سوالم اینه چطور میتونم وقتی کاربر روی دکمه وییو کلیک کرد اطلاعات اون سطر رو به کاربر توی یه جدول دیگه نشون بده
ممنون از همکاریتون
سوالتان کلی است! ابتدا باید پارامتر مربوط به ردیف مورد نظر را از طریق آدرس URL انتقال دهیم، این پارامتر معمولا شماره ID ردیف است، به فرض:
localhost/index.php?action=view&id=2
در فایل فرضی index.php با استفاده از متد GET شماره ID را دریافت کرده
$id = $_GET['id'];
و ضمن رعایت اصول امنیت پایگاه داده بر اساس آن یک پرس و جوی SELECT نوشته و اطلاعات ردیف مورد نظر را از دیتابیس استخراج می کنیم، سپس خروجی HTML را با استفاده از تگ table و اطلاعات دریافت شده ایجاد و در نهایت به مرورگر ارسال می کنیم، قاعدتا برای نوشتن این مراحل باید برنامه نویسی PHP بلد باشیم.
امیر
۰۴:۵۵ ۱۳۹۶/۰۵/۲۴
واقعا دمتون گرم چند روز بود که گرفتار شده بودم بخدا ، مشکلم رو در چند دقیقه شما حل کردید
سپاسگزارم
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
6 × 8
20 × 20
=