|
|
|
ขอความช่วยเหลือเรื่องการแบ่งหน้าครับ php ขอผู้รู้ช่วยด้วยครับ นั่งมึนอยู่หลายวันแล้วครับ |
|
|
|
|
|
|
|
ปัญหาคือ : เวลาคลิกหน้า page 2 ส่วนของ country จะเปลี่ยนไปเป็น country ที่ 2 อยากให้เปลี่ยน แต่ package นะครับ อยากขอความช่วยเหลือดังนี้คับ
อยากให้ส่วนของ country อยู่หน้าเดิม แต่จะให้เปลี่ยนในส่วนของ package เป็นหน้า 2
มีcode ที่เกี่ยวข้องอยู่ 2 ไฟล์ดังนี้ครับ
url ของไฟล์จะเป็นแบบนี้ครับ http://localhost/chnew/index.php/programtour/country/1
ส่วนในตารางฐานข้อมูลมีดังนี้ package_id, country_id ,package_title ,package_subtitle ,package_detail ,package_image, package_price package_file, package_map, package_start, package_end, package_weight,
ไฟล์แรกเป็นตัว controllers ชื่อไฟล์ programtour.php
Code (PHP)
<?php
class programtour extends CI_Controller {
function index() {
$data = array();
$dataContent = array();
$data['content'] = $this->load->view('programtour', $dataContent, true);
$data['page'] = 'programtour';
$data['subpage'] = 'programtour';
$data['title'] = 'Program Tour';
$this->load->view('masterpage', $data);
}
function country($id = 0, $page = 1) {
$data = array();
$dataContent = array();
$sql = "SELECT *
FROM tb_country
WHERE country_id = ?";
$query = $this->db->query($sql, array($id));
$row = $query->row_array();
$dataContent['country_name'] = $row['country_name'];
$data['header_banner'] = $row['country_image'];
$strSearch = "";
$url = 'programtour/country/';
$perPage = 6 ;
if (!is_numeric($page)) {
$page = 1;
}
$strWhere = 'WHERE package_isuse = 1';
$strOrder = 'ORDER BY package_weight DESC ';
$sql = "SELECT COUNT(package_id) AS totalData
FROM tb_package $strWhere ";
$query = $this->db->query($sql);
$row = $query->row_array();
$totalData = $row['totalData'];
$dataContent['totalData'] = $totalData;
$dataContent['pageList'] = $this->util_model->getPageLinkList($url, $strSearch, $totalData, $page, $perPage);
$afterData = ($page - 1) * $perPage;
$dataContent['page'] = $page;
$dataContent['perPage'] = $perPage;
$sql = "SELECT *
FROM tb_package
WHERE package_isuse = 1 AND country_id = ?
ORDER BY package_id DESC
LIMIT $afterData,$perPage";
$dataContent['query'] = $this->db->query($sql, array($id));
$data['content'] = $this->load->view( "country", $dataContent, true);
$data['page'] = 'programtour';
$data['subpage'] = 'country';
$data['title'] = 'Program Tour';
$this->load->view('masterpage', $data);
}
function detail($id = 0) {
$data = array();
$dataContent = array();
$sql = "SELECT *
FROM tb_package
LEFT JOIN tb_country
ON tb_package.country_id = tb_country.country_id
WHERE package_id = ? ";
$query = $this->db->query($sql, array($id));
$row = $query->row_array();
$dataContent['package_id'] = $row['package_id'];
$dataContent['country_id'] = $row['country_id'];
$dataContent['country_name'] = $row['country_name'];
$dataContent['package_title'] = $row['package_title'];
$dataContent['package_subtitle'] = $row['package_subtitle'];
$dataContent['package_detail'] = $row['package_detail'];
$dataContent['package_image'] = $row['package_image'];
$dataContent['package_price'] = $row['package_price'];
$dataContent['package_file'] = $row['package_file'];
$dataContent['package_map'] = $row['package_map'];
$dataContent['package_start'] = $row['package_start'];
$dataContent['package_end'] = $row['package_end'];
$dataContent['package_end'] = $row['package_end'];
$data['content'] = $this->load->view('programtour/detail', $dataContent);
}
}
?>
ไฟล์ที่ 2 เป็นไฟล์แสดงอยู่ในโฟลเดอร์ view ชื่อไฟล์ country
Code (PHP)
<div id="programtour_title">
<?=$country_name;?>
</div>
<div id="programtour_section">
<?
$count = 0;
foreach ($query->result_array() as $row) {
$count++;
?>
<div class="programtour_cover">
<div class="programtour_section">
<a href="<?= base_url(); ?>index.php/programtour/detail/<?=$row['package_id'];?>" class="fancybox">
<img src="<?= base_url(); ?>upload/thumb/<?=$row['package_image'];?>" class="capty" name="#caption<?=$count;?>" width="210"/>
</a>
<div id="caption<?=$count;?>"><a href="<?= base_url(); ?>index.php/programtour/detail/<?= $row['package_id']; ?>" class="fancybox">MORE</a></div>
</div>
<p align="center"><a href="<?= base_url(); ?>index.php/programtour/detail/<?=$row['package_id'];?>" class="fancybox"><?=$row['package_title'];?></a></p>
<p align="center"><a href="<?= base_url(); ?>index.php/programtour/detail/<?=$row['package_id'];?>" class="fancybox"><?=$row['package_subtitle'];?></a></p>
<p align="center">Price:<a href="<?= base_url(); ?>index.php/programtour/detail/<?=$row['package_id'];?>" class="fancybox"><?=$row['package_price'];?></a></p>
</div>
<? if ($count % 3 == 0) { ?>
<div class="clear"></div>
<? } ?>
<? } ?>
<div class="clear"></div>
<div style="text-align: center;"><?= $pageList; ?></div>
</div>
ขอความกรุณาผู้รู้ช่วยด้วยครับ ต้องการขอมูลส่วนไหนเพิ่มช่วยบอกด้วยครับ ถ้าผิดพลาดประการใดในการโพสต้องขออภัยด้วยครับ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2012-07-09 10:50:19 |
By :
choke1417 |
View :
1244 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอคำแนะนำด้วยครับ ความรู้น้อย ควรเพิ่มเติมส่วนไหนครับ
|
|
|
|
|
Date :
2012-07-09 11:51:14 |
By :
choke1417 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้า CI ลองถามคุณ mr.v ดูครับ
|
|
|
|
|
Date :
2012-07-09 21:58:43 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
http://localhost/chnew/index.php/programtour/country/1
เวลาคลิกหน้า 2 จะเป็นแบบนี้ถูกมั้ยครับ >> http://localhost/chnew/index.php/programtour/country/2
programtour คือตัว controller
country คือตัว method
ค่าเลข 2 ที่รับเข้าไปคือค่าแรกของ method 'country'
ทีนี้พอใน sql เป็นแบบนี้
Code (PHP)
$sql = "SELECT *
FROM tb_country
WHERE country_id = ?";
$query = $this->db->query($sql, array($id));
มันก็เลยไปรับค่าแรก คือค่าเลข 2 แล้วเอาไปใส่ where มันเลยได้ where country_id = 2
ทีนี้ต้องดูตรง pagination ด้วยครับว่าสร้างลิ้งค์ถูกรึเปล่า เพราะในโค้ดข้างบนไม่มี
มันจะสับสนตรงตัวเลขที่ส่งไปนี่แหละครับ ลองไล่ดูดีๆเดี๋ยวก็เจอ
|
|
|
|
|
Date :
2012-07-10 14:08:00 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับท่าน mr.v พอได้แนวทางบ้างแล้วครับ ยังไงขอลองไล่โค๊ดอีกที ถ้าไม่ได้ยังไงจะขอรบกวนสอบถามเพิ่มเติมนะครับ
ขอบคุณครับ
|
|
|
|
|
Date :
2012-07-10 15:56:20 |
By :
choke1417 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณวีมาตามคำเรียกร้อง
|
|
|
|
|
Date :
2012-07-10 20:49:05 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณวินมายกกันอย่างนี้ เดี๋ยวคนอื่นเขาก็หมั่นไส้ผมกันหมดพอดี
ในนี้คนเก่งๆ CI ก็มีมากมายนี่นาคร้าบบ
|
|
|
|
|
Date :
2012-07-11 14:24:01 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอสอบถามเพิ่มเติมครับยังใช้งานไม่ได้
ตอนนี้ผมสามารถทำให้คลิกไปหน้า 2 ได้แล้ว แต่ข้อมูลยังไม่เปลี่ยน เปลี่ยนแต่ url ควรเขียนเพิ่มตรงส่วนไหนครับ
http://localhost/ch2012/index.php/programtour/country/1/2
Code (PHP)
<?php
class programtour extends CI_Controller {
function index() {
$data = array();
$dataContent = array();
$data['content'] = $this->load->view('programtour/programtour', $dataContent, true);
$data['page'] = 'programtour';
$data['subpage'] = 'programtour';
$data['title'] = 'Program Tour';
$this->load->view('masterpage', $data);
}
function country($id = 0, $page = 1 ) {
$data = array();
$dataContent = array();
$sql = "SELECT *
FROM tb_country
WHERE country_id = ? ";
$query = $this->db->query($sql, array($id));
$row = $query->row_array();
$dataContent['country_name'] = $row['country_name'];
$cxid = $row['country_id'];
$data['header_banner'] = $row['country_image'];
$strSearch = "";
$url .= 'programtour/country/'.$id.'/';
//$url .= $page.'/';
$perPage = 1 ;
if (!is_numeric($page)) {
// $page = 1;
}
$strWhere = 'WHERE tb_package.country_id = tb_country.country_id AND package_isuse = 1 AND tb_country.country_id ='.$cxid ;
$strOrder = 'ORDER BY package_weight DESC ';
$sql = "SELECT COUNT(package_id) AS totalData
FROM tb_package , tb_country $strWhere ";
$query = $this->db->query($sql);
$row = $query->row_array();
$totalData = $row['totalData'];
$dataContent['totalData'] = $totalData;
$afterData = ($page - 1) * $perPage;
$dataContent['page'] = $page;
$dataContent['perPage'] = $perPage;
$dataContent['pageList'] = $this->util_model->getPageLinkList($url, $strSearch, $totalData, $page, $perPage);
$sql = "SELECT *
FROM tb_package , tb_country
$strWhere
$strOrder ";
$dataContent['query'] = $this->db->query($sql, array($id));
$data['content'] = $this->load->view('programtour/country', $dataContent, true);
$data['page'] = 'programtour';
$data['subpage'] = 'country';
$data['title'] = 'Program Tour';
$this->load->view('masterpage', $data);
}
}
?>
|
|
|
|
|
Date :
2012-07-16 09:30:46 |
By :
choke1417 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|