نمایش رکوردها به‌ این شکل...

سلام ،
تیبل من به‌ این شکل هست:
id,title,category
من میخوام به‌ این صورت که‌ در این عکس میبیند خبرها رو نمایش بدم، جدیدترین 5 تا خبر در قسمت بالا از همه‌ category ها نمایش داده‌ بشه‌، هنگامیکه‌ خبر جدید میاد آخرین خبر در‌ category مربوط خودش نمایش داده‌ بشه‌ مثلا شماره‌ 6که‌ اضافه‌ شد، آخرین خبر که‌ در قسمت بالا هست بیاد در category2 نمایش داده‌ بشه‌ و به‌ همین صورت در مورد category1

میشه‌راهنمایی کنید باید چی کار کنم؟؟
 

پیوست ها

  • 1.jpg
    1.jpg
    34.1 کیلوبایت · بازدیدها: 21
دوست عزیز من 3 تا کوئری درست کردم به‌ این صورت:
برای قسمت بالا
PHP:
select * from `table` order by `id` DESC limit 5

واسه‌ قسمت category1
PHP:
select * from `table` where `category` = '1' order by `id` DESC limit 5

واسه‌ قسمت category2
PHP:
select * from `table` where `category` = '2' order by `id` DESC limit 5

مشکل اینجاست که‌ خبرها هم در قسمت بالا و هم قسمت category خبرها دیده‌ میشن من میخوام اول در قسمت بالا بعد بیاد تو قسمت خاص خودش مشاهده‌ بشه‌

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

D.A.V.O.O.D

Member
ببین دوست من این 3 تا Query که شما نوشتی کاراشون به این ترتیبه که :
اولی : 5 خبر آخر رو نشون می ده
دومی : 5 خبر آخر موضوع 1 رو نشون می ده
سومی : 5 خبر آخر موضوع 2 رو نشون می ده .

خوب مسلمه که خبر ها هم تو مورد یک بیاد و هم تو مورد دو یا سه .

شما دقیق بگو چه کاری می خوای انجام بدی ، چون تو عکس زیاد واضح نبود
 

Mr.Steres

Active Member
الان با این 3 کوئری نباید مشکلی داشته باشی ! دقیق توضیح بده الان مشکلت چیه ؟
 
مشکل اینه‌ که‌ من نمیخوام خبرهایی در بخش بالا نشون داده‌ شده‌(5تای اول) دوباره‌ تو قسمت پایین(category1 یا category2) نمایش داده‌ بشه‌.
 

D.A.V.O.O.D

Member
خب پیشنهاد من اینه که id پنج خبر آخر را توی یه آرایه بریزی و بعد توی نمایش قسمت خبر های category قبلش چک کنی اگه id توی آرایه بود چاپش نکنه و اگر نبود چاپ کنه ، فعلا این به ذهنم رسید .
 
خوب حالا چی جور این id ها رو تو آرایه‌ بزارم و بعد چک کنم؟؟ مخم کار نمیکنه‌ خسته‌ام کرد
 

D.A.V.O.O.D

Member
PHP:
$Query1 = mysql_query( "Select * from `table` order by `id` DESC LIMIT 0 ,5" );
while( $r = mysql_fetch_assoc( $Query1 ) )
{
   $ID[] = $r['id'];
}

$Query2 = mysql_query( "Select * from `table` where `category` = '1' order by `id` DESC LIMIT 0 ,5" );
while( $r = mysql_fetch_assoc( $Query2 ) )
{
   if(! in_array( $r['id'] , $ID ) )
   {
      echo $r['title'];
   }
}

$Query3 = mysql_query( "Select * from `table` where `category` = '2' order by `id` DESC LIMIT 0 ,5" );
while( $r = mysql_fetch_assoc( $Query3 ) )
{
   if(! in_array( $t['id'] , $ID ) )
   {
      echo $t['title'];
   }
}
 
آقا نمیشه‌ که‌ نمیشه‌
PHP:
<?php require_once('Connections/hh.php');
mysql_select_db($database_hh, $hh);
$Query1 = mysql_query( "Select * from t_news order by `id` DESC LIMIT 0 ,5" );
while( $r = mysql_fetch_assoc( $Query1 ) )
{
   $ID[] = $r['id'];
}

$Query2 = mysql_query( "Select * from t_news where cat= '1' order by `id` DESC LIMIT 0 ,5" );
while( $s = mysql_fetch_assoc( $Query2 ) )
{
   if(! in_array( $r['id'] , $ID ) )
   {
      echo $s['title']; echo "<br/>"; 
   }
}

