สอบถามเรื่องการเเสดงกระทู้ค่ะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามเรื่องการเเสดงกระทู้ค่ะ

สอบถามเรื่องการเเสดงกระทู้ค่ะ
<div id="newsfeed_contain">
<?php 
			  
			   //run number page
			  $strSQLa = "SELECT * FROM topic";
			  $resulta = mysql_query($strSQLa)or die(mysql_error().$strSQaL);
			  $runnumber = 0;
			  while ($rowa=mysql_fetch_array($resulta)){
			  //echo $row['topic_name'];			  
			  
			  $idMembera = $rowa['member_id'];
			  //echo $member_id."AAA<br>";
			  //echo $idMember."ddd<br>";
			  
			  $strSQL2a = "SELECT * FROM friend WHERE friend_1 = '$member_id' AND friend_2 = '$idMembera' ";
			  $result2a = mysql_query($strSQL2a)or die(mysql_error().$strSQL2a);
			  $row2a=mysql_fetch_array($result2a);
			  $friend2a = $row2a['friend_2'];
			  
			  if($friend2a != '' or $member_id == $idMembera){
				$runnumber = $runnumber + 1;
				
			  }
			  }
			  //run number page
			  
			  
			  $strSQL = "SELECT * FROM topic";
			  $result = mysql_query($strSQL)or die(mysql_error().$strSQL);
			  
				$Num_Rows = $runnumber;
				
				$Per_Page = 10;   // Per Page
				
				$Page = $_GET["Page"];
				if(!$_GET["Page"])
				{
					$Page=1;
				}
				
				$Prev_Page = $Page-1;
				$Next_Page = $Page+1;
				
				$Page_Start = (($Per_Page*$Page)-$Per_Page);
				if($Num_Rows<=$Per_Page)
				{
					$Num_Pages =1;
				}
				else if(($Num_Rows % $Per_Page)==0)
				{
					$Num_Pages =($Num_Rows/$Per_Page) ;
				}
				else
				{
					$Num_Pages =($Num_Rows/$Per_Page)+1;
					$Num_Pages = (int)$Num_Pages;
				}
				
				$strSQL .=" order by topic_id DESC ";
				$objQuery  = mysql_query($strSQL);
							  
			  //echo $Page;
			  $a = ($Page * $Per_Page) - 9;
			  $b = $Page * $Per_Page;
			  $c = 0;
			  //echo $a;
			  //echo " and ";
			  //echo $b;
			  while ($row=mysql_fetch_array($objQuery)){
				//while ($row=mysql_fetch_array($objQuery)){
			  //echo $row['topic_name'];			  
			  //echo $row=mysql_fetch_array($objQuery);
			  
			  
			  $idMember = $row['member_id'];
			  //echo $member_id."AAA<br>";
			  //echo $idMember."ddd<br>";
			  
			  $strSQL2 = "SELECT * FROM friend WHERE friend_1 = '$member_id' AND friend_2 = '$idMember' ";
			  $result2 = mysql_query($strSQL2)or die(mysql_error().$strSQL2);
			  $row2=mysql_fetch_array($result2);
			  $friend2 = $row2['friend_2'];
			  
			  if($friend2 != '' or $member_id == $idMember){
				  
				//$strSQL2 .=" order by friend DESC LIMIT $Page_Start , $Per_Page";
			  //while ($row10=mysql_fetch_array($objQuery)){
			  //echo $row2['friend_2'];
			  
			  
			  $strSQLmember = "SELECT * FROM member WHERE member_id = '$idMember'";
			  $resultmember = mysql_query($strSQLmember)or die(mysql_error().$strSQLmember);
			  $rowmember=mysql_fetch_array($resultmember);	
			  		  
			  $c = $c + 1;
			  if($b >= $a && $c >= $a){
			  
			  //echo $a;
			  //echo $member_name;
			  //echo $idMember;
			 
			  
			  //echo $rowfriend['friend_2'];
			  //if(mysql_query($rowmember)){
			  
			  ?>
              
              
<div class="newsfeed">
<div class="pic_newsfeed">
<?php if($rowmember['member_pic'] == ''){?>
                    <img src="images/bgprofile1.jpg" width="50" height="50" />
                    <?php }else{?>
                    <img src="myfile/<?php echo $rowmember["member_pic"];?>" width="50" height="50" />
                   <?php } ?>
</div>

<div class="text_newsfeed">
<span><?php echo $rowmember['member_name']?></span>
<span><?php echo $row['topic_date']; ?></span>
</div>

<div class="text_newsfeed2">
<!--<a href="news_feed_comment.php?topic_id=<?php echo $row["topic_id"];?>" class="new-webbroad">-->
<?php  echo $row['topic_name']; ?>
                      </a>
<span style="float:right"><input type="button" name="button" id="button" value="อ่านรายละเอียดโพสต์" onclick="window.location='news_feed_comment.php?topic_id=<?php echo $row["topic_id"];?>'" / class="btn btn-default"> </span>
</div>  

</div>              

<?php
			  $a = $a+1;			  
			 	 }
			  }
			  //$topic_date = $row['topic_date']."<br>";
			  //echo $row['topic_detail'];
			  
			  }
			?>
            
              <br>
