ต้องการ query ข้อมูลออกมาครั้งเดียว แต่แสดงทีละ 7 คน โดยไม่ต้องเปลี่ยนหน้า page

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

ภาพประจำตัวสมาชิก
cherrynaja
PHP Newbie
PHP Newbie
โพสต์: 9
ลงทะเบียนเมื่อ: 24/03/2012 2:13 am

ต้องการ query ข้อมูลออกมาครั้งเดียว แต่แสดงทีละ 7 คน โดยไม่ต้องเปลี่ยนหน้า page

โพสต์ที่ยังไม่ได้อ่าน โดย cherrynaja »

สมมติว่ามีข้อมูลของสมาชิกทั้งหมด n คน

แล้วต้องการ query ให้ข้อมูลแสดงทีละ 7 คน

ซึ่งตอนนี้ใช้ code แบบนี้เขียนอยู่

code ของไฟล์ person.php

โค้ด: เลือกทั้งหมด

<?php
	
  include ("connectdb.inc");
  
	$sql = "SELECT * FROM friend WHERE id = ".$_GET["id"];
	$result = mysql_query($sql,$con);
	

	while($row = mysql_fetch_array($result)){

		echo $row["id"]." ".$row["FirstName"]." ".$row["LastName"]." ".$row["Status"];

	}

	mysql_close();

?>
code ของไฟล์ index.php

โค้ด: เลือกทั้งหมด

<?php

  include ("connectdb.inc");
  
  if (isset($_GET["page"])) {
    $page = $_GET["page"];
    } else
      $page=1;
      
  $start_from = ($page-1) * 7;
  $sql = "SELECT * FROM friend LIMIT $start_from, 7 ";
  $result = mysql_query($sql,$con);
      
  if (!$result)
    echo("Program error...!!!");
    else{ 
   
          $i = 1;
          $k = 59;
          
          echo "<table><tr>";
          
          while($row = mysql_fetch_array($result)){
            
            $id = $row['id'];
            $name = $row['FirstName'];
            
            echo "<td  align='center' style='position:absolute; left:".$k."px; top:20px;'>";
            
              echo "<a href='person.php?id=".$id."' target='whiteboard'><img src="></a>";
            
              echo "<br/>";
              
              if(strlen($name) > 8){
                echo "<a href='person.php?id=".$id."' target='whiteboard' class='username'>".substr($name, 0 ,6)."</a>";
                echo "<a href='person.php?id=".$id."' target='whiteboard' class='username'>...</a>";
                }
              else
                echo "<a href='person.php?id=".$id."' target='whiteboard' class='username'>".$name."</a>";
            
              echo "<br/>";
            
              $k = $k+84;  
            
            echo "</td>";
            
            $i++;
            if ($i == 8) break;
          }
          
          echo "</tr></table>";          
          
            $total_pages = 3;
            if ($page < $total_pages)
              echo "<a href='friend.php?page=".($page+1)."' target='_self'><img src='images/next.gif' class='over' border='0'/></a>";
            else
              echo "<img src='images/next.gif'/>";

    }   

  mysql_close($con);
  
?>

จะเห็นว่าส่วนที่เป็นลิ้ง next จะใช้เป็นลิ้งค์ซึ่งเป็นการเปิดข้อมูลเปลี่ยนหน้าไปเรื่อยๆ มันทำให้ต้องขึ้นหน้าใหม่ ไม่อยู่ในลิ้งค์หน้าเดิม

โค้ด: เลือกทั้งหมด

            if ($page < $total_pages)
              echo "<a href='friend.php?page=".($page+1)."' target='_self'><img src='images/next.gif' class='over' border='0'/></a>";
            else
              echo "<img src='images/next.gif'/>";
ถ้าต้องการให้ query ข้อมูลออกมาภายในครั้งเดียว

แล้วแสดงออกทีละ 7 คน

แล้วใช้ปุ่ม next เพื่อเลื่อนไปเรื่อยๆ จนครบทุกคน โดยไม่ต้องขึ้นเปลี่ยนหน้า page ใหม่ ให้อยู่ในหน้า page เดิม

จะต้องทำยังไงคะ? ใช้จาว่ารึป่าว หรือไม่ต้องใช้ ก็ทำได้คะ?
tohkai_php
PHP Sr. Member
PHP Sr. Member
โพสต์: 95
ลงทะเบียนเมื่อ: 10/04/2012 9:09 am

Re: ต้องการ query ข้อมูลออกมาครั้งเดียว แต่แสดงทีละ 7 คน โดยไม่ต้องเปลี่ยนหน้า page

โพสต์ที่ยังไม่ได้อ่าน โดย tohkai_php »

น่าจะทำได้วิธีนะ
1 คือใช้ ajax request เอา จะถึงทีละเจ็ดแต่เอามาแสดงแบบไม่รีเฟรช
2 ใช้คิวรี่มาหมดใส่ array ไว้แล้วลูปออกทีละเจ็ด หรือใส่ div ซ่อนไว้คลิกแล้วแสดงทีละเจ็ดจะเป็นลักษณะคล้าย tab
แต่ส่วนมากจะใช้ ข้อ 1 ถ้าใช้ jquery จะง่ายดีเป็นแนวทางครับรองดู
ภาพประจำตัวสมาชิก
cherrynaja
PHP Newbie
PHP Newbie
โพสต์: 9
ลงทะเบียนเมื่อ: 24/03/2012 2:13 am

Re: ต้องการ query ข้อมูลออกมาครั้งเดียว แต่แสดงทีละ 7 คน โดยไม่ต้องเปลี่ยนหน้า page

โพสต์ที่ยังไม่ได้อ่าน โดย cherrynaja »

ทำได้แล้วนะคะ ตกลงว่าใช้ Ajax จ้า

ขอบคุณทุกคนมากนะคะ ที่ช่วยเข้ามาตอบ ^^
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 72