PDA

View Full Version : ساخت ادامه مطلب



spy ir
شنبه 30 آبان 1394, 23:42 عصر
سلام دوستان

من از cms که خودم نوشتم محتوایی رو به صفحه اصلی میفرستم , و با کد زیر در صفحه اصلی محتوایی که ارسال کرده بودم رو به نمایش در میارم




<div class="nilo col-lg-8">

<?php

$qu = "select * from information";
$query = mysqli_query($db,$qu);

while ($post = mysqli_fetch_array($query)) {

$subject = $post['subject'];
echo "<h4>".$subject."</h4>";
$kholase = $post['kholase'];
echo "<h5>".$kholase."</h5>";
$info = $post['info'];
echo "<h2>".$post['info']."</h2>";



}


?>

</div>




4 تا فیلد دارم

ID , kholase,info,subject

در قسمت subject میام عنوان رو نمایش میدم

در قسمت kholase میام , خلاصه ای از مطلب رو قرار میدم

در info هم کل مطلب رو به نمایش در میارم

... حالا میخوام وقتی طرف بر روی ادامه مطلب کلیک کرد کل مطالب اجرا بشه یعنی همون info ..

دوستان ممنون میشم با کد بالایی که براتون گذاشتم ی توضیح یا سورس رو برام بزارید خیلی وقته درگیرش هستم

anvar
یک شنبه 01 آذر 1394, 09:48 صبح
در CMS ها معمولا یک صفحه برای لیست کردن مطالب ارسال شده (مثلا لیست مقالات - یا ارشیو مقالات یا لیست مقالات بعد از جستجوی کاربر) و یک صفحه برای نمایش کل متن مربوط به هر ارسال (مقلا صفحه نمایش کل متن یک مقاله) وجود داره. فرض می کنیم صفحه ای که لیست مقالات را نمایش می دهد index.php باشد و صفحه ای که کل متن مقاله را نمایش می دهد article.php باشد.

در صفحه ابندکس ما به 3 ایتم از هر مقاله یا پست نیاز داریم (ID - subject و kholase) در اینجا نیازی به کل متن مقاله یا همون info نداریم. در واقع فقط عنوان و یک چکیده چند خطی از مقاله رو نشون کاربر می دهیم تا اگر خواست کل مقاله را بخواند بر روی ادامه مطلب کلیک کند و به صفحه article.php برود و در این صفحه دوم تمام متن مقاله برایش نمایش داده شود.
در کدهای شما در این خط
echo "<h5>".$kholase."</h5>";
باید تغیراتی بدهیم و یک لینک ادامه مطلب اضافه کنیم تا کاربر با کلیک بر روی آن به صفحه مشاهده مقاله برود(معمولا از تگ های هدینگ یا همون h1 تا h6 برای عنوان ها استفاده می شود و برای متنی مثل خلاصه بهتره از تگ های دیگه مثل p استفاده کنید). بعد از تغییر می شود :
echo "<h5>".$kholase."</h5>" . "<a href='article.php?id=" . $id . "'>ادامه مطلب</a>" ;

برای گرفتن id در صفحه article.php به جای post از get استفاده می کنیم چون کوئری استرینگ با get ارسال می شه یعنی
$id = $get['id'];

در کدهای بالا متغیر $id رو با مقدار گرفته شده از دیتابیس ست کردیم و در کوئری استرینگ لینک ادامه مطلب قرار دادیم تا کاربر با کلیک بر روی آن به صفحه دوم یا همان article.php برود. در این صفحه چون Id پست یا مقاله را در کوئری استرینگ (همون آدرس بار صفحه مرورگر) داریم - می توانیم یک جستجو بزنیم و متن اصلی مقاله یا info رو بگیریم و به کاربر نشان بدهیم
در واقع کوئری ما در صفحه article.php به شکل زیر می شود و بقیه قسمت ها مشابه با کدهای خود شما است
select * from information where id=$id
این کوئری فقط اطلاعات یک مقاله با id مشخص شده را بر می گرداند و ما می تواینم اطلاعات info آن که همان متن اصلی مقاله یا مطلب هستند را نمایش دهیم

