بایگانی برچسب: s

آموزش PHP – جلسه پانزدهم: حذف داده ها از بانک اطلاعاتی MySQL

در این جلسه از سری آموزش‌های پی‌اچ‌پی، قصد داریم تا آخرین عملیاتی که نیاز داریم در ارتباط با بانک‌های اطلاعاتی فرا بگیریم را به شما آموزش دهیم. در چند جلسه گذشته روش اتصال به MySQL، درج، ویرایش و مشاهده اطلاعات را فرا گرفتید. در این بخش قصد داریم روش حذف اطلاعات ذخیره شده در بانک‌های اطلاعاتی MySQL را از طریق PHP به شما آموزش دهیم. در ادامه با ما همراه باشید.

همان‌طور که می‌دانید در کار با داده‌ها و ذخیره اطلاعات ۴ عملیات اصلی را پیش رو داریم؛ درج، خواندن، ویرایش و حذف اطلاعات. گاهی نیاز پیدا می‌کنید تا یکسری از داده‌های موردنظرتان را از جداول MySQL حذف کنید. برای انجام این عملیات نیز باید از کوئری مخصوص حذف داده‌ها استفاده کنیم.

پیش از ادامه این مبحث یک مرور کلی بر بانک اطلاعاتی CMS و جدول posts خواهیم داشت. در این جدول همان‌طور که می‌دانید سه فیلد برای هر مطلب در نظر گرفتیم. فیلد id برای نگه‌داری شناسه منحصربفرد عددی هر مطلب، فیلد title به منظور نگه‌داری عنوان مطالب و فیلد text برای نگه‌داری متن مطلب. پس هر رکورد در جدول posts شامل این سه فیلد است. اما برای حذف اطلاعات نیز نیاز به id منحصربفرد رکوردها خواهید داشت. البته اگر بخواهید تمام رکوردها را با هم و به صورت یکجا حذف کنید نیازی به شناسه یکتای id نداریم. حال به ادامه آموزش می‌پردازیم.

نرم‌افزار Xampp را باز کرده و سرور آپاچی و MySQL را اجرا کنید. حالا فایل edit.php که در جلسه قبلی ایجاد کردیم را باز کرده و کدهای قبلی را پاک کرده و کد زیر را در آن قرار دهید:

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>ویرایش مطلب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

//select all records from posts table

$get_query = mysql_query(“SELECT * FROM `posts`”);

//now using while for get each record sepratly and show it to web browser

while ($fetch_result = mysql_fetch_array($get_query))

{

$postTitle = $fetch_result[‘title’];

$postText = $fetch_result[‘text’];

$postId = $fetch_result[‘id’];

echo “<h2><a href=single.php?id=$postId>$postTitle</a> (<a href=editpost.php?id=$postId>ویرایش</a>) – (<a href=deletepost.php?id=$postId>حذف</a>)</h2>”;

}

?>

</center>

</body>

</html>

تنها تغییری که در این فایل ایجاد کردیم، اضافه کردن یک لینک ثابت جدید برای حذف هر مطلب است. همان‌طور که جلسه پیش یک لینک ثابت برای ویرایش هر مطلب ایجاد کردیم به همان صورت یک لینک دیگر با عنوان حذف برای هر مطلب ایجاد کرده‌ایم و لینک مقصد آن را deletepost.php تعیین کرده‌ایم. همچنین شناسه منحصربفرد هر پست را با متغیر id? به فایل deletepost.php ارسال کرده‌ایم تا از این طریق بتوانیم پست انتخابی را حذف کنیم. مطمئنا با توجه به توضیحات کاملی که تاکنون در این مورد ارائه داده‌ایم، می‌دانید که دلیل این کار چیست. پس از اجرای این فایل باید صفحه وب شما شبیه به زیر باشد:

bdfe2c2b-4521-4cd9-919d-af4ac5169e62

حال یک فایل جدید به نام deletepost.php ایجاد کرده و کدهای زیر را در آن قرار دهید:

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>حذف پست</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

$pid = $_GET[‘id’];

//delete query

$get_query = mysql_query(“DELETE FROM `posts` WHERE `id` = ‘$pid’ “);

if($get_query){

echo “حذف مطلب مورد نظر با شناسه $pid با موفقیت انجام شد.”;

}else{

echo “مشکلی در حذف پست مورد نظر رخ داده است.”;

}

?>

</center>

</body>

</html>

حال به بررسی کد بالا می‌پردازیم. از آنجا که شناسه پست موردنظر را از طریق آدرس URL به فایل deletepost.php ارسال کرده‌ایم، با استفاده از کد:

$pid = $_GET[‘id’];

شناسه id پست مورد نظر را در متغیر pid ذخیره کرده‌ایم. سپس کوئری مخصوص حذف داده‌ها را به صورت زیر نوشته‌ایم:

$get_query = mysql_query(“DELETE FROM `posts` WHERE `id` = ‘$pid’ “);

ابتدا کلمه کلیدی DELETE را نوشته و سپس FROM را می‌نویسم و پس از این دو کلمه نام جدولی که قصد حذف اطلاعات از آن را داریم می‌نویسیم. از آنجا که نام جدول ما posts است پس همین نام را نوشته و سپس مانند جلسات قبل از دستور WHERE استفاده می‌کنیم تا یک شرط برای اجرای این کوئری تعیین کنیم. پس از این کلمه اعلام می‌کنیم که تمام اطلاعات مربوط به رکوردی که id آن برابر مقدار ذخیره شده در pid است و در جدول posts قرار دارد را حذف کند. اگر این کوئری به درستی و با موفقیت انجام شود، متغیر get_query برابر true خواهد بود و اگر به درستی اجرا نشود و مشکلی در اجرای این کوئری پیش بیاید، مقدار ذخیره شده در متغیر get_query برابر false خواهد شد.

سپس با یک دستور شرطی if بررسی می‌کنیم که آیا کوئری حذف به درستی انجام شده یا خیر. اگر عملیات حذف انجام شده باشد پیغامی مبنی بر موفقیت‌آمیز بودن حذف مطلب موردنظر نمایش خواهد یافت. در غیر این صورت پیام عدم حذف مطلب انتخابی نمایش می‌یابد. فرض کنید روی لینک حذف یکی از مطالب کلیک کرده‌ایم. در صورتی که همه چیز را به درستی انجام داده باشید پس از کلیک روی لینک حذف باید با صفحه‌ای مشابه زیر مواجه شوید.

۳dd97d46-0391-450f-9124-b5dd2095a863آنچه تاکنون انجام داده‌ایم برای حذف تکی مطالب بود. گاهی نیاز است یک گزینه برای حذف همه رکورد‌ها نیز در اختیار داشته باشیم. برای انجام این کار فایل edit.php را باز کرده و آن را به صورت زیر اصلاح کنید. یک لینک در زیر تمامی مطالب قرار می‌دهیم و عنوان آن را حذف کل مطالب تعیین می‌کنیم. همچنین مقصد این لینک را deleteall.php تعیین می‌کنیم. در نهایت فایل edit.php شما باید به صورت زیر باشد:

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>ویرایش مطلب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

//select all records from posts table

$get_query = mysql_query(“SELECT * FROM `posts`”);

//now using while for get each record sepratly and show it to web browser

while ($fetch_result = mysql_fetch_array($get_query))

{

$postTitle = $fetch_result[‘title’];

$postText = $fetch_result[‘text’];

$postId = $fetch_result[‘id’];

echo “<h2><a href=single.php?id=$postId>$postTitle</a> (<a href=editpost.php?id=$postId>ویرایش</a>) – (<a href=deletepost.php?id=$postId>حذف</a>)</h2>”;

}

?>

<hr>

<a href=”deleteall.php”>حذف همه مطالب</a>

</center>

</body>

</html>

البته می‌توانید لینک حذف کلی مطالب را در بالای لیست نیز قرار دهید و این مورد بستگی به سلیقه خودتان دارد. توجه کنید که این لینک را خارج از حلقه باید بکار ببرید زیرا اگر لینک همانند لینک ویرایش و حذف تکی مطالب در داخل حلقه باشد، به ازای هر مطلب یک لینک با عنوان حذف همه مطالب نیز به نمایش در خواهد آمد. پس از اعمال این تغییرات صفحه edit.php شما باید صورت زیر اجرا شود:

۹e443629-371e-4783-bb42-2ece2439488cحال یک فایل دیگر به نام deleteall.php ایجاد کنید و کدهای زیر را در آن قرار دهید:

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>حذف همه مطالب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

//select all records from posts table

$get_query = mysql_query(“DELETE FROM `posts`”);

if($get_query){

echo “تمامی مطالب با موفقیت جذف شدند”;

}else{

echo “مشکلی در حذف همه پست ها رخ داده است”;

}

?>

</center>

</body>

</html>

این فایل نیز دقیقا همانند فایل deletepost.php است با این تفاوت که این بار در کوئری حذف رکوردها شرط کوئری را برمی‌داریم تا همه رکوردها حذف شوند. در نتیجه کوئری زیر:

$get_query = mysql_query(“DELETE FROM `posts`”);

به بانک داده مای‌اس‌کیو‌ال اعلام می‌کند که تمام رکورد‌هایی که در جدول posts وجود دارد را حذف کند. مجددا با یک دستور شرطی بررسی می‌کنیم که اگر کوئری به درستی انجام شده باشد پیام موفقیت‌آمیز بودن حذف همه پست‌ها نمایش خواهد یافت و در غیر این‌صورت پیام عدم موفقیت در حذف پست‌ها نمایش می‌یابد. پس از کلیک روی لینک حذف همه مطالب در صورتی که همه مراحل را به درستی انجام داده باشید باید با صفحه‌ای مشابه زیر مواجه شوید:

۲۳۹۴۰f84-1c29-469d-8935-c607db1f6dd7تا اینجای کار شما پایه و اساس ۴ عملیات اصلی در کار با بانک‌های اطلاعاتی را فرا گرفته‌اید. دقت کنید این آموزش‌ها فقط برای درک کلی شما از عملیات‌ حذف، درج، ویرایش و مشاهده اطلاعات بوده و قطعا می‌توانستیم به جای ایجاد یک فایل برای هر عملیات تمامی کدها را به صورت منظم‌تر در یک فایل ایجاد کنیم. اما برای درک بهتر تصمیم گرفتیم برای هر عملیات یک فایل جدید ایجاد کنیم.