ทั้งหมด 
<?= $Num_Rows;?> 
กระทู้ หน้า : 

<?
/*=$Num_Pages;*/
?><?
if($Prev_Page)
{
	echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< ก่อนหน้า</a> ";
}

for($i=1; $i<=$Num_Pages; $i++){
	$Page1 = $Page-2;
	$Page2 = $Page+2;
	if($i != $Page && $i >= $Page1 && $i <= $Page2)
	{
		echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i&txtKeyword=$_GET[txtKeyword]'>$i</a> ]";
	}
	elseif($i==$Page)
	{
		echo "<b> $i </b>";
	}
								}
if($Page!=$Num_Pages)
{
	echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>ถัดไป >></a> ";
}
            
     ?>   


</div>


Nathakarn 03-11-2014 19:49:47

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
จากโค้ดเป็นการเเสดงกระทู้ทั้งของผู้ใช้(user ที่  login)เเละของบุคคลที่เป็นเพื่อนกับผู้ใช้ ถ้าต้องการเเสดงกระทู้โดยที่ ไม่ต้องการเเสดงของผู้ใช้ ไม่ทราบว่าต้องเเก้ยังไงบ้างค่ะ

รายการข่าวใหม่
Sooo 03-11-2557 15:47:36
first time
NOO 21-10-2557 02:08:43
Realy
Mooo 14-10-2557 14:04:30
กกดกด
Mooo 14-10-2557 14:00:59
กกดกด
 


nathakarn 03-11-2014 20:24
 ความคิดเห็นที่ 2
โดยการดึงข้อมูลจาก 3 ตาราง คือ member  friend เเละ topic

member_id member_name
                 27 Mooo                   
                 28 NOO                    
                 29 Sooo                    


friend_id friend_1 friend_2
47             28            27           
48             27            28           
39             27            29           

topic_id topic_name topic_detail       member_id topic_date                  
117         test1               test1                    27                  03-10-2557 09:37:29
21           nach3             nach3                 28                  03-10-2557 10:13:33


nathakarn 03-11-2014 20:36
 ความคิดเห็นที่ 3
ไม่เข้าใจความสัมพันธ์ตารางเท่าไหร่
แต่ถ้า friend_1 คือ id ของผู้ใช้ friend_2 คือ id ของเพื่อน

ถ้าสมมตั ผู้ใช้คือ 27 ดังนั้น friend_1 คือ 27 
เพื่อนผู้ใช้ คือ friend_2 คือ 28

ุถ้าต้องการแสดงเฉพาะกระทู้ของ เพื่อนผู้ใช้ หรือเพื่อนของ friend_1 

SELECT a. * , b. * , c. * 
FROM topic a
LEFT JOIN (
member b, friend c
) 
ON a.member_id = b.member_id
AND a.member_id=c.friend_2
WHERE c.friend_1=27

ก็จะแสดงกระทู้ของ เพื่อนผู้ใช้ คือ friend_2 หรือ id เท่ากับ 28

 
topic_id topic_name topic_detail       member_id topic_date                  
21           nach3             nach3                 28                  03-10-2557 10:13:33


ninenik 04-11-2014
 ความคิดเห็นที่ 4
ขอบคุณค่ะที่เเนะนำ ความสัมพันธ์เป็นอย่างที่เข้าใจเลยค่ะ
ลองกลับไปเเก้ดูเเล้วค่ะ เเต่ตรงค่า c.friend_1=28 ถ้าเราไม่ฟิคค่ามันเเล้วใส่เป็นเงื่อนไขไม่ทราบว่าต้องทำอย่างไรค่ะ 
^^ มือใหม่ค่ะ ไม่ค่อยถนัดเท่าไหร่