امیدوارم متوجه شده باشید

spy ir
یک شنبه 01 آذر 1394, 13:52 عصر
در CMS ها معمولا یک صفحه برای لیست کردن مطالب ارسال شده (مثلا لیست مقالات - یا ارشیو مقالات یا لیست مقالات بعد از جستجوی کاربر) و یک صفحه برای نمایش کل متن مربوط به هر ارسال (مقلا صفحه نمایش کل متن یک مقاله) وجود داره. فرض می کنیم صفحه ای که لیست مقالات را نمایش می دهد index.php باشد و صفحه ای که کل متن مقاله را نمایش می دهد article.php باشد.

در صفحه ابندکس ما به 3 ایتم از هر مقاله یا پست نیاز داریم (ID - subject و kholase) در اینجا نیازی به کل متن مقاله یا همون info نداریم. در واقع فقط عنوان و یک چکیده چند خطی از مقاله رو نشون کاربر می دهیم تا اگر خواست کل مقاله را بخواند بر روی ادامه مطلب کلیک کند و به صفحه article.php برود و در این صفحه دوم تمام متن مقاله برایش نمایش داده شود.
در کدهای شما در این خط
echo "<h5>".$kholase."</h5>";
باید تغیراتی بدهیم و یک لینک ادامه مطلب اضافه کنیم تا کاربر با کلیک بر روی آن به صفحه مشاهده مقاله برود(معمولا از تگ های هدینگ یا همون h1 تا h6 برای عنوان ها استفاده می شود و برای متنی مثل خلاصه بهتره از تگ های دیگه مثل p استفاده کنید). بعد از تغییر می شود :
echo "<h5>".$kholase."</h5>" . "<a href='article.php?id=" . $id . "'>ادامه مطلب</a>" ;

برای گرفتن id در صفحه article.php به جای post از get استفاده می کنیم چون کوئری استرینگ با get ارسال می شه یعنی
$id = $get['id'];

در کدهای بالا متغیر $id رو با مقدار گرفته شده از دیتابیس ست کردیم و در کوئری استرینگ لینک ادامه مطلب قرار دادیم تا کاربر با کلیک بر روی آن به صفحه دوم یا همان article.php برود. در این صفحه چون Id پست یا مقاله را در کوئری استرینگ (همون آدرس بار صفحه مرورگر) داریم - می توانیم یک جستجو بزنیم و متن اصلی مقاله یا info رو بگیریم و به کاربر نشان بدهیم
در واقع کوئری ما در صفحه article.php به شکل زیر می شود و بقیه قسمت ها مشابه با کدهای خود شما است
select * from information where id=$id
این کوئری فقط اطلاعات یک مقاله با id مشخص شده را بر می گرداند و ما می تواینم اطلاعات info آن که همان متن اصلی مقاله یا مطلب هستند را نمایش دهیم

امیدوارم متوجه شده باشید

ممنون از توضیح خیلی خوبتون.
فقط یک سوال ؟

اون کدبالایی که براتون گذاشتم برای نمایش محتوا به نظرتون خوبه؟ مشکلی نداره میتونم ازش استفاده کنم یا شما نظر دیگه ای دارید؟

anvar
یک شنبه 01 آذر 1394, 14:13 عصر
من در php تجربه کافی ندارم این رو باید باتجربه ها پاسخ دهند. اما

در کوئری شما
$qu = "select * from information";
به نظر من باید دقیقا ستون هایی سلکت بشن که 100% به ااونها نیاز داریم مثلا در صفحه لیست مطالب ما نیازی به ستون info نداریم پس نباید در کوئری اون رو لحاظ کنیم چون منابع سرور رو الکی مصرف می کنیم

باید ستون ها را با نام ذکر کنید مثلا
select id, column1, column2 , column3 from tablex

در این حالت سرعت پردازش بهتر خواهد شد