اما اگر بخواهیم سیستم مدیریت محتوای ساخته شده را کاربردی‌تر کنیم باید موارد بیشتری را در آن در نظر بگیریم. مثلا بخش حذف و درج و ویرایش مطالب فقط برای مدیر سایت در دسترس باشد. این جزئیات را به مرور در جلسات آینده به سیستم اضافه خواهیم کرد و مباحث جدیدی را نیز در خلال آن به شما آموزش می‌دهیم.

نکته دیگری که لازم می‌دانیم اعلام کنیم، این است که برخی از دوستان در نظرات اعلام کرده بودند که چرا از pdo یا mysqli استفاده نکرده‌ایم. در جواب این دوستان همان‌طور که بارها در نظرات هم پاسخ داده‌ایم، هدف ما آموزش پایه‌ای پی‌اچ‌پی است و در دروس آینده و پس از یادگیری مباحث شیء‌گرایی روش‌های نوین و جدیدتر آموزش داده خواهد شد. این آموزش‌ها برای افرادی در نظر گرفته شده که برای اولین بار قصد یادگیری پی‌اچ‌پی را دارند و در ادامه آموزش‌ها و مباحث پیشرفته‌تر روش‌های حرفه‌ای برنامه‌نویسی نیز در سطح متوسطه و حرفه‌ای آموزش داده می‌شود.

منبع: زومیت

آموزش PHP – جلسه چهاردهم: ویرایش داده در بانک اطلاعاتی MySQL

اگر پیگیر سری آموزشی پی‌اچ‌پی ما بوده باشید، می‌دانید که در چند جلسه قبل در مورد ارتباط با بانک اطلاعاتی MySQL صحبت کرده‌ایم. در این جلسه می‌خواهیم روش ویرایش داده‌ها را در بانک اطلاعاتی MySQL از طریق پی‌اچ‌پی به شما آموزش دهیم. در ادامه با ما همراه باشید.

در ادامه سری آموزش پی‌اچ‌پی قصد داریم تا روش ویرایش داده‌هایی که در بانک اطلاعاتی MySQL ذخیره کرده‌ایم را به شما آموزش دهیم. در کار با بانک‌های اطلاعاتی پیش از این نیز گفتیم که چند عملیات اصلی وجود دارد. در جلسات قبل روش اتصال به MySQL، افزودن داده‌ها و خواندن داده‌ها را مرور کردیم. اما یکی از مهمترین عملیاتی که حتما به آن نیاز پیدا می‌کنید ویرایش داده‌های ذخیره شده است.

در واقع می‌توان ویرایش اطلاعات در MySQL را ترکیبی از خواندن و درج داده دانست.

ویرایش داده‌ها در بانک اطلاعاتی MySQL

ابتدا مثل همیشه نرم‌افزار سرور مجازی Xampp را باز کرده و سرور آپاچی و مای‌اس‌کیو‌ال را اجرا کنید. پوشه cms که مربوط به پروژه ما می‌شود را باز کرده و یک فایل جدید به نام edit.php ایجاد کنید. در این فایل قصد داریم همانند روشی که اطلاعات را در فایل index به نمایش درآوردیم، لیست مطالب را نشان دهیم اما با این تفاوت که این‌بار فقط عنوان مطالب را نمایش می‌دهیم و در کنار هر مطلب یک گزینه برای ویرایش آن قرار می‌دهیم. حال کدهای زیر را در این فایل قرار داده و فایل را ذخیره کنید.

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>ویرایش مطلب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

//select all records from posts table

$get_query = mysql_query(“SELECT * FROM `posts`”);

//now using while for get each record sepratly and show it to web browser

while ($fetch_result = mysql_fetch_array($get_query))

{

$postTitle = $fetch_result[‘title’];

$postText = $fetch_result[‘text’];

$postId = $fetch_result[‘id’];

echo “<h2><a href=single.php?id=$postId>$postTitle</a> (<a href=editpost.php?id=$postId>ویرایش</a>)</h2>”;

}

?>

</center>

</body>

</html>

حال به بررسی کد بالا می‌پردازیم. ابتدا فایل config.php را در صفحه فراخوانی کرده‌ایم تا اتصال به بانک اطلاعاتی انجام شده و سپس جدول مورد نظر ما برای انجام عملیات‌ مختلف انتخاب شود. سپس همانند آنچه در مورد خواندن اطلاعات و در فایل index.php انجام دادیم، در این فایل نیز عنوان مطالب را با یک کوئری از بانک اطلاعاتی MySQL دریافت کرده و سپس آن‌ها را نمایش می‌دهیم. تفاوت این فایل با فایل index.php در این است که اینجا متن مطلب را نمایش نمی‌دهیم و در عوض، در جلو عنوان هر مطلب یک لینک با عنوان ویرایش قرار داده‌ایم و لینک آن را به فایلی به نام editpost.php ست کرده‌ایم. همانند لینک ثابتی که برای نمایش هر مطلب در فایل index ایجاد کردیم در این فایل نیز یک لینک پویا برای ویرایش هر مطلب ایجاد کرده‌ایم. 

از آنجا که شناسه id هر مطلب منحصر به فرد است، همین مشخصه از هر پست را برای ایجاد لینک منحصر به فرد ویرایش هر مطلب بکار برده‌ایم. بنابراین با کلیک روی لینک ویرایش هر مطلب، شناسه id آن مطلب را به فایل editpost.php ارسال می‌کنیم تا در آن فایل با دستور GET و مانند آنچه در بخش آموزش فرم‌ها توضیح داده بودیم، شناسه مطلب مورد نظر را دریافت کرده و براساس آن شناسه اطلاعات پست انتخاب شده را از بانک اطلاعاتی دریافت کنیم. پس از اجرای فایل edti.php باید صفحه‌ شما شبیه به زیر باشد. 

a078f562-2738-4bcf-8c59-190d65d3be5aحال یک فایل جدید به نام editpost.php ایجاد کنید و کدهای زیر را در آن قرار دهید.

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>ویرایش مطلب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<?php

include (“config.php”);

$pid = $_GET[‘id’];

//select post that its id = pid

$get_query = mysql_query(“SELECT * FROM `posts` WHERE `id` = ‘$pid’ “);

$fetch_result = mysql_fetch_array($get_query);

$postTitle = $fetch_result[‘title’];

$postText = $fetch_result[‘text’];

?>

<center>

<form action=”editpost2.php” method=”post”>

عنوان مطلب : <input type=”text” name=”postTitle” size=”40″ value=”<?php echo $postTitle;?>”><br>

متن مطلب: <br>

<textarea name=”postText” rows=”10″ cols=”50″>

<?php echo $postText;?>

</textarea>

<br>

<input type=”hidden” name=”postID” value=”<?php echo $pid;?>”>

<input type=”submit” value=”ثبت مطلب”>

</form>

</center>

</body>

</html>

همان‌طور که مشاهده می‌کنید باز هم ابتدا فایل config.php را فراخوانی می‌کنیم و دلیل آن را هم مطمئنا می‌دانید. سپس همانند کاری که در فایل single.php انجام دادیم، ابتدا از طریق دستور GET_$ شناسه پستی که قصد ویرایش آن را داریم دریافت کرده و با استفاده از یک کوئری شرطی، تمامی مشخصات مطلبی که شناسه آن را دریافت کرده‌ایم را از بانک اطلاعاتی بیرون می‌کشیم و عنوان و متن مطلب را در دو متغیر قرار می‌دهیم. سپس فرمی مانند فرمی که در فایل insert.php ایجاد کرده بودیم را ایجاد کرده ولی این بار بخش action را برابر editpost2.php قرار می‌دهیم زیرا قصد داریم محتویات این فرم به فایل editpost2.php ارسال شود.  

سپس در فرم خود برای فیلد عنوان یک خاصیت جدید به نام Value را تعریف کرده‌ایم تا مقدار عنوان دریافت شده از بانک اطلاعاتی را در آن قرار دهیم.

نکته‌ای که اینجا باید بدانید این است که می‌توان در کنار کدهای اچ‌تی‌ام‌ال به تعداد نامحدود کد پی‌اچ‌پی بکار ببریم ولی باید دقت کنید که هر بار تگ پی‌اچ‌پی را باز کردید باید آن را در جایی که نیاز است ببندید. ما در کد بالا پس از اینکه اطلاعات مطلب موردنظرمان را از بانک اطلاعاتی خود بیرون کشیده‌ایم، تگ پی‌اچ‌پی را بسته‌ایم و سپس فرم خود را ایجاد کرده‌ایم. مقدار مشخصه Value در فیلد عنوان مطلب را با یک کد پی‌اچ‌دی پر کرده‌ایم که به صورت زیر انجام شده است:

<?php echo $postTitle;?>

همان‌طور که می‌دانید این کد، متغیر postTitle را چاپ می‌کنید و هر مقداری که در مشخصه Value فیلدهای متنی قرار داده شود، به صورت پیش‌فرض در آن فیلد قرار داده خواهد شد. سپس در textarea مربوط به متن مطلب نیز به همین صورت و با استفاده از کد:

<?php echo $postText;?>

در این textarea قرار می‌دهیم. فرض کنید روی لینک ویرایش مطلب اول کلیک کرده‌ایم. همچنین قبل از دکمه ثبت فرم، یک فیلد مخفی تعریف کرده‌ایم که به صورت زیر است:

<input type=”hidden” name=”postID” value=”<?php echo $pid;?>”>

این فیلد به کاربر نمایش داده نمی‌شود چراکه نوع آن hidden تعیین شده است. اما سایر خواص این فیلد نیز همانند فیلدهای معمولی است. نام این فیلد postID تعیین شده و مقدار آن نیز برابر با شناسه مطلب است که قصد ویرایش آن را داریم و در بالای صفحه با استفاده از دستور GET_$ آن را در متغیری به نام pid ذخیره کرده بودیم.

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

c377b692-c983-41b1-b347-c8bbb442634b

به لینک این صفحه توجه کنید. در ادامه نام فایل id=1 است که نشان از این دارد که ما قصد ویرایش مطلبی که شناسه id آن برابر ۱ است را داریم. البته دقت کنید در نام‌گذاری متغیر URL می‌توانید به جای id از هر متغیر دیگری نیز استفاده کنید ولی در این صورت باید در فایل editpost.php نیز در محلی که با دستور GET_$ می‌خواهیم ای‌دی پست را دریافت کنیم، از نام انتخاب خود استفاده کنید.

همان‌طور که گفتیم، پس از اعمال تغییرات در این فرم، در صورتی که دکمه ثبت مطلب را کلیک کنیم، محتویات این فرم به صفحه‌ای به نام editpost2.php ارسال خواهد شد. پس باید فایلی به نام editpost2.php را نیز ایجاد کنید. پس از ایجاد این فایل کدهای زیر را در آن قرار دهید.

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>درج مطلب</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

