سایت خود را بسازید ، به روش saalek110

saalek110

Well-Known Member
پس گفتیم جدول پست ها و تاپیک ها و تالارها در دیتابیس داریم.
و در کدها به این جداول چیزهایی افروده می شود.
 

saalek110

Well-Known Member
یک فایل بسازیم به اسم تاپیک.
بالای صفحه ، پستهای اون تاپیک را نمایش بده،
پایین صفحه کادر نوشتن داشته باشه ، برای اضافه کردن پست.
 

saalek110

Well-Known Member
یک فایل هم داریم به نام فروم ، که تاپیک ها و زیرتالارهای اون تالار را نشان می دهد.
 

saalek110

Well-Known Member
پس تا اینجا معماری را گفتیم.

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

sc8_phpbb.png

در شکل بالا ، اون نوارهای آبی تیره ، کاتگوری است ، که بخش های مختلف را مشخص کرده.
و در شکل بالا ، می بینید که هر کاتگوری شامل تعدادی تالار است.

در عکس زیر هم دو کاتگوری جنرال و کاتگوری phpbb3.1 را می بینید:

phpbb.jpg
 
آخرین ویرایش:

saalek110

Well-Known Member
ساخت تیبل کاتگوری در دیتابیس:

من یک جدول کاتگوری در دیتابیس ایجاد کردم و دو ستون نامبر و نام ، number & name درش ایجاد کردم.
ستون نامبر ، خود افزایش یابنده است.

دو تا ، کاتگوری با نام های php و general هم بهش اضافه می کنم. در همون php my admin

حالا باید کد نمایش این کاتگوری ها را بنویسیم.
 

saalek110

Well-Known Member
PHP:
mysqli_set_charset($ccoonn, "utf8");

$sql = "SELECT * FROM category";
  $result = mysqli_query($ccoonn ,$sql);
   echo"<center>";  
       echo"<table border=1>";
          while($info = mysqli_fetch_array( $result ))
           {
            echo"<tr>";
             
              $name=$info['name'];
                  echo"<td>";
                   echo $name;
                    echo"</td>";
                  echo"</tr>";
                                   }
         echo"</table>";
           echo"</center>";

کد بالا ، جدول کاتگوری را می خواند و به شکل زیر نمایش می دهد:

Screenshot_۲۰۲۴-۰۹-۰۱_۱۸۵۶۰۵.jpg

نکته مهم: برای کار کردن با دیتابیس اولین کار ، رکوئیر کردن فایل کانکشن است. اول تاپیک طرز ساختن فایل کانکشن و رکوئیر کردن را گفتیم. من دیگه اینجا نگفتم ، گفتم خودتون یادتون هست.
 
آخرین ویرایش:

saalek110

Well-Known Member
ساخت تالارها:

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

در شکل زیر می بینید من ۴ تالار ساختم
که دو تا می رود داخل کاتگوری ۱ و دو تا می رود داخل کاتگوری ۲

Screenshot_۲۰۲۴-۰۹-۰۱_۱۹۰۴۵۳.jpg
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
mysqli_set_charset($ccoonn, "utf8");

$sql = "SELECT * FROM category";
  $result = mysqli_query($ccoonn ,$sql);
   echo"<center>";  
       echo"<table border=1>";
          while($info = mysqli_fetch_array( $result ))
           {
            echo"<tr>";
             
              $name=$info['name'];
            $number=$info['number'];

                  echo"<td>";
                   echo $name;
//$$$$$$$$$$$$$$$$$$$$$$
$sql2 = "SELECT * FROM forums WHERE cat=$number";
  $result2 = mysqli_query($ccoonn ,$sql2);
            while($info2 = mysqli_fetch_array( $result2 ))
            {
             echo"<br>";
           $name=$info2['name'];
           echo $name;
            }
//$$$$$$$$$$$$$$$$$$$$$$
                    echo"</td>";
                  echo"</tr>";
                                   }
         echo"</table>";
          echo"</center>";

نتیجه کار:
Screenshot_۲۰۲۴-۰۹-۰۱_۱۹۱۷۵۹.jpg
 

saalek110

Well-Known Member
در پست قبل ، شیوه نمایش کاتگوری ها و تالارهای زیرمجموعه اش را دیدیدم.

در تکه کد زیر:

PHP:
//$$$$$$$$$$$$$$$$$$$$$$
$sql2 = "SELECT * FROM forums WHERE cat=$number";
  $result2 = mysqli_query($ccoonn ,$sql2);
            while($info2 = mysqli_fetch_array( $result2 ))
            {
             echo"<br>";
           $name=$info2['name'];
           echo $name;
            }
//$$$$$$$$$$$$$$$$$$$$$$

که اطرافش دلار گذاشتم تا از بقیه جدا باشه ، با استفاده از شماره کاتگوری در کوئری :
PHP:
$sql2 = "SELECT * FROM forums WHERE cat=$number";

تالارهای متعلق به اون کاتگوری پیدا میشه.
در تکه کد بالا اسامی sql2 , result2 , info2 استفاده کردم تا با حلقه بیرونی اشتباه نشه.
 

saalek110

Well-Known Member
این بود کد صفحه اول فروم.
حالا باید اسم هر تالار لینک بشه به فایل forum.php

PHP:
           $name=$info2['name'];
echo"<a href='http://saalek110.is-great.net/forum/forum.php'>".$name."</a>";

