مشاهده نسخه کامل
: اموزش phpجدید
masoud_razor
13-07-2008, 15:25
می خوام از ابتدا براتون اموزش phpبزارم
همکاری کنید دوستان
masoud_razor
13-07-2008, 15:27
با توجه به مطالب مطرح شده در انجمن اين سايت و جالب بودن بحث صفحه به صفحه نمايش
دادن اطلاعات نتيجه شده از جستجو در DataBase تصميم گرفتم که مقاله ای در اين خصوص
تهيه کنم و اميدوارم که اين مطالب مورد استفاده دوستان قرار بگيرد .
در اين مقاله از MySQL استفاده شده اما اين روش را می توان با هر DataBase بکار
برد .
جزء LIMIT :
جزء LIMIT در عبارت Select کليد حل مشکل ماست ، به وسيله اين جزء است که ما می
توانيم سطرهای مورد نظر خود از DataBase را در Query خود داشته باشيم .
LIMIT به دو شکل به کار می رود با يک آرگومان و يا با دو آرگومان ،اين آرگومانها
عدد هستند ، اگر LIMIT با يک آرگومان استفاده شود تعداد جواب به آن عدد محدود می
شود :
SELECT * FROM table LIMIT 5
عبارت Select در اين حالت 5 سطر اول Table را در جواب بر می گرداند ،اما اگر LIMIT
با دو آرگومان استفاده شود آرگومان اول مشخص کننده سطر آغازين است و آرگومان دوم
تعداد سطرهايی را که بايد برگردانده شوند را مشخص می کند ، البته بايد به اين نکته
توجه کرد که در SQL سطرها از صفر (0) شروع می شوند نه از يک (1) .
SELECT * FROM table LIMIT 5, 5
اين عبارت SQL سطرهای 6 تا 10 از DataBase را برمی گرداند .
کار با جزء LIMIT مشکل نيست ولی برای اينکه به هدف مطرح شده در اين مقاله نيل
کنيم لازم است که چگونگی عملکرد آن را درک کنيد .
گام اول متغير $start :
در اينجا می دانيم که از چه چيزی بايد برای بدست آوردن سطرهای مورد نظر خود از
DataBase استفاده استفاده کنيم . اما سوال اين است که چگونه متوجه می شويم که از
کجا بايد LIMIT کنيم يا به عبارت ديگر از کدام سطر بايد شروع کنيم ؟ پاسخ خيلی
روشن است ما از يک متغير به نام $start استفده می کنيم و اين متغير را از صفحه
ای به صفحه ديگر می فرستيم .
حال که روش کار مشخص شده شروع به نوشتن کد در PHP می کنيم :
<?php
$query = "SELECT * FROM table LIMIT \" . $start . \", 10\";
?>
اين شکل query ماست و اين query 10 سطر ازtable را از جايی که مساوی مقدار start
باشد را select می کند . اما برای مشخص کردن مقدار start دو راه وجود دارد(در هنگامی
که اولين 10 سطر را بازيافت می کنيم ) يا آن را در URL می نويسيم و يا با شرطی
چک می کنيم که اگر قبلا مقداری به آن داده نشده ما مقدار آن را صفر می کنيم لازم
است برای اين کار از کدی شبيه به کد زير استفاده می کنيم :
<?php
if(!isset($start)) $start = 0;
?>
حالا وقتی کسی صفحه ما را مشاهده کند مقدار $start به صورت خودکار صفر خواهد شد
.
masoud_razor
13-07-2008, 15:28
UPLOAD كردن MySQL
با سلام خدمت دوستان گرامى
با توجه به اينكه Upload كردن اطلاعات در MySQL يكى از مواردى بود كه در انجمن
زياد سؤال پرسيده مىشد من روشى كه خودم براى Upload كردن اطلاعات استفاده مىكنم
را براى شما شرح مىدهم
ابتدا توسط mysqldump اطلاعات مربوطه را در يك فايل txt ذخيره سازى مىكنيم
Shell > mysqldump --opt DBname TBname > (c:\data.txt or /home/user/data.txt)
نكته:
1 – براى ذخيره سازى تمامى table هاى يك DB بايد اسم database مورد نظر را بدون
اسم table ها ذكر كنيد
2 - براى ذخيره سازى چندين database بايد اسم DB ها را پشت سر هم ذكر كنيد
Shell > mysqldump --opt --databases DB1 DB2 > (c:\data.txt or /home/user/data.txt)
3 - شما مىتوانيد تمامىdatabase ها را بصورت ذير ذخيره سازى كنيد
Shell > mysqldump --opt --all-databases > (c:\data.txt or /home/user/data.txt)
حال اطلاعات مربوط به table مورد نظر را در يك فايل txt ذخيره سازى كرده ايم
انرا بر روى host مورد نظر FTP مىكنيم
سپس با يك دستور ساده اطلاعات را وارد MySQL مىكنيم
Shell > mysql database < data.sql
نكته :
براى استفاده از username & password جهت استفاده از MySQL بايد بصورت زير
عمل كنيد
Shell > Mysql –h host -u user -p database < backup-file.sql
نكته :
چنانچه شما براى انجام اين كار بر روى host دسترسى به Shell نداريد مىتوانيد از
اين راه استفاده كنيد
از يك PHP استفاده مىكنيد بصورت زير :
<?php
shell_exec(“Mysql –h host -u user -p database < backup-file.sql”);
?>
?>
اين روش ساده ای بود كه من براى upload كردن اطلاعات استفاده مىكنم
اميدوارم كه مورد استفاده دوستان قرار بگيرد
masoud_razor
13-07-2008, 15:31
SQLite پیشنهاد سبک وزن
این درسته که MYSQL و بقیه RDBMS ها برای برنامه های بزرگ و چند کاربره مفید هستند ولی خوب اگر شما می خواین یک سایت کم ترافیک و کوچیک درست کنین، شاید SQLite بهترین راه حل باشه. چون سرعتش نسبت به MYSQL 2تا 3 برابر بیشتره که خوب مزیت بزرگیه.
کار با SQLite در PHP و بوسیله دستور PEAR آسان است. در نصب PEAR بطور پیش فرض SQLite وجود نداره ولی خیلی راحت Pear می تونه پکیج SQLite را download کنه سپس کامپایل کنه و در نهایت نصبش کنه.
[root@zaemis www]# pear download SQLite
File SQLite-1.0.2.tgz downloaded (362412 bytes)
[root@zaemis www]# pear install SQLite-1.0.2.tgz
الان SQLite در شاخه DB از PEAR قابل دسترسی است.
<?php
require_once "DB.php\";
require_once \"DB/SQLite.php\";
$db = new DB_sqlite();
?>
برای کاربران windows یک فایل dll کامپایل شده وجود دارد که شما می تونید اونو از این آدرس download کنید.
SQLite binary for Windows: snaps.php.net/win32/PECL_STABLE/php_sqlite.dll
حالا باید به فایل php.ini اینها رو اضافه کنیم (البته اگر شما از php version 5 استفاده می کنید نیازی به این تغییرات نیست).
; load the SQLite extension (UNIX)
extension=sqlite.so
; windows users will want to use this version instead
; extension=php_sqlite.dll
اتصال به دیتابیس
اتصال به SQLite با MySQL یه مقدار فرق داره. چون MySQL برای محیط های چند کاربره طراحی شده در حالیکه SQLite برای برنامه های کاربردی تک کاربره طراحی شده که نیازی به ID و password هم برای وصل شدن نداره.
در عوض باید از یک آرایه برای ایجاد یک DSN (Data Source Name) استفاده کرد. DSN اشاره گری است برای مشخص کردن محل قرارگیری فایلهای دیتابیس. بعد این DSN رو به متد connect() پاس می کنیم.
<?php
$DSN = array(
"database\" => getcwd() . \"/dbase/mydbase.db\",
\"mode\"=> 0644
);
$db->connect($DSN);
?>
اگر شما به دیتابیسی متصل شوید که وجود خارجی نداشته باشد یک دیتابیس جدید با permission های ذکر شده جاوی mode ایجاد می شود.
متد disconnect() برای قطع کردن اتصال استفاده می شود.
<?php
$db->disconnect();
?>
پرس و جوها
متد query() برای این منظور استفاده می شود. مثل MySQL پرس و جوها می تونن برای ایجاد جداول و وارد کردن دیتا استفاده شوند.
<?php
$query =
"INSERT INTO guestbook (fname, lname, email, comments)
VALUES ('John', 'Smith', 'jsmith@example.org', 'Great Website!')\"
;
$result = $db->query();
?>
متد fetchRow() می تواند برای نشان دادن نتیجه پرس و جو استفاده شود که معادل متد mysql_fetch_row هست.
<?php
$query = "SELECT * FROM guestbook\";
$result = $db->query($query);
while (list($fname, $lname, $email, $comment) = $db->fetchRow(
$result))
{
echo \"<p><a href=\\"mailto:$email"
>$fname $lname</a> said:<br />\";
echo nl2br(htmlspecialchars(stripslashes($comment))) .
\"</p>\";
}
?>
نوشتن کد
در اینجا یک نمونه اسکریپت که با استفاده از SQLite نوشته شده داریم:
<?php
require_once "DB.php\";
require_once \"DB/SQLite.php\";
$db = new DB_sqlite();
$DSN = array(\"database\" => getcwd() . \"/dbase/mydbase.db\");
$db->connect($DSN);
$query = \"SELECT * FROM guestbook\";
$result = $db->query($query);
while (list($fname, $lname, $email, $comment) = $db->fetchRow(
$result))
{
echo \"<p><a href=\\"mailto:$email"
>$fname $lname</a> said:<br />\";
echo nl2br(htmlspecialchars(stripslashes($comment))) .
\"</p>\";
}
$db->disconnect();
?>
دستوراتی از SQL که پشتیبانی نمی شوند
هر برنامه دیتابیسی تفسیر خودش رو از SQL92 استاندارد داره، SQLite هم مستثنا نیست. بعضی از اینها ناشی از مدل طراحی embedded این دیتابیس دارند (مثل فقدان REVOKE و GRANT) بعضی هاشون هم جدا لج آورند (مثل نادیده گرفتن data type ها)
در این آدرس می تونید لیستی از دستورات SQL رو که توسط SQLite پشتیبانی می شوند را ببینید:
(
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینجا هم لیست دستوراتی است که فعلا توسط SQLite پشتیبانی نمی شوند
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.