?>

حتی با 2 تا کوئری هم نمیشه‌، تیبل رو هم میتونی ببینی attach
 

پیوست ها

  • t_news.rar
    536 بایت · بازدیدها: 0

D.A.V.O.O.D

Member
سلام دوست عزیز
اینو یه تست کن ان شاالله که مشکلت حل میشه .
PHP:
<?PHP
require_once('Connections/hh.php');
mysql_select_db($database_hh, $hh); 

$ID = array();
$Query1 = mysql_query( "Select * from `t_news` order by `id` DESC LIMIT 0 ,5" );
while( $r = mysql_fetch_assoc( $Query1 ) )
{
   $ID[] = $r['id'];
   echo "Latest News :<br />";
   echo $r['title'];
   echo "<br />";
}

$Count = 1;
$Query2 = mysql_query( "Select * from `t_news` where `cat` = '1' order by `id` DESC" );
while( $r = mysql_fetch_assoc( $Query2 ) )
{
   if( in_array( $r['id'] , $ID ) and $Count > 5 )
   {
   } else
   {
      echo "Latest News In Category 1 :<br />";
      echo $r['title'];
      echo "<br />";
   }
   $Count++;
}

$Count = 1;
$Query3 = mysql_query( "Select * from `t_news` where `cat` = '2' order by `id` DESC" );
while( $r = mysql_fetch_assoc( $Query3 ) )
{
   if( in_array( $r['id'] , $ID ) and $Count > 5 )
   {
   } else
   {
      echo "Latest News In Category 2 :<br />";
      echo $r['title'];
      echo "<br />";
   }
   $Count++;
}
?>
 
بازم نشد، همون id های که‌ تو latestnews هستش دوباره‌ تو قسمت category1 نمایش داده‌ میشه‌
آقا 3 تا کوئری رو بیخیال همون 2 تا کوئری کافیه‌

PHP:
<?PHP
require_once('Connections/hh.php');
mysql_select_db($database_hh, $hh); 

$ID = array();
$Query1 = mysql_query( "Select * from `t_news` order by `id` DESC LIMIT 0 ,5" );
while( $r = mysql_fetch_assoc( $Query1 ) )
{
   $ID[] = $r['id'];
   echo "Latest News :<br />";
   echo $r['title'];
   echo "<br />";
}
echo "<hr />";
$Count = 1;
$Query2 = mysql_query( "Select * from `t_news` where `cat` = '1' order by `id` DESC" );
while( $r = mysql_fetch_assoc( $Query2 ) )
{
   if( in_array( $r['id'] , $ID ) and $Count > 5 )
   {
   } else
   {
      echo "Latest News In Category 1 :<br />";
      echo $r['title'];
      echo "<br />";
   }
   $Count++;
}

?>
 

Allahparast

Member
حالت نماییش کوئری هاتون می خواین اینطوری باشه ؟
من اینو واسه یه سایت خبری نوشتم اگه همینه راهنماییت کنم ؟
 

پیوست ها

  • ffff.gif
    ffff.gif
    14.1 کیلوبایت · بازدیدها: 4
نه‌ دوست عزیز به‌ این شکل نمیخوام.
ببنید تیبل من به‌ این شکل هست:
PHP:
id | title | cat |
------------------
1  | a     |  1  |
2  | b     |  2  |
3  | c     |  2  |
4  | d     |  2  |
5  | e     |  1  |
6  | f     |  2  |
7  | g     |  1  |
8  | h     |  1  |
9  | i     |  2  |
10 | j     |  1  |
حالا 2 تا کوئری دارم به‌ این شکل:
واسه‌ 3 تا آخرین خبر
PHP:
$Query1 = mysql_query( "Select * from `t_news` order by `id` DESC LIMIT 5" );
واسه‌ 3 تا آخرین خبر از موضوع 1
PHP:
$Query2 = mysql_query( "Select * from `t_news` where `cat` = '1' order by `id` DESC" )

حالا به‌ این شکل میخوام نمایشون بدم بدون اینکه‌ خبرها تکرار بشه‌:
HTML:
latest news
----------------------
10   j   1
9    i   2
8    h   1

Latest News cat 1
---------------------
7   g   1
5   e   1
1   a   1

امیدوارم منظورم رو واضح گفته‌ باشم
 

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

بالا