در دو خط کد بالا ، خط اولی را قبلا داشتیم. من زیرش خط لینک دادن را اضافه کردم.

نتیجه کار:

Screenshot_۲۰۲۴-۰۹-۰۱_۲۰۰۸۵۲.jpg

اینکه می بینید در سایت ، نمای خیلی ساده ای دارد ، برای اینه که کد شلوغ نشود و قابل فهم باشد ، کارآموزشی است. خود شما بعدا می توانید تزئینات اضافه کنید.
 
آخرین ویرایش:

saalek110

Well-Known Member
ساخت جدول تاپیک ها در دیتابیس:

حالا فرض کنید بخواهیم برویم به تالار ۱،
یک تعداد تاپیک نیازه که عضو این تالار باشه.
جدول topics را در دیتابیس می سازیم.

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

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

saalek110

Well-Known Member
لینک دادن دو پست قبل نیاز به تکمیل داره ، این طوری:
PHP:
           $name=$info2['name'];
           $numner=$info2['number'];
echo"<a href='http://saalek110.is-great.net/forum/forum.php?number=$number'>".$name."</a>";

چوم باید شماره تالار را هم به فایل forum.php بفرستیم.
 

saalek110

Well-Known Member
کد forum.php :
PHP:
$forum_number=htmlspecialchars($_GET["number"]);
echo $forum_number;

mysqli_set_charset($ccoonn, "utf8");

$sql = "SELECT * FROM topics WHERE forum=$forum_number";
  $result = mysqli_query($ccoonn ,$sql);
   echo"<center>"; 
       echo"<table border=1>";
          while($info = mysqli_fetch_array( $result ))
           {
            echo"<tr>";
            
              $name=$info['name'];
            $number=$info['number'];

                  echo"<td>";
                   echo $name;

                    echo"</td>";
                  echo"</tr>";
                                   }
         echo"</table>";
           echo"</center>";

تابع htmlspecialchars را از سایت مانوال php گرفتم. برای تصفیه ورودی است.

Screenshot_۲۰۲۴-۰۹-۰۱_۲۰۴۴۱۹.jpg

در شکل بالا ، ۱۱ و ۲۲ اسم تاپیکهای من است.
و اون ۱ شماره تالار است. یک مشکلی که اینجا داریم اینه که اسم تالار را نداریم. که میشه با یک کوئری اسمش را توسط شماره اش از جدول forums در دیتابیس خواند.

شرح کد:
اون GET از ادرس شماره تالار را میگیره. به آدرس بار نگاه کنید ، شماره تالار اونجاست.
بعدش با استفاده از شماره تالار ، در جدول تاپیک ها ، دنبال تاپیک های تالار فعلی می گردد و آنها را لیست می کند.
 

saalek110

Well-Known Member
حالا باید تاپیک ها را لینک کنیم به فایل topic.php:
ساختار phpbb این طوریه و شاید ساختار vBulletin و smf و mybb هم همین باشه یا شبیهش باشه. من الان ذهنم نیست.
البته اون فروم ها یک خروار کد داره ، نه این چند خط کد.

PHP:
echo"<a href='http://saalek110.is-great.net/forum/topic.php?number=$number'>".$name."</a>";
خط بالا ، به جای خط پایین جایگزین شود:
PHP:
  echo $name;

نتیجه شکل زیر است ، یعنی اسم تاپیک ها لینک داده شده اند به فایل topic.php

Screenshot_۲۰۲۴-۰۹-۰۱_۲۱۰۳۱۳.jpg
 
آخرین ویرایش:

saalek110

Well-Known Member
حالا وقتشه جدول پست ها را بسازیم، قوی باشید ، احتمالا جدول آخر است.
جدول پست هم شماره پست داره و محتوای پست و شماره تاپیک.
نوع ((محتوای پست)) را text می گیرم ، تابحال دائم از varchar استفاده می کردم.
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
$topic_number=htmlspecialchars($_GET["number"]);
echo $topic_number;

mysqli_set_charset($ccoonn, "utf8");

$sql = "SELECT * FROM posts WHERE topic=$topic_number";
  $result = mysqli_query($ccoonn ,$sql);
   echo"<center>"; 
       echo"<table border=1>";
          while($info = mysqli_fetch_array( $result ))
           {
            echo"<tr>";
            
              $post=$info['post'];
          

                  echo"<td>";
                   echo $post;

                    echo"</td>";
                  echo"</tr>";
                                   }
         echo"</table>";
              echo"</center>";

کد بالا تکراری است و فکر نکنم نیاز به شرح داشته باشه.
اسم ستونی که متن پست داخلش است را من post گذاشتم و در کد بالا ، محتوایش خوانده شده و نمایش داده شده.

Screenshot_۲۰۲۴-۰۹-۰۱_۲۱۲۵۵۱.jpg

در شکل بالا ، ۱۱۱ و ۲۲۲ محتوای دو پست هستند.
و دیگه قرار نیست به جایی لینک بشوند ، چون نوشته های افراد در فروم است.
البته داخل پست ها هم میشه به جایی لینک داد ، که بحثش جداست.
 

saalek110

Well-Known Member
در کدهای بالا ، اسکلت فروم را ساختیم.
در همون فایل topic.php میشه کادری برای نوشتن و افزودن یک پست اضافه کرد.
و در هر تالار، دکمه ایجاد تاپیک جدید باید اضافه بشه.
 

جدیدترین ارسال ها

بالا