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

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 از ادرس شماره تالار را میگیره. به آدرس بار نگاه کنید ، شماره تالار اونجاست.
بعدش با استفاده از شماره تالار ، در جدول تاپیک ها ، دنبال تاپیک های تالار فعلی می گردد و آنها را لیست می کند.
 

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

بالا