$newtitle = trim ($_POST[‘postTitle’]);

$newText = trim ($_POST[‘postText’]);

$pid = $_POST[‘postID’];

if($newtitle != “” && $newText != “”){

//do insert

$query_res = mysql_query(“UPDATE `posts` SET `title` = ‘$newtitle’, `text` = ‘$newText’ WHERE `id` = ‘$pid'”);

if($query_res){

echo “مطلب با موفقیت ویرایش شد.”;

}else{

echo “مشکلی در ویرایش مطلب رخ داده است. مجددا تلاش کنید”;

}

}else{

echo ‘<a href=edit.php>لیست مطالب</a>’;

}

?>

</center>

</body>

</html>

در این فایل نیز پس از فراخوانی config.php، مقادیری که از فرم editpost.php ارسال شده را با روشی که پیش از این در جلسات قبلی آموخته‌اید در متغیرهایی به نام newTitle ،newText و pid ذخیره کرده‌ایم. سپس با یک دستور شرطی if بررسی می‌کنیم که کاربر مقادیر فیلدهای عنوان و متن مطلب را حتما وارد کرده باشد. اگر فیلد عنوان و متن مطلب خالی نباشد شرط برقرار بوده و عملیات ویرایش انجام خواهد شد.

برای ویرایش مطالب باید از کوئری UPDATE استفاده کنیم. همان‌طور که در کد بالا مشاهده می‌کنید، کد بروزسانی اطلاعات در جدول post به صورت زیر است:

$query_res = mysql_query(“UPDATE `posts` SET `title` = ‘$newtitle’, `text` = ‘$newText’ WHERE `id` = ‘$pid'”);

ابتدا دستور UPDATE را نوشته و سپس نام جدولی که قصد ویرایش رکوردهای آن را داریم می‌نویسیم. نام جدول ما در اینجا posts است و سپس کلمه کلیدی SET را اضافه می‌کنیم. حالا به تعداد فیلدهایی که قصد ویرایش آن‌ها را داریم ابتدا نام فیلد رکورد موردنظر را نوشته و سپس مقدار جدید را برابر = قرار می‌دهیم. در اینجا `title` = ‘$newtitle’ است که یعنی مقدار فیلد title برابر با مقدار جدیدی که در متغیر newTitle ذخیره کرده بودیم می‌شود. به همین صورت فیلدهای دیگر را نیز در این کوئری می‌نویسیم. 

در آخر باید یک شرط نیز برای کوئری خود تعیین کنیم و به MYSQL بگوییم که فقط مطلبی را ویرایش کند که شناسه id آن برابر متغیر pid است. اگر این شرط را ننویسید، تمامی رکوردها یعنی تمامی مطالب ذخیره شده در بانک اطلاعاتی ما و در جدول posts با مقادیر جدید جایگزین خواهند شد و قطعا ما نمی‌خواهیم این اتفاق رخ دهد. پس دلیل استفاده از شرطی که در انتهای این کوئری به‌کار برده‌ایم را اکنون می‌دانید.

در نهایت همانند آنچه در فایل ثبت مطلب انجام دادیم، با یک شرط بررسی می‌کنیم که آیا کوئری به درستی انجام شده یا خیر. اگر نتیجه کوئری که در متغیر query_res ذخیره شده true باشد پیغام موفقیت‌آمیز بودن ویرایش مطلب نمایش داده می‌شود و اگر false باشد، پیغامی مبنی بر عدم موفقیت ویرایش مطلب به کاربر نشان داده خواهد شد.

اگر مراحل را تا به این قسمت به درستی انجام داده باشید پس از اعمال تغییرات در پست موردنظر خود باید با صفحه‌ای مثل تصویر زیر مواجه شوید.

۷۱b55c63-2368-41f4-b995-0349553f22eaاگر با پیغام خطا مواجه شدید مراحل را به دقت بررسی کنید تا ایراد کار خود را یافته و آن را اصلاح کنید. خب، تا به اینجای کار سه عملیات اصلی و مهم را در کار با بانک‌های اطلاعاتی MySQL با استفاده از PHP فرا گرفته‌اید. مشاهده اطلاعات، درج اطلاعات و ویرایش اطلاعات ذخیره شده قبلی.

به عنوان تمرین این جلسه سعی کنید همانند آنچه در جلسه قبل گفته شد، فیلدهای بیشتری برای مطلب خود ایجاد کرده و در بخش ویرایش تمامی آن‌ها را بکار ببرید. مثلا فیلدی برای نام نویسنده و فیلد دیگری برای خلاصه مطلب و …. برای اضافه کردن فیلد جدید دقیقا همان‌طور که در آموزش‌های جلسات قبل توضیح دادیم عمل کنید و فقط برای فیلدهای جدید خود نام‌های جدیدی در نظر گرفته و در بخش‌های مختلف نظیر نمایش اطلاعات، و ویرایش و اضافه کردن اطلاعات، بخش‌های لازم برای نمایش و ویرایش آن‌ فیلدها را نیز ایجاد کنید.

در جلسه بعدی روش حذف اطلاعات دلخواه از بانک داده مای‌اس‌کیو‌ال را فرا خواهید گرفت.
منبع: زومیت

آموزش PHP – جلسه سیزدهم: خواندن داده‌ها از بانک اطلاعاتی MySQL

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

همان‌طور که گفتیم این جلسه در مورد خواندن اطلاعات از جداول بانک‌ اطلاعاتی MySQL صحبت می‌کنیم. اما این کار به چه منظور انجام می‌شود؟ انتخاب اطلاعات و خواندن آن‌ها برای نمایش این اطلاعات به کاربر یا انجام عملیات‌ دیگر انجام می‌شود.

خواندن اطلاعات از MySQL

ابتدا نرم‌افزار Xampp را مثل همیشه باز کرده و سرورهای Apache و MySQL را در حالت اجرا قرار دهید. حال  پوشه cms که جلسات قبل آن را ایجاد کرده‌اید، باز کنید.

در این پوشه یک فایل جدید به نام index.php بسازید. این صفحه قرار است به منظور نمایش اطلاعات مورد استفاده قرار گیرد. در این صفحه ما با استفاده از دستورات پی‌اچ‌پی و مای‌اس‌کیو‌ال، اطلاعات مربوط به پست‌های ثبت شده در جدول posts که در بانک اطلاعاتی cms ساخته بودیم را می‌خوانیم و آن‌ها را در مرورگر به نمایش درمی‌آوریم. کد زیر را در فایل index.php قرار دهید تا در ادامه آن را بررسی کنیم و کار هر خط از این کد را برایتان توضیح دهیم.

<!DOCTYPE html>
<html dir=”rtl” lang=”fa-IR”>
<head>
<title>صفحه اصلی</title>
<meta charset=”utf-8″ />
</head>
<body style=”font-family: tahoma; font-size:14px;”>
<center>
<?php
include (“config.php”);
//select all records from posts table
$get_query = mysql_query(“SELECT * FROM `posts`”);
//now using while for get each record sepratly and show it to web browser
while ($fetch_result = mysql_fetch_array($get_query))
{
$postTitle = $fetch_result[‘title’];
$postText = $fetch_result[‘text’];
echo “<h2>$postTitle</h2>”;
echo “<p>$postText</p><hr>”;
}
?>
</center>
</body>
</html>

همان‌طور که در کد بالا می‌بینید ابتدا با دستور inlcude فایل اتصال به بانک اطلاتی و انتخاب جدول cms که config.php نام دارد را در این فایل فراخوانی می‌کنیم. حالا می‌توانیم به جدول موردنظر که در اینجا posts است کوئری زده و عملیات موردنظرمان را انجام دهیم. با دستور SELECT جدول و فیلدهای موردنظر را انتخاب می‌کنیم و آن را در یک آرایه به نام posts_query ذخیره می‌کنیم.

کوئری موردنظر برای انتخاب داده‌ها به این صورت است که ابتدا کلمه SELECT را نوشته و سپس نام فیلد‌هایی که قصد خواندن آن‌ها را داریم وارد می‌کنیم و آن‌ها را با کاما انگلیسی از یکدیگر جدا می‌سازیم. البته اگر بخواهیم تمام فیلد‌ها را با هم بخوانیم کافی است از کاراکتر ستاره (*) یعنی همان‌طور که ما در کد بالا نوشته‌ایم استفاده کنیم. سپس کلمه کلیدی FROM و بعد از آن نام جدولی که قصد خواندن اطلاعاتش را داریم می‌نویسیم.

حال با استفاده از حلقه while تا زمانی که در جدول post رکورد وجود دارد پست‌ها را گرفته و نمایش می‌دهیم. در شرط حلقه خروجی تابع mysql_fetch_array را در یک آرایه دیگر به نام fetch_results ذخیره می‌کنیم. به‌طور هم‌زمان این شرط باعث می‌شود تا حلقه به تعداد رکوردهایی (مطالبی) که در جدول posts وجود دارد تکرار شود. در هر بار تکرار شدن این حلقه اطلاعات فیلدهای مختلف هر رکورد در آرایه fetch_results ذخیره می‌شود. برای دسترسی به اطلاعات هر فیلد از هر رکورد باید نام آن فیلد را در کروشه جلوی آرایه fetch_results بنویسیم. همان‌طور که در کد بالا می‌بینید ما فیلد‌های title و text را فراخوانی کرده‌ایم. 

اگر این کد برای شما مبهم است اصلا جای نگرانی نیست چراکه اکثر برنامه‌نویسان پی‌اچ‌پی برای فراخوانی چند رکورد از بانک‌های اطلاعاتی mysql از همین روش یا روش‌های مشابه دیگر بهره می‌برند. در ادامه آموزش‌ها با روش‌های دیگر نیز آشنا خواهید شد. نکته بسیار مهمی که باید بدانید این است که باید عملیات فراخوانی اطلاعات از جداول بانک‌های اطلاعاتی را تا جایی که دست‌تان برای این کار روان شود تمرین و تکرار کنید.

حالا آدرس http://127.0.0.1/cms/index.php را در مرورگر اجرا کنید. اگر خاطرتان باشد نوع یونیکد فیلدهای جداول بانک اطلاعاتی را از نوع utf-8 تعیین کردیم تا بتوانیم متون فارسی را در جدول posts ذخیره کنیم. حال اگر پروژه را با آدرسی که گفتیم اجرا کنید با صفحه‌ای مانند زیر مواجه خواهید شد و کاراکترها همگی به صورت علامت سوال نمایش می‌یابند.

cbd12f2c-a3c0-49e1-b534-5b4ea7d36089اما باز هم جای نگرانی نیست. این مشکل به دلیل نوع اتصال به بانک اطلاعاتی رخ داده و برای رفع آن باید فایل config.php را کمی ویرایش کنید. در واقع باید نوع اتصال را هم utf-8 تعیین کنیم که این کار بسیار آسان است. فایل config.php را باز کنید و آن را به صورت زیر تغییر دهید. در واقع کد زیر را جایگزین کد کنونی کنید.

<?php
$dbhost = “localhost”;
$dbuser = “root”;
$dbname = “cms”;
$dbpass = “”;
$connect_db = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_set_charset(‘utf8’,$connect_db);
mysql_select_db($dbname,$connect_db);
?>

همان‌طور که می‌بینید در خط ۷ کد بالا از تابع mysql_set_charset استفاده کرده‌ایم. پس از اتصال به بانک داده و پیش از انتخاب جدول موردنظر، باید این کد را استفاده کنید. این تابع دو آرگومان ورودی دارد که ورودی اول نوع یونیکد موردنظر برای اتصال به سرور MySQL و ورودی دوم لینک تابع اتصال به بانک داده خواهد بود که در اینجا connect_db است.

حالا اگر مجددا به صفحه http://127.0.0.1/cms/index.php مراجعه کنید مشکل رفع شده و متون فارسی به درستی نمایش یافته‌اند. اگر خاطرتان باشد گفتیم که استفاده از include باعث می‌شود در صورت نیاز به انجام تغییرات، با تغییر یک فایل می‌توان این تغییرات را در تمامی فایل‌ها اعمال کرد.

۵۰۴۳۴b02-620b-4f39-a972-e7f4412163a8اگر همه چیز را به درستی انجام داده باشید نتیجه کار باید شبیه به عکس بالا باشد و متون فارسی به درستی نمایش یابند.

ایجاد صفحه اختصاصی برای هر پست

اگر دقت کرده باشید در اکثر سایت‌های محتوایی، هر مطلب یک لینک ثابت دارد که معمولا با کلیک روی عنوان آن به صفحه مخصوص مطلب منتقل می‌شوید. برای اینکه یک صفحه منحصر به فرد برای هر مطلب ایجاد کنیم باید از مشخصه‌ای در هر پست بهره ببریم که یکتا باشد. هنگام طراحی جدول posts فیلد id را به نحوی تعیین کردیم که با ایجاد هر رکورد در جدول یک واحد افزایش یابد. پس می‌توان با استفاده از همین id برای هر پست یک صفحه اختصاصی ایجاد کرد.

اگر به‌‌یاد داشته باشید گفتیم از روش GET که در ثبت فرم‌ها آن‌ را توضیح دادیم می‌توان استفاده‌های مناسبی در پی‌اچ‌پی کرد. یکی از بهترین استفاده‌ها ایجاد صفحه اختصاصی برای هر پست است. کافی است بعد از خط ۲۰ یعنی:

$postText = $fetch_result[‘text’];

یک خط جدید اضافه کنید. خط زیر را پس از خط ۲۰ اضافه کنید تا آی‌دی هر پست را با هربار اجرای حلقه مانند عنوان و متن پست‌ها دریافت کنیم و آن را در یک متغیر به نام postId ذخیره کنیم.

$postId = $fetch_result[‘id’];

حالا کد:

echo “<h2>$postTitle</h2>”;

را به:

echo “<h2><a href=single.php?id=$postId>$postTitle</a></h2>”;

تغییر دهید. به این طریق یک لینک منحصر به فرد برای هر مطلب ایجاد کرده‌ایم. به عنوان مثال اگر روی مطلب اول کلیک کنیم به لینک http://127.0.0.1/cms/singe.php?id=1 منتقل خواهیم شد. حالا به راحتی می‌توان با دستورات پی‌اچ‌پی اطلاعات پستی که آی‌دی آن ۱ است را نشان دهیم.

ابتدا یک فایل جدید در پوشه cms ایجاد کرده و نام آن را single.php بگذارید. در این فایل کدهای زیر را قرار دهید:

<!DOCTYPE html>

<html dir=”rtl” lang=”fa-IR”>

<head>

<title>مشاهده پست</title>

<meta charset=”utf-8″ />

</head>

<body style=”font-family: tahoma; font-size:14px;”>

<center>

<?php

include (“config.php”);

$pid = $_GET[‘id’];

//select all records from posts table

$get_query = mysql_query(“SELECT * FROM `posts` WHERE `id` = ‘$pid’ “);

$fetch_result = mysql_fetch_array($get_query);

$postTitle = $fetch_result[‘title’];

$postText = $fetch_result[‘text’];

echo “<h2>$postTitle</h2>”;

echo “<p>$postText</p><hr>”;

?>

</center>

</body>

</html>

این کد نیز شبیه به کد index.php است با این تفاوت که این بار در کوئری انتخاب داده از بانک اطلاعاتی تغییراتی وجود دارد و نیز دیگر نیازی به استفاده از حلقه نداریم زیرا در اینجا فقط قصد داریم یک رکورد را از جدول posts بخوانیم.

مثل همیشه ابتدا config.php را با دستور include فراخوانی کرده و سپس با دستور GET_$ همان‌طور که در جلسه آموزش فرم‌ها گفتیم، شناسه پست موردنظر را در متغیری به نام pid ذخیره می‌کنیم.

حال باید کوئری را با یک شرکت به کار ببریم. مانند کوئری فایل index.php دستور اولیه را نوشته و در ادامه آن کلمه کلیدی WHERE را می‌نویسیم. این کلمه به بانک اطلاعاتی می‌گوید که ما دقیقا دنبال چه رکورد یا رکوردهایی هستیم. در اینجا ما به دنبال رکوردی هستیم که فیلد id آن برابر با یک است پس فیلدی که باید بررسی شود id است. حال نام فیلد را هم نوشته و پس از علامت = نام متغیری که شناسه آی‌دی پست موردنظر را در خود دارد می‌نویسیم. به طور خلاصه می‌توان گفت این کوئری در جدول posts به دنبال فیلدی می‌گردد که شناسه id آن برابر با عدد ۱ است.

همان شرطی که در فایل index در حلقه به کار بردیم را این‌بار بدون حلقه مورد استفاده قرار می‌دهیم و همانند فایل index از طریق آرایه‌ها به مقادر فیلد‌های پست موردنظر دسترسی می‌یابیم.

حال سیستم مدیریت محتوای ما کامل‌تر شده و می‌توان با آن مطلب ارسال کرد، پست‌ها را مشاهده کرد و نیز با کلیک روی عنوان هر پست به صفحه اختصاصی آن پست منتقل شد.

فایل index.php نهایی به شکل زیر خواهید بود-

e7574165-96f2-4984-82a1-7667af6e279cهمچنین فایل single.php پس از کلیک روی عنوان اولین مطلب به شکل زیر است:

c4fefc71-2cbe-4def-99b0-08a4450875e9امیدواریم از این جلسه نیز نهایت استفاده را برده باشید. برای تمرین سعی کنید برای جدول posts فیلدهای بیشتری تعریف کنید. مثلا یک فیلد برای خلاصه متن مطلب هم ایجاد کنید و با توجه به آنچه تا‌کنون یاد گرفته‌اید هنگام درج مطلب به کاربر اجازه دهید تا سه فیلد را برای هر مطلب پر کند. سپس در صفحه index خود خلاصه و عنوان پست را نمایش دهید و در صفحه اختصاصی هر پست در فایل single.php متن کامل مطلب را به نمایش بگذارید.

در جلسات آینده روش بروزرسانی اطلاعات ثبت شده و نیز حذف آن‌ها را خواهید آموخت. در صورت داشتن هر گونه سوال آن را در بخش نظرات اعلام کنید. 

منبع: زومیت

 

آموزش PHP – جلسه دوازدهم: درج اطالاعات در بانک اطلاعاتی MySQL

در جلسه قبل، از سری آموزش‌های پی‌اچ‌پی شما را با نحوه اتصال به بانک اطلاعاتی MySQL آشنا کردیم. در ادامه قصد داریم نحوه درج اطلاعات جدید به جداول موردنظرمان در بانک اطلاعاتی که ساخته‌ایم را به شما توضیح دهیم. در ادامه مطلب با ما همراه باشید.

همان‌طور که گفتیم، ۴ عملیات اصلی در کار با بانک‌های اطلاعاتی وجود دارد. درج اطلاعات، مشاهده، حذف و نهایتا ویرایش اطلاعات. در این جلسه روش درج اطلاعات جدید به جدول Posts که در بانک داده CMS ساختیم را به شما آموزش دهیم.

اگر جلسه قبل را مطالعه نکرده‌اید لازم است پیش از ادامه مطالعه این مبحث، جلسه قبل را به‌خوبی فرا بگیرید. برای درج اطلاعات جدید به بانک اطلاعاتی ایجاد شده در جلسه قبل ابتدا باید یک فرم مناسب طراحی کنیم. پیش از هر چیز نرم‌افزار Xampp را اجرا و دو سرور apache و mysql را درست همانند جلسه قبل فعال کنید. یک فایل جدید در پوشه cms که جلسه قبل ساخته بودید ایجاد کنید و نام آن را insert.php بگذارید. در این فایل یک فرم برای درج مطلب جدید در جدول posts از بانک اطلاعات cms طراحی می‌کنیم. از آنجا که نیاز به دو فیلد برای درج هر رکورد جدید در جدول posts داریم پس برای فرم درج مطلب نیز باید دو فیلد را در نظر بگیریم. یک فیلد متنی برای عنوان و یک textarea برای متن مطلب. کد زیر را در فایل insert.php وارد کنید.

<!DOCTYPE html>
<html dir=”rtl” lang=”fa-IR”>
<head>
<title>درج مطلب</title>
<meta charset=”utf-8″ />
</head>
<body style=”font-family: tahoma; font-size:14px;”>
<center>
<form action=”sendpost.php” method=”post”>
عنوان مطلب : <input type=”text” name=”postTitle” size=”40″><br>
متن مطلب: <br>
<textarea name=”postText” rows=”10″ cols=”50″></textarea>
<br>
<input type=”submit” value=”ثبت مطلب”>
</form>
</center>
</body>
</html>

در فرم بالا یک فیلد به نام postTitle و دیگری به اسم postText وجود دارد. همچنین محتویات فرم با متد post به صفحه‌ای به نام sendpost.php ارسال می‌شود. پس یک فایل جدید به نام sendpost.php ایجاد کنید و کد زیر را در آن قرار دهید:

<!DOCTYPE html>
<html dir=”rtl” lang=”fa-IR”>
<head>
<title>درج مطلب</title>
<meta charset=”utf-8″ />
</head>
<body style=”font-family: tahoma; font-size:14px;”>
<center>
<?php
include (“config.php”);
$title = trim ($_POST[‘postTitle’]);
$text = trim ($_POST[‘postText’]);
if($title != “” && $text != “”){
//do insert
$query_res = mysql_query(“INSERT INTO `posts` (`title`, `text`) VALUES (‘$title’,’$text’)”);
if($query_res){
echo “مطلب شما با موفقیت در بانک داده درج شد.”;
}else{
echo “مشکلی در ثبت مطلب رخ داده، لطفا مجددا تلاش کنید. <a href=insert.php>بازگشت</a>”;
}
}else{
echo ‘برای درج مطلب جدید باید عنوان و متن مطلب را وارد کنید. <a href=insert.php>بازگشت</a>’;
}
?>
</center>
</body>
</html>

حال به تحلیل کد بالا می‌پردازیم. اگر خاطرتان باشد در جلسه قبل گفتیم برای فهم بهتر این جلسه بهتر است سری به مقالات آموزش در مورد MYSQL بزنید تا آمادگی بیشتری برای این جلسه داشته باشید. همان‌طور که می‌بینید ابتدا فایل confing.php را فراخوانی کرده‌ایم. سپس مقادیر وارد شده در دو فیلد فرم درج مطلب را در دو متغیر title و text ذخیره کرده‌ایم. سپس با یک دستور if بررسی کرده‌ایم که آیا مقداری توسط کاربر در این دو فیلد وارد شده یا خیر. اگر وارد نشده باشد پیام خطای مناسب به وی نمایش داده می‌شود و اگر عنوان و متن مطلب وارد شده باشد عملیات درج در بانک اطلاعاتی را انجام می‌دهیم.

با استفاده از تابع mysql_query مقادیر وارد شده توسط کاربر را به جدول posts در بانک اطلاعاتی cms وارد می‌کنیم. خروجی این تابع یعنی مقداری که بر می‌گرداند یا true است یا false. پس با یک دستور if بررسی می‌کنیم که آیا عملیات درج انجام شده یا نه. اگر عملیات با موفقیت انجام شده باشد مقدار true برگردانده می‌شود و در نتیجه شرط ما برقرار خواهد بود و پیام درج موفقیت‌آمیز مطلب جدید به کاربر نمایش می‌یابد.

اگر نتیجه شرط false شود، یعنی به هر دلیلی، درج اطلاعات در جدول posts انجام نشود، با پیام خطا مناسب مواجه خواهد شد. حال اگر تمامی مراحل را به درستی انجام داده باشید می‌توانید مطالب جدیدی را در جدول ساخته شده‌مان وارد کنید. این کار را چند بار انجام دهید تا چند مطلب در جدول posts اضافه شود. همان‌طور که در تصاویر زیر می‌بینید ما توانستیم با موفقیت چند مطلب در جدول مورد نظر اضافه کنیم.

b8c0632f-30b2-4363-ad60-41a8237df537پس از پر کردن فیلدهای فرم بالا و ثبت فرم صفحه زیر نمایان شده که نشان از درج موفق مطلب در جدول posts می‌دهد.

e5e39d40-e2c7-44dc-bf77-49e55454b455

اما بیایید کمی در مورد کوئری (پرس و جو) درج رکورد جدید در بانک اطلاعاتی mysql بپردازیم. مطمئنا پیش از هر چیز باید به بانک اطلاعاتی خود متصل شویم که این کار از طریق فایل config.php انجام شده است. پس از انتخاب جدول موردنظر، می‌توان با انجام query چهار عملیات اصلی درج، خواندن، حذف و ویرایش اطلاعات را انجام داد. این کوئری‌ها ساختار ساده‌ای دارند و یادگیری آن وقت چندانی نخواهد برد و فقط نیاز به کمی تمرین دارد.

برای درج اطلاعات جدید از کوئری زیر استفاده می‌کنیم:

INSERT INTO `TABLE_NAME` (`f1`, `f2`) VALUES (‘value1’, ‘value2’)

همانطور که می‌بینید ابتدا دو کلمه کلیدی INSERT INTO را باید حتما بنویسید. سپس نام جدولی که قصد دارید در آن یک رکورد جدید درج کنید را به جای TABLE_NAME جایگزین می‌کنیم. سپس به تعداد فیلد‌هایی که جدول ما برای اضافه شدن هر رکورد نیاز دارد نام فیلد‌های مورد نظر را می‌نویسیم. در پروژه ما جدول posts سه فیلد داشت، اما اگر دقت کرده باشید ما فقط دو فیلد title و text را در کوئری آن نوشتیم. چراکه همانطور که در جلسه قبل توضیح دادیم فیلد id یا شناسه منحصر به فرد هر مطلب به صورت خودکار توسط MYSQL با اضافه شدن هر رکورد یک واحد افزایش می‌یابد. پس از نام فیلد‌ها کلمه کلیدی VALUES و سپس به تعداد فیلد‌هایی که نوشته‌ایم، داده‌های موردنظرمان را برای درج در آن فیلد‌ها در کوئری وارد می‌کنیم. به عنوان مثال در پروژه ما دو فیلد title و text را با مقادیری که کاربر وارد کرده بود و آن‌ها را در متغیرهایی به نام title$ و text$  ذخیره کرده‌ بودیم پر کردیم. پس این داده‌ها هر کدام در فیلد مربوط به خود در یک سطر جدید در جدول موردنظر اضافه شده‌اند. برای درک بهتر این مطلب به آدرس http://127.0.0.1/phpmyadmin بروید. سپس در سمت چپ روی نام بانک اطلاعاتی که جلسه قبل ساختیم یعنی cms کلیک کنید. سپس در سمت راست روی تب Structure کلیک کنید. حال روی نام جدول یعنی posts کلیک کنید. حال می‌توانید لیست رکوردهای درج شده در این جدول را مشاهده کنید. همانند تصویر زیر.

۵۹ec2c0a-3b9c-4160-8582-1329b4834166

بدین طریق به راحتی می‌توان اطلاعات موردنظر را در جداول MySQL از طریق پی‌اچ‌پی درج کنیم. به عنوان تمرین شما سعی کنید یک جدول جدید با فیلد‌های بیشتر بسازید و سپس فرم موردنظر آن را ساخته و به همین طریق اقدام به درج اطلاعات کنید.

در صورتی که هرگونه سوالی در این مورد دارید آن را در بخش نظرات اعلام کنید. در جلسه بعدی روش خواندن و حذف اطلاعات از بانک اطلاتی MySQL را به شما آموزش خواهیم داد.

منبع: زومیت

آموزش PHP – جلسه یازدهم: اتصال به بانک اطلاعاتی MySQL

در سری آموزش‌های پی‌اچ‌پی تا‌کنون با مباحث زیادی آشنا شده‌اید و حال نوبت مبحث اتصال به بانک‌های داده است. در واقع پویا بودن صفحات وب پی‌اچ‌پی بدون اتصال به بانک‌های اطلاعاتی بی‌معنی به نظر می‌رسد. در این جلسه می‌خواهیم روش اتصال به یکی از محبوب‌ترین و پرکاربردترین بانک‌های اطلاعاتی یعنی MySql را به شما آموزش دهیم. در ادامه با ما همراه باشید.

با اتصال به بانک‌های اطلاعاتی تحت سرور می‌توانیم داده‌های موردنظرمان را در جداول این بانک‌های اطلاعاتی ذخیره کنیم و در مواقع لزوم به سرعت به آن‌ها دسترسی داشته باشیم. همچنین در مواقعی نیاز به به‌روزرسانی اطلاعات و نیز حذف آن‌ها خواهیم داشت.

پی‌اچ‌پی از بانک‌های اطلاعاتی مختلفی پشتیبانی می‌کند. اما یکی از محبوب‌ترین و پراستفاده‌ترین بانک‌های اطلاعاتی در بین برنامه‌نویسان از زبان MySQL است. در این جلسه روش اتصال به این بانک داده را با PHP به شما آموزش خواهیم داد و نیز ۴ عملیات اصلی کار با بانک‌های اطلاعاتی را به مرور فرا خواهید گرفت.

از این جلسه شروع به ساخت یک CMS (سیستم مدیریت محتوا = Content Managment System) می‌کنیم. قبل از هر چیز نیاز است الگوریتم ساده‌ای برای این پروژه ایجاد کنید. اما در اینجا برای جلوگیری از سنگین شدن این جلسه بخش الگوریتم را به خودتان واگذار می‌کنیم.

در کل باید بدانید قصد داریم یک پروژه‌ بسازیم که با بانک اطلاعاتی MYSQL ارتباط داشته باشد و بتوان با استفاده از آن مطالب جدیدی را در بانک داده ذخیره‌سازی کرد. هدف ما ایجاد بخشی برای ارسال مطلب، بخشی برای ویرایش مطالب ارسال شده، امکان حذف مطالب ارسال شده و نیز نمایش مطالب ارسال شده است. چهار عمل اصلی در ارتباط با بانک‌های داده وجود دارد که به اختصار آن‌ها را CURD می‌نامند. C برای ساختن (Create) و U برای به‌روزرسانی (Update) و R برای خواندن (Read) و نهایتا D برای حذف (Delete).

اتصال به بانک داده

قبل از این کار یک پوشه جدید در پوشه htdocs نرم‌افزار Xampp ایجاد کنید و نام آن را cms بگذارید. حالا در پوشه cms یک فایل به نام config.php ایجاد کنید. این فایل در واقع تنظیمات مربوط به سیستم‌ ما را نگه‌داری خواهد کرد. همچنین از طریق این فایل به بانک داده متصل خواهیم شد.

اما ابتدا باید بانک اطلاعاتی موردنظرمان را ایجاد کنید. پس از اجرای Xampp در پنل مدیریت این نرم‌افزار سرویس MySQL را نیز همانند سرویس Apache اجرا کنید.

۷۵c58fb6-1b54-4669-8a90-d3ff9e89c143حالا مرورگر خود را باز کرده و به آدرس http://127.0.0.1/phpmyadmin بروید. در این بخش شما می‌توانید بانک‌های اطلاعاتی سرور محلی خود را مشاهده، ایجاد و حذف کنید. پس از اجرای آدرس فوق باید با صفحه‌ای مانند زیر مواجه شوید.

ecbe80cb-025a-4b01-a3d1-12e6a6bf924cهمان‌طور که در تصویر با کادر قرمز مشخص شده، روی Database کلیک کنید. در این بخش می‌توانید یک بانک اطلاعاتی جدید بسازید. نام بانک اطلاعات موردنظر خود را باید در کادر مربوطه همانند تصویر زیر وارد کنید. همچنین نوع یونیکد موردنظر برای این بانک‌ داده را هم با استفاده از منو کشویی مقابل فیلد نام آن، می‌توانید تعیین کنید. از آنجا که زبان ما فارسی است بهترین کار در این مرحله انتخاب یونیکد utf-8 است. پس همانند تصویر زیر نام بانک اطلاعاتی جدید خود را cms و نوع آن را هم utf8-general-ci تعیین کنید.

۴۳۵۲۷۰۳۵-۲۷۵۷-۴e28-936f-9286b9b6ca89  حال باید جداول موردنظرتان را ایجاد کنید. اما برای جلوگیری از سنگین شدن مبحث و این‌که هدف ما آموزش php است، جداول موردنیاز برای این پروژه را ساخته‌ایم و شما نیز برای ساختن این جداول مراحل زیر را پس از ساختن بانک اطلاعاتی یاد شده انجام دهید. پس از اینکه روی دکمه Create کلیک کنید، بانک اطلاعاتی cms ایجاد خواهد شد. حالا وارد بخش sql شوید و همانند تصویری که در ادامه می‌بینید، کد زیر را در بخش مربوطه قرار داده و سپس بر روی دکمه Go کلیک کنید.

— phpMyAdmin SQL Dump
— version 4.5.1
— http://www.phpmyadmin.net

— Host: 127.0.0.1
— Generation Time: May 28, 2016 at 02:13 PM
— Server version: 10.1.9-MariaDB
— PHP Version: 5.6.15

SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;
SET time_zone = “+00:00”;

/*!۴۰۱۰۱ SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!۴۰۱۰۱ SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!۴۰۱۰۱ SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!۴۰۱۰۱ SET NAMES utf8mb4 */;


— Database: `cms`

— ——————————————————–


— Table structure for table `posts`

CREATE TABLE `posts` (
`id` int(11) NOT NULL,
`title` varchar(200) NOT NULL,
`text` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


— Indexes for dumped tables


— Indexes for table `posts`

ALTER TABLE `posts`
ADD PRIMARY KEY (`id`);


— AUTO_INCREMENT for dumped tables


— AUTO_INCREMENT for table `posts`

ALTER TABLE `posts`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
/*!۴۰۱۰۱ SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!۴۰۱۰۱ SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!۴۰۱۰۱ SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

کد بالا برای ایجاد یک جدول به نام posts است که این جدول سه فیلد دارد. برای هر مطلب یک فیلد برای شماره مطلب وجود دارد که این شماره برای هر رکورد از جدول یکتا خواهد بود. همچنین یک فیلد برای عنوان و یک فیلد نیز برای متن مطلب درنظرگرفته‌ایم. یونیکد این جدول و تمامی فیلد‌های آن نیز utf8-general-ci است.

۲c03ac69-2d22-491a-bf6c-6232831e599fاصلا نگران این بخش نباشید چرا که بعدا مفصلا به آن خواهیم پرداخت. فقط به یاد داشته باشید که تاکنون چه کارهایی انجام دادیم.

حالا برگردیم به بخش پی‌اچ‌پی. فایل config.php را باز کنید و کد زیر را در آن قرار دهید:

<?php
$dbhost = “localhost”;
$dbuser = “root”;
$dbname = “cms”;
$dbpass = “”;

$connect_db = mysql_connect ($dbhost, $dbuser, $dbpass);

if ($connect_db){
echo “we Connected to db successfully!”;
}else{
echo “error in connecting db”;
}
?>

در کد بالا ابتدا ۴ متغیر تعریف کرده و آن‌ها را مقداردهی کردیم. برای اتصال به بانک‌اطلاعاتی mysql در php نیاز به ۴ مشخصه خواهید داشت. آدرس میزبان بانک داده که در اینجا متغیر dbhost است، نام کاربری بانک داده که در اینجا dbuser است، نام بانک داده که در اینجا dbname است و نهایتا رمزعبور کاربر بانک داده که در اینجا dbpass است. در بیشتر مواقع آدرس میزبان بانک داده همان localhost خواهد بود. در نرم‌افزار زمپ نام کاربری تمام بانک‌های داده‌‌ای که می‌سازیم root است و این کاربر رمزعبور ندارد و به همین دلیل مقدار dbpass را خالی گذاشته‌ایم. نام بانک داده‌ نیز همان نامی خواهد بود که در هنگام ساختن بانک اطلاعاتی موردنظر خود تعیین کرده‌اید و در این پروژه نام تعیین شده ما cms بود. 

حال باید با استفاده از تابع mysql_connect به بانک داده متصل شویم. این تابع سه آرگومان ورودی دارد که به ترتیب آدرس میزبان بانک داده، نام کاربری بانک داده و رمزعبور کاربر بانک داده هستند. خروجی این تابع نیز یا true خواهد بود یا false. در کد بالا ما خروجی این تابع را در متغیر connect_db ذخیره می‌کنیم و سپس با یک دستور if بررسی کرده‌ایم که اگر اتصال به درستی برقرار شد پیام مناسب به کاربر نمایش داده شود و اگر اتصال انجام نشده بود پیام خطای عدم اتصال به بانک داده نمایان شود. 

پس از این‌که مراحل فوق را انجام دادید یک فایل دیگر به نام index.php در پوشه cms ایجاد کنید. سپس در این فایل کد زیر را قرار دهید:

<?php
include (“config.php”);
?>

همان‌طور که احتمالا متوجه شده‌اید ما فایل config.php را با کد بالا در فایل index.php فراخوانی کرده‌ایم. حالا اگر آدرس http://127.0.0.1/cms/index.php را در مروگرتان اجرا کنید، باید با عبارت we Connected to db successfully! مواجه شوید. در غیر این‌صورت یکی از مراحل را اشتباه انجام داده‌اید، چراکه در این صورت اتصال به بانک داده انجام نشده است. اما اگر پیغام یاد شده را مشاهده می‌کنید یعنی با موفقیت به بانک داده cms متصل شده‌ایم. اگر همه چیز به درستی انجام شده بخش if فایل config.php را حذف کنید یا آن را به صورت کامنت درآورید.  همچنین یک دستور دیگر برای انتخاب بانک اطلاعاتی cms که آن را در مراحل قبلی ایجاد کردیم به این فایل اضافه می‌کنیم. در نهایت کد config.php شما باید شبیه به زیر باشد:

<?php
$dbhost = “localhost”;
$dbuser = “root”;
$dbname = “cms”;
$dbpass = “”;

$connect_db = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname,$connect_db);
?>

با استفاده از تابع mysql_select_db می‌توانید به بانک اطلاعاتی موردنظر خود در سرور mysql متصل شوید. همان‌طور که می‌بینید این تابع دو آرگومان دارد که ورودی اول نام بانک اطلاعاتی که قصد متصل شدن به آن را داریم است و مورد دوم که تعریف آن اجباری هم نیست، به خروجی تابع متصل شدن به سرور MySQL اشاره دارد. در اینجا ما خروجی تابع را در متغیر connect_db قرار داده بودیم و از همین رو در آرگومان دوم تابع mysql_select_db نام این متغیر را وارد کرده‌ایم.

اما برای درک بهتر ادامه این آموزش باید با ساختار جدولی که ساخته‌ایم آشنا شوید. به شکل زیر دقت کنید:

۱۴۹d0301-ff36-4d47-a55c-acf3c0b1e76d

در نتیجه ما یک بانک اطلاعاتی به نام cms داریم. هر بانک اطلاعاتی می‌تواند شامل چند جدول باشد و هر جدول نیز شامل یکسری فیلد است.

در اینجا جدول ما posts نام دارد و هر سطر آن (هر رکورد) شامل سه فیلد id و title و text است. تعیین نام فیلد‌ها و نوع آن‌ها در هنگام ساخت جدول انجام می‌شود و در این مورد نام‌های انتخابی ما سه موردی بود که اشاره کردیم. همان‌طور که در تصویر بالا می‌بینید هر مطلب به صورت یک سطر جدید در جدول posts ذخیره خواهد شد و هر مطلب سه مشخصه id یا شناسه یکتای مطلب، title برای عنوان و text برای متن مطلب را شامل می‌شود. 

در جلسه بعد پروژه خود را ادامه خواهیم داد و رفته رفته آن را کامل‌تر می‌کنیم. پیشنهاد می‌کنیم برای درک بهتر آموزش‌های بعدی کمی در مورد بانک اطلاعاتی mysql و نیز دستورات sql در گوگل جستجو کنید و در میان مطالب بسیار زیاد فارسی منتشر شده در این مورد کمی تحقیق کنید تا با آمادگی بیشتری بتوانید ادامه آموزش‌ها را پیگیری کنید.

اگر هرگونه سوالی در مورد مباحث این جلسه برایتان پیش‌ آمده آن را در بخش نظرات اعلام کنید.

منبع: زومیت

آموزش PHP – جلسه دوم، متغییرها و توضیحات در کدها

در جلسه اول آموزش برنامهنویسی و طراحی وب به زبان PHP رایانه خود را به سرور محلی تبدیل کردیم و نیز ابزارهای موردنیاز برای شروع برنامهنویسی به این زبان را نصب کرده و در نهایت هم شاهد اجرای موفق اولین پروژه خود بودیم. در این جلسه می‌خواهیم در مورد متغیرها و نیز عملگرها در php صحبت کنیم. در ادامه با ما همراه باشید.

همانطور که در جلسه قبل توضیح دادیم ابتدا Xampp را باز کرده و سرور Apache و MySQL را آنگونه که توضیح دادیم اجرا کنید. سپس در پوشه htdocs یک پوشه جدید به نام section2 ایجاد کنید. حال ++NotePad را باز کنید. همانند جلسه اول، از منوی Language زبان php را انتخاب کنید. و بدون اینکه چیزی در این فایل بنویسید، آن را با نام vars.php در پوشه section2 دخیره کنید. بدین طریق می‌توانید از طریق آدرس http://127.0.0.1/section2/vars.php به این فایل دسترسی داشته باشید.

دستور چاپ و خروجی در php

برای چاپ متون و سایر موارد در پی‌اچ‌پی می‌توان از دستورات مختلفی که به این منظور ایجاد شده‌اند استفاده کرد. رایج‌ترین دستور برای چاپ خروجی در php همانند کدی که جلسه اول نوشتیم، دستور echo است. روش استفاده از این دستور بدین صورت است که ابتدا آن را نوشته و سپس آنچه قصد داریم به عنوان خروجی در مرورگر کاربر نمایش یابد را مقابل آن می‌نویسیم. اگر بخواهیم به صورت مستقیم با این دستور خروجی داشته باشیم باید آن را بین دابل‌کوتیشن یا تک‌کوتیشن قرار دهید و در آخر نیز علامت نقطه‌ویرگول را قرار دهید که به معنای پایان آن خط و دستور در پی‌اچ‌پی است. در ادامه چند دستور چاپ و خروجی را با یکدیگر تمرین می‌کنیم.

++NotePad را باز کنید و کد زیر را در آن وارد کنید:

<?php

echo “salam. in jalase dovome amoozeshe php dar zoomit ast.”;

?>

به‌نظر شما خروجی کد بالا چیست؟ همانطور که احتمالا حدس زده‌اید آنچه بین دابل کوتیشن قرار دارد به عنوان خروجی در مرورگر کاربر نمایش خواهد یافت. (یعنی عبارت salam. in jalase dovome amoozeshe php dar zoomit ast.) علاوه بر متن می‌توان کدهای اچ‌تی‌ام‌ال را نیز توسط دستور  echo در مرورگر به کاربر نشان داد. کد بالا را به صورت زیر تغییر دهید:

<?php

echo “salam. in jalase dovome amoozeshe php dar zoomit ast.<br>in khate dovom ast<b>matne zakhim</b><i>matine kaj</i>”;

?>

خروجی کد بالا به صورت زیر خواهد بود:

ef8a71be-473a-4c7e-874b-24d991df4ca5همانطور که در عکس بالا می‌بینید هر آنچه در مقابل عبارت echo قرار داده شود حتی کدهای اچ‌تی‌ام‌ال به‌خوبی اجرا می‌شوند. دقت کنید در صورتی که کدهای html در این دستور بین تک‌کوتیشین قرار گیرند به صورت کد html پردازش نشده و به همان شکل در مرورگر نمایش می‌یابند. پس برای این‌که کدهای اچ‌تی‌ام‌ال به‌درستی اجرا شوند باید مطمئن شوید آن‌ها را در بین دابل‌‌کوتیشین قرار داده‌اید.

نوشتن توضیحات در کدهای php

در تمامی زبان‌های برنامه‌نویسی، توسعه‌دهندگان توضیحاتی را با توجه به قواعد آن زبان، در کدهای خود درج می‌کنند تا در مراجعات بعدی راحت‌تر بتوانند از کدهای خود سر در بیاورند و نیز توسعه‌دهندگان دیگر بتوانند راحت‌تر کدها را درک کنند. دقت کنید که توضیحات فقط برای توسعه‌دهنده و برنامه‌نویس قابل دیدن بوده و به هیچ‌وجه در خروجی قرار نگرفته و کاربران آن‌ها را نمی‌بینند. برای نوشتن توضیحات در php می‌توان به چند روش عمل کرد. ++NotePad را گشوده و یک فایل جدید php را مانند قبل بسازید و آن را با نام comment.php در پوشه section2 ذخیره کنید. در این فایل کدهای زیر را وارد کنید:

<?php

// in yek tozih yek khati ast va dar moroorgar namayesh nemiyabad

# in ham tozihe yek khati digari ast

/* in yek tozi chand khati ast

khate dovome tozih */

?>

همان‌طور که می‌بینید می‌توانید به چند طریق توضیحات تک‌خطی و چندخطی را در پی‌اچ‌پی به‌کار ببرید.

متغیرها در php

در ابتدا مفهوم متغیر را برای شما توضیح می‌دهیم. فرض کنید شما یک کاسه خالی دارید. خب در این حالت می‌توانید هر چه دوست دارید را در این کاسه قرار دهید. مثلا یک بار آب، یک بار چند میوه و … در اینجا کاسه شما حکم متغیر را دارد که هر لحظه می‌تواند چیزی را در خود داشته باشد.

متغیرها در زبان‌های برنامه‌‌نویسی مختلف وجود دارند و از مهم‌ترین بخش‌های یک پروژه به حساب می‌آیند. در تمامی پروژها قطعا به استفاده از متغیرها نیاز خواهید داشت پس باید این مبحث ساده را به‌خوبی فرا بگیرید. پی‌اچ‌پی برخلاف سایر زبان‌های برنامه‌نویسی برای هر نوع داده، متغیر جداگانه ندارد و این موضوع یکی از نکات و جوانب بسیار مثبت php است. شما یک متغیر را تعریف کرده و هر نوع داده‌ای که می‌خواهید را در قرار می‌دهید.

اما تعریف و استفاده از متغیرها قواعد خاصی هم دارد. برای معرفی کردن متغیرها باید ابتدا علامت $ را نوشته و پس از آن نام متغیر موردنظر را بنویسید. دقت کنید در نام‌گذاری متغیرها حروف بزرگ و کوچک با یکدیگر فرق دارند. برای مثال متغیری با نام var$ با متغیری با نام Var$ تفاوت دارد و پی‌اچ‌پی در واقع آن‌ها را دو متغیر جدا از هم می‌داند.

بهترین روش یادگیری استفاده از مثال عملی است. در فایلی که به نام vars.php ایجاد کردید، کدهای زیر را عینا تایپ کنید:

<?php

// متغیر رشته ای

$var1 = “Mehrastan”;

// متغیر عدد صحیح

$var2 = 123;

// متغیر اعشاری

$var3 = 1.2222;

// متغیر صحیح یا غلط

$var4 = true;

?>

همانطور که در بالا می‌بینید می‌توان هر نوع داده‌ای را در متغیری که در پی‌اچ‌پی تعریف کرده‌اید قرار دهید. برای نسبت دادن مقدار به متغیرها باید پس از معرفی، علامت = را قرار داده و سپس مقدار موردنظر را تایپ کنید. اگر پیش‌تر با زبان‌های دیگر برنامهنویسی کرده باشید می‌دانید که چند نوع متغیر اصلی وجود دارد:

  • متغیرهای رشته‌ای
  • متغیرهای اعداد صحیح
  • متغیرهای اعداد شناور
  • متغیرهای دوحالته که یک مقدار صحیح یا غلط را نگه می‌دارند

این ۴ نوع متغیر اصلی در اکثر زبان‌های برنامهنویسی هستند. شما هر نوع داده‌ای که به متغیر موردنظرتان نسبت دهید، آن متغیر خودبه‌خود از نوع داده شما خواهد بود. برای مثال در کد بالا متغیر اول از نوع رشته‌ای است چراکه داده نسبت داده شده به آن یک رشته متنی است.

نکته مهم در مورد رشته‌ها این است که در پی‌اچ‌پی باید این نوع داده را بین دابل‌کوتیشین یا تک‌کوتیشن قرار دهید. البته تفاوت‌هایی بین این دو نیز وجود دارد که به‌زودی به این موضوع نیز می‌پردازیم. پس تا اینجای کار یاد گرفتیم که چگونه مقادیر مختلف را بنا به نیاز در متغیرها قرار دهیم.

چاپ متغیرها

حال که آموختیم چگونه می‌توان موارد مختلف را در مرورگر به عنوان خروجی چاپ کرد، بهتر است به سراغ چاپ متغیرها برویم. برای چاپ متغیرها و نشان دادن داده‌ای که هر متغیر در خود دارد می‌توانید از دستور echo استفاده کنید. فایل vars.php را باز کرده و تمام کدهای نوشته شده در آن را پاک کرده و کد زیر را در آن تایپ و سپس ذخیره کنید.

<?php

// این یک توضیح است. خط زیر یک متغیر رشته ای است

$var = “ebarate mojud dar motaqayere aval”;

// خط زیر یک متغیر عددی است

$newVar = 123;

// خط زیر یک متغیر از نوع صحیح یا غلط است

$anotherVar = true;

echo $var;

// خط زیر کد اچ تی ام الی است که باعث رفتن به خط جدید در مرورگر می شود

echo “<br>”;

// کد زیر مقدار متغیر را در مرورگر نمایش می‌دهد

echo $newVar;

echo “<br>”;

echo $anotherVar;

?>

سپس مرورگرتان را باز کرده و به آدرس http://127.0.0.1/section2/vars.php بروید. خروجی شما باید مانند تصویر زیر باشد:

e186331b-c49b-4e65-a0a5-0ac5bfa5110dهمان‌طور که می‌بینید هرچه آنچه که متغیرها در خود نگه داشته‌اند را توسط دستور echo در مرورگر چاپ کردیم. همچنین توضیحات را در کد بالا به کار بردیم ولی این توضیحات برای خودمان هستند و نه تاثیری در خروجی کد داشته و نه برای کاربر قابل مشاهده‌اند. دقت کنید که می‌توان متغیرها را به همراه متون ثابت نیز به‌کار برد. در این شرایط باید حتما از دابل‌کوتیشین استفاده کنید یعنی متغیرها را در داخل دابل‌کوتیشن به‌کار ببرید. در صورتی‌که از تک‌کوتیشین استفاده کنید، همان‌طور که گفتیم به جای مقدار متغیر، نام خود متغیر در خروجی نمایش خواهد یافت. فایل vars.php را گشوده و آن را به صورت زیر اصلاح کنید:

<?php

// این یک توضیح است. خط زیر یک متغیر رشته ای است

$var = “ebarate mojud dar motaqayere aval”;

// خط زیر یک متغیر عددی است

$newVar = 123;

// خط زیر یک متغیر از نوع صحیح یا غلط است

$anotherVar = true;

// کد زیر باعث چاپ متن و متغیر در کنار یکدیگر در مروگر خواهد شد

echo “meqdare motaqayere aval in ast: $var”;

echo “<br>”;

echo “meqdate motaqayere dovom : $newVar va meqdare motaqayere sevom niz : $anotherVar ast”;

?>

خروجی کد بالا به صورت زیر خواهد بود:

۹۰d90e13-9c06-4313-8f28-cdc14dedc686همان‌طور که در تصویر بالا می‌بینید به جای نام هر متغیر، مقدار آن در مرورگر نمایش یافته است. بدین طریق یاد گرفتیم که چگونه متغیری را تعریف کرده و سپس در هرجا که نیاز داریم به مقدار آن دسترسی داشته باشیم. در جلسه بعد اعمال مختلف بر روی متغیرها را با یکدیگر خواهیم آموخت و نیز با عملگرهای php آشنا خواهیم شد.

منبع: زومیت

آموزش PHP – جلسه اول معرفی و ابزارهای مورد نیاز

طراحی و برنامهنویسی وب، امروزه در همه جای دنیا بسیار مورد توجه است. برای تولید صفحات وب می‌توان از زبان‌های مختلفی چون ASP.Net، پی‌اچ‌پی و … بهره گرفت. PHP به دلیل متن باز بودن و قدرت بسیار بالایی که دارد در بین توسعهدهندگان وب جایگاه بسیار خوبی دارد و تعداد زیادی از این توسعهدهندگان از php در پروژه‌های خود بهره می‌برند. در ادامه مطلب و جلسه اول آموزش PHP با ما همراه شوید.

ما در این سری آموزشی قصد داریم زبان برنامه‌نویسی پی‌اچ‌پی را از ابتدا به شما عزیزان آموزش دهیم. اما پیش‌نیاز این آموزش، آشنایی با HTML و CSS است.

معرفی مختصر PHP

آقای راسموس لردورف برای اولین بار در سال ۱۹۹۴ برای مدیریت صفحه وب شخصی خود زبان برنامهنویسی php را ایجاد کرد. او این زبان برنامهنویسی را به منظور ایجاد محتوای داینامیک از جمله نمایش تعداد آمار بازدید وب‌سایتش نوشت. همچنین بد نیست بدانید PHP در واقع سرنام عبارت Personal Home Page Tools به معنای ابزار صفحه شخصی خانگی است. اگر می‌خواهید تاریخچه کامل این زبان برنامه‌نویسی را مطالعه کنید می‌توانید به این لینک مراجعه کنید.

پیش‌ از توسعه زبان‌هایی مانند php اکثر صفحات وب در آن زمان به صورت ایستا بودند و برای اعمال تغییرات در این صفحات نیاز به ویرایش دستی تک تک آن‌ها بود که این امری بسیار طاقت‌فرسا و سخت به حساب می‌آمد. از این‌رو  php همان‌طور که اشاره کردیم به منظور ایجاد وب‌سایت‌هایی پویاتر که قابلیت تعامل بیشتری با کاربر را دارند، توسعه یافت.

شروع کار و ابزارهای مورد نیاز

از آنجا که پی‌اچ‌پی یک زبان سمت سرور است پس قبل از هر چیز باید رایانه شخصی‌تان را به یک سرور محلی تبدیل کنید تا بتوانید اسکریپت‌های نوشته شده به این زبان را در رایانه خود اجرا و تست کنید. برای انجام این کار نیاز به طی کردن فرآیند  سخت و پیچیده‌ای نخواهید داشت. نرم‌افزارهای مختلفی برای ایجاد یک سرور محلی بر روی رایانه وجود دارند و ما می‌خواهیم از Xampp استفاده کنیم. مراحل زیر را به ترتیب و با دقت انجام دهید:

ابتدا به وب‌سایت رسمی زمپ رفته و با توجه به نوع سیستم‌عامل‌تان، جدیدترین نسخه را دانلود کنید. در زمان نوشتن این مطلب جدیدترین نسخه ۵/۶/۱۹ است.

۸۵۷۴۲۱۴۸-۱۳df-42dc-a07b-ed664007bcbbپس از دانلود Xampp آن را نصب کنید. مراحل نصب را همانند سایر نرم‌افزارهای معمول انجام دهید و هیچ بخشی از آن را تغییر ندهید و اجازه دهید نرم‌افزار با تنظیمات پیش‌فرض بر روی سیستم شما نصب شود.

سپس نرم‌افزار را اجرا کنید و مطابق شکل زیر سرور Apache و MySQL را در حالت اجرا قرار دهید. برای این کار بر روی دکمه Start جلوی این گزینه‌ها کلیک کنید.

۶۴d9c1d3-3c5e-4cbe-9a87-ede5d36aa9ecبه همین راحتی شما رایانه خود را به یک سرور محلی تبدیل کردید که می‌تواند اسکریپت‌های نوشته شده به زبان php را به‌راحتی اجرا کند. علاوه بر این امکان استفاده از بانک اطلاعاتی MySql نیز با Xampp برای شما فراهم است که البته فعلا به این بخش کاری نداریم.

حالا مرورگر خود را باز کرده و آدرس زیر را تایپ کنید:

http://127.0.0.1/

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

۳ebbd91f-d435-4140-a3de-920e2962466eایجاد اولین پروژه

تا اینجا شما دستگاه‌ خود را برای کار با پی‌اچ‌پی آماده کرده‌اید ولی نیاز به یک ویرایشگر متنی خوب نیز دارید. توسعه‌دهندگان همیشه بنا به سلیقه خود از نرم‌افزارهای ویرایشگر متن مخصوص کدنویسی یکی را انتخاب می‌کنند. برای شروع حتی می‌توان از نوت پد ویندوز بهره گرفت اما پیشنهاد ما استفاده از جدیدترین نسخه نرم‌‌افزار ++NotePad است. برای نصب این ویرایشگر نیز ابتدا به وب‌سایت رسمی نوت‌پد++ رفته و جدیدترین نسخه را دانلود و در سیستم خود نصب کنید.

پس از نصب ++NotePad آن را باز کنید و از منوی Language مطابق شکل زیر PHP را انتخاب کنید تا نرمافزار برای نوشتن کدهای پی‌اچ‌پی آماده شود.

۰۴eb5f29-b920-40c0-94ae-30283ce7ca4eمستقیما و بلافاصله می‌خواهیم به سراغ‌ آموزش برویم. اولین نکته مهم این است که باید بدانید فایل‌های نوشته شده به این زبان را چگونه و در کجا باید ذخیره کنید.

تمامی فایل‌های نوشته شده به زبان پی‌اچ‌پی باید در مسیر زیر ذخیره شوند. دقت کنید آدرس روت یا همان ریشه سرور محلی شما که با آدرس http://127.0.0.1 در دسترس است، فایل‌های موجود در مسیر C:/xampp/htdocs را اجرا می‌کند. بنابراین ریشه سرور شما در رایانه‌تان پوشه htdocs است که خود این پوشه در زیر پوشه‌ی Xampp قرار دارد.

دقت کنید اگر هنگام نصب Xampp مسیر نصب آن را تغییر داده باشید باید به جای C نام درایو مورد نظر را وارد کنید. پس تا اینجا متوجه شدید که پوشه روت سرور محلی شما در رایانه‌تان کجا قرار دارد. دقت کنید سایر پوشه‌هایی که زیرشاخه Xampp هستند را به هیچ وجه دستکاری نکنید تا در عملکرد این نرم‌افزار اشکال پیش نیاید.

بهتر است برای هر پروژه یک پوشه جداگانه در پوشه htdocs ایجاد کنید. بدین صورت دسترسی به پروژه‌ها و فایل‌های شما در مراجعات بعدی بسیار آسان‌تر خواهد بود. برای ایجاد اولین پروژه به مسیر C:/xampp/htdocs رفته و مانند تصویر زیر یک پوشه به نام hello ایجاد کنید. یعنی پوشه hello زیر شاخه پوشه htdocs است.

۳۲۰۳ee92-3a43-40d4-94e3-afd55aa1b4a5حالا نوت‌پد++ را باز کرده و عبارت زیر را در آن وارد کنید و سپس فایل را با نام test.php و در مسیر C:/Xampp/htdocs/hello که در مرحله قبل آن را ساختید ذخیره کنید.

<?php echo “Hello PHP tutorials From Zoomit!”; ?>

بدین ترتیب فایل شما با آدرس: http://127.0.0.1/hello/test.php از طریق مرورگر قابل اجرا خواهد بود. پس مرورگرتان را باز کرده و آدرس یاد شده را در آن وارد کنید. تصویر زیر خروجی کد نوشته شده به زبان پی‌اچ‌پی است و در واقع اولین اسکریپت نوشته شده شما به این زبان است.

دقت کنید در پایان هر دستور پی‌اچ‌پی باید علامت « ; » را قرار دهید. این علامت در پایان هر دستور نشان از پایان آن خط دارد و بسیار مهم است که آن را در آخر تمامی دستورات خود قرار دهید.

۵a24e33e-e517-4d17-8a64-491d0208c5e3اگر تصویر مروگر شما هم چیزی شبیه به عکس بالا را نشان می‌دهد به شما تبریک می‌گوییم چراکه توانسته‌اید اولین پروژه پی‌اچ‌پی خود را به درستی ایجاد و اجرا کنید.

قواعد کلی برنامه‌نویسی به زبان پی‌اچ‌پی

مهمترین نکته این است که فایل‌های نوشته شده به زبان پی‌اچ‌پی باید با پسوند php. ذخیره شوند. اگر به اولین کد نوشته شده به زبان php خود نگاهی بیاندازید متوجه می‌شوید که کدهای این زبان با برچسب php؟> شروع شده و با <? پایان می‌یابد. هر چه بین این دو برچسب یا همان تگ، قرار بگیرد، سرور آن‌ کدها را به عنوان کد php در نظر گرفته و پردازش می‌کند. اما شاید بپرسید موارد خارج از این دو برچسب چگونه اجرا خواهند شد؟ خب در پاسخ باید گفت هرچه که خارج از برچسب مخصوص پی‌اچ‌پی نوشته شده باشد، عینا در مرورگر دیده خواهد شد که می‌تواند متون ساده، کد اچ‌تی‌ام‌ال یا CSS هم باشد.

پس نتیجه می‌گیریم دو قاعده بسیار مهم در برنامه‌نویسی php اول، ذخیره فایل‌ها با پسوند php. و دوم قرار دادن کدهای این زبان در برچسب مخصوص آن است که با php?> شروع شده و با <? خاتمه می‌یابد.

تا اینجای کار شما گام اول را به‌طور کامل برای شروع برنامهنویسی پی‌اچ‌پی و ساخت صفحات وب با این زبان برداشته‌اید. در جلسات آینده با ما همراه باشید تا رسما شما را وارد دنیای برنامه‌نویسی PHP کرده و با یکدیگر رفته رفته بر این زبان تسلط بیابیم.

این سری آموزشی از ابتدا و از پایه شروع شده و با ساخت چند پروژه عملی به عنوان تمرین پایان خواهد یافت.

منبع: زومیت