<div id="newsfeed_contain">
<?php 
			  
			$strSQL = "SELECT a. * , b. * , c. * FROM topic a LEFT JOIN (member b, friend c) ON a.member_id = b.member_id AND a.member_id=c.friend_2 WHERE c.friend_1=28";
			$result = mysql_query($strSQL)or die(mysql_error().$strSQL);
			$rowmember=mysql_fetch_array($result);
		
			$Num_Rows = mysql_num_rows($result);
				
				$Per_Page = 10;   // Per Page
				
				$Page = $_GET["Page"];
				if(!$_GET["Page"])
				{
					$Page=1;
				}
				
				$Prev_Page = $Page-1;
				$Next_Page = $Page+1;
				
				$Page_Start = (($Per_Page*$Page)-$Per_Page);
				if($Num_Rows<=$Per_Page)
				{
					$Num_Pages =1;
				}
				else if(($Num_Rows % $Per_Page)==0)
				{
					$Num_Pages =($Num_Rows/$Per_Page) ;
				}
				else
				{
					$Num_Pages =($Num_Rows/$Per_Page)+1;
					$Num_Pages = (int)$Num_Pages;
				}
				
				$strSQL .=" order by a.topic_id DESC LIMIT $Page_Start , $Per_Page ";
				$result  = mysql_query($strSQL);
	  
			  while ($row=mysql_fetch_array($result)){
			  $topic_id = $row['a.topic_id'];
			  //echo $row['topic_name'];			  

			  ?>
              
              
<div class="newsfeed">
<div class="pic_newsfeed">
<?php if($rowmember['member_pic'] == ''){?>
                    <img src="images/bgprofile1.jpg" width="50" height="50" />
                    <?php }else{?>
                    <img src="myfile/<?php echo $rowmember["member_pic"];?>" width="50" height="50" />
                   <?php } ?>
</div>

<div class="text_newsfeed">
<span><?php echo $rowmember['member_name']?></span>
<span><?php echo $row['topic_date']; ?></span>
</div>

<div class="text_newsfeed2">
<!--<a href="news_feed_comment.php?topic_id=<?php echo $row["topic_id"];?>" class="new-webbroad">-->
<?php  echo $row['topic_name']; ?>
                      </a>
<span style="float:right"><input type="button" name="button" id="button" value="อ่านรายละเอียดโพสต์" onclick="window.location='news_feed_comment.php?topic_id=<?php echo $row["topic_id"];?>'" / class="btn btn-default"> </span>
</div>  

</div>              

<?php			  
			  }
			  ?>
			       
</div>
<div>
ทั้งหมด
<?= $Num_Rows;?>
โพสต์หน้า :&nbsp;
              
              <!--: หน้าที่ -->
			  <?
			  //$Num_Pages;
			  ?> 
              <?
              if($Prev_Page)
              {
                  echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< ก่อนหน้า</a> ";
              }
              
              for($i=1; $i<=$Num_Pages; $i++){
                  $Page1 = $Page-2;
                  $Page2 = $Page+2;
                  if($i != $Page && $i >= $Page1 && $i <= $Page2)
                  {
                      echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i&txtKeyword=$_GET[txtKeyword]'>$i</a> ]";
                  }
                  elseif($i==$Page)
                  {
                      echo "<b> $i </b>";
                  }
                                              }
              if($Page!=$Num_Pages)
              {
                  echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>ถัดไป >></a> ";
              }
			?>
</div>

จากโค้ดจะดึง topic ของเพื่อนของผู้ใช้ออกมาครบหมดค่ะ เเต่พอฟิกค่า ชื่อ รูปภาพ ที่เเสดงจะเป็นของเพื่อนคนที่ 28 ทั้งที่ความจิงเป็นจิงเพื่อนคนที่ 29
จากภาพ หัวข้อ first time เป็นของเพื่อนคนที่ 29 นอกนั้นเป็นของเพื่อนคนที่ 28  คือถ้าเราฟิกเพื่อนคนไหนชื่อกับรูปภาพจะเป็นของเพื่อนคนดังกล่าวค่ะ
เเต่ เมื่อกด อ่านรายละเอียดโพสต์ รายละเอียดข้างในก็ถูกต้องค่ะ 

รายการข่าวใหม่
Mooo 03-11-2557 15:47:36
first time
Mooo 14-10-2557 14:04:30
กกดกด
Mooo 14-10-2557 14:00:59
กกดกด
 


nathakarn 04-11-2014 13:11
 ความคิดเห็นที่ 5
ตัวเลข 28 ก็เปลี่ยนเป็นตัวแปร session หรือ ตัวแปร id ของคนที่ล็อกอินอยู่ ถ้าไปฟิกแบบนั้น ค่าก็จะเป็นแค่ค่าเดิม
ที่ใส่ไป แค่เป็นตัวอย่าง

ส่วนการเรียกใช้รูป น่าจะใช้ คิวรี่ตัวเดียว

$rowmember['member_pic']  อันนี้ไม่ต้องใช้น่าจะได้
ใช้เป็นตัวคิวรี่ตัวเดียวกเลย เป็น $row['member_pic''];
 
คิวรี่แรก $rowmember อันนี้ไม่น่าจะต้องใช้งาน  คงต้องลองไล่ดูเพิ่ม
เติมเพราะ รายละเอียดขึ้นกับข้อมูลด้วย


ninenik 04-11-2014
 ความคิดเห็นที่ 6
เเก้ได้เเล้วค่ะ โดยการใส่ตัวแปร id ของคนที่ล็อกอินอยู่ 

ขอบคุณมากๆค่ะ ^^


nathakarn 04-11-2014 17:28
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