وباکا

آموزش تخصصی برنامه نویسی وب

در این جلسه روش اضافه کردن رکورد به بانک اطلاعاتی را آموزش داده و در ادامه دو تکنیک ساده برای بهتر کردن طراحی و کدنویسی ارائه می کنیم، اول اینکه از فایل تنظیمات و اتصال به بانک اطلاعاتی config.php استفاده می کنیم و دوم  در فرم افزودن برای دریافت کلید خارجی از کمبوباکس استفاده می کنیم.

درج رکورد در بانک اطلاعاتی

جدول  tbl_studsبا چهار ستون sid، name ، avgr و fid  را در نظر می گیریم(ستون sid خود افزایشی است و نباید مقدار دهی شود) و در مثال زیر یک رکورد جدید به جدول tbl_studs اضافه می کنیم.

ابتدا در فایل stud-add1.php یک فرم نمایش داده و مشخصات دانشجو را از کاربر دریافت می کنیم:

stud-add2.php

<?php
$name=$_POST[‘name’];
$avgr=$_POST[‘avgr’];
$fid=$_POST[‘fid’];
$conn = mysql_connect(“localhost”, “root”, ““);
mysql_select_db(“amoozesh”  , $conn );
mysql_query(“SET NAMES utf8” , $conn );
$sql= “ INSERT INTO  tbl_studs (name,avgr,fid)
VALUES (‘$name’, $avgr, $fid )” ;
$res = mysql_query ( $sql  , $conn );
if ( $res )
echo “ success ”;
else echo “error”;
$conn->close();
?>

پس از پرکردن این فرم و کلیک روی دکمه add ، اطلاعات فرم بصورت خودکار به فایل stud-add2.php (که به عنوان Action فرم تعیین شده) ارسال خواهد شد.

در فایل stud-add2.php باید دستوراتی برای دریافت اطلاعات ارسالی، اتصال به بانک اطلاعاتی و درج اطلاعات بصورت یک سطر جدید در آن نوشته شود:

stud-add2.php

<?php
$name=$_POST[‘name’];
$avgr=$_POST[‘avgr’];
$fid=$_POST[‘fid’];
$conn = mysql_connect(“localhost”, “root”, ““);
mysql_select_db(“amoozesh”  , $conn );
mysql_query(“SET NAMES utf8” , $conn );
$sql= “ INSERT INTO  tbl_studs (name,avgr,fid)
VALUES (‘$name’, $avgr, $fid )” ;
$res = mysql_query ( $sql  , $conn );
if ( $res )
echo “ success ”;
else echo “error”;
$conn->close();
?>

بهبود طراحی 1 : استفاده از فایل تنظیمات

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

include(“config.php”)یا

require(“config.php”);

با این روش فایل stud-add2.php بصورت زیر نوشته خواهد شد:

config.php

<?php
$conn = mysql_connect(“localhost”, “root”, ““);
mysql_select_db(“amoozesh”  , $conn );
mysql_query(“SET NAMES utf8” , $conn );
?>

 

stud-add2.php

<?php
$name=$_POST[‘name’];
$avgr =$_POST[‘avgr’];
$fid   =$_POST[‘fid’];

require(“config.php”);

$sql= “ INSERT INTO  tbl_studs (name,avgr,fid)
VALUES (‘$name’, $avgr, $fid )” ;
$res mysql_query( $sql  , $conn );
if ( $res )
echo “ success ”;
else echo “error”;
$conn->close();
?>

بهبود طراحی 2 : استفاده از کمبوباکس در فرم

چنانچه جدولی دارای ستون های کلید خارجی باشد، در فرم های افزودن و ویرایش باید امکاناتی برای انتخاب سطر مورد نظر از جدول ارجاع شده قرار داده شود. ساده ترین امکان، استفاده از یک کمبوباکس برای نمایش سطرهای جدول ارجاع شده، بجای دریافت مقدار عددی می باشد. هر چند با افزایش تعداد رکوردها، باید روش های بهتری استفاده شود:

با توجه به اینکه ستون fid  در جدول tbl_studs ، کلید خارجی مرتبط با ستون fid در جدول tbl_fields می باشد، می توان صفحه stud-add1.php   را مجدداً بصورت زیر طراحی کرد. تا امکان انتخاب رشته مورد نظر بجای وارد کردن کد رشته فراهم گردد:

stud-add1.php

<html>
<body>
<form action=”stud-add2.php” method=”post”>
Name : <input type=”text” name=”name” />
Avgr : <input type=”text” name=”avgr” />
Fid: <SELECT name=”fid” >
<?php
require(“config.php”);
$result = mysql_query(“SELECT * FROM tbl_fields” , $conn );
while($row = mysql_fetch_array($result)) { ?>
<OPTION value=”<?php  echo $row[‘fid’]; ?>” >
<?php  echo $row[‘title’]; ?>
</OPTION>
<?php  }
mysql_close( $conn );
?>
</select>
<input type=”submit” value= add />
</form>
</body>
</html>

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب