iT邦幫忙

0

PHP 產品頁瀏覽

想請問一下各位有經驗的前輩
我想做一個 一頁大概16張產品的圖片
點選圖片後 會產生新的頁面
顯示產品的資訊
請問我要我們去寫 沒這方面的經驗 誠心請教各位

前提 資料已經建好 是用apache架設mysql 所以我只能用php去寫

2 個回答

6
ccutmis
iT邦高手 8 級 ‧ 2011-08-26 13:31:48
最佳解答

1.先建立範例資料庫:

<pre class="c" name="code">
# 資料表格式: `product`
#

CREATE TABLE `product` (
  `pid` bigint(11) unsigned NOT NULL auto_increment,
  `pname` varchar(100) NOT NULL default '',
  `pdate` bigint(11) NOT NULL default '0',
  `pimg` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`pid`)
) TYPE=MyISAM AUTO_INCREMENT=6 ;

#
# 列出以下資料庫的數據: `product`
#

INSERT INTO `product` VALUES (1, '產品名01', 1313121600, 'demo01.jpg');
INSERT INTO `product` VALUES (2, '產品名02', 1313121600, 'demo02.jpg');
INSERT INTO `product` VALUES (3, '產品名03', 1313121600, 'demo03.jpg');
INSERT INTO `product` VALUES (4, '產品名04', 1313121600, 'demo04.jpg');
INSERT INTO `product` VALUES (5, '產品名05', 1313121600, 'demo05.jpg');

2.產品列表頁範例(products.php)

<pre class="c" name="code">
<?php
// 資料庫資訊
$dbhost = 'localhost'; // 資料庫主機名
$dbname = 'testProd'; //資料庫名稱
$dbuser = 'root'; //資料庫用戶名
$dbpasswd = ''; //資料庫密碼
?>
<?php
$i=0;
$where_str='';
$per_page = 5; //每頁最多5筆,這數字可以自由更改
if(isset($_GET['page'])){
	$page=$_GET['page'];
}else{
	$page=1;
}
$start = ($page-1)*$per_page;
$where_str='';
?>
<?php
 $link = mysql_connect($dbhost,$dbuser,$dbpasswd) or die ("-1");
  mysql_select_db($dbname) or die("cannot connect to db");
  $query = "SELECT * FROM product $where_str ORDER BY pid DESC ";
  $result = mysql_query($query) or die("cannot connect to table" . mysql_error( ));
  $I=0;
  while ( $row = mysql_fetch_array($result) ) {
	$I++;
  }
  $total=$I;
  $pages=ceil($total/$per_page);
  if($page>$pages) $page=$pages;
  $start = ($page-1)*$per_page;
?>

<html xmlns="http://www.w3.org/1999/xhtml">


<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>:::::Product Catelog:::::</title>


<?php
$imgBaseUrl='testProdImg/'; //假設圖片放在testProdImg資料夾
if($total>0){
$orderBy='pid';
$upDown='desc';
$i = $start;
$query = "SELECT * FROM product $where_str 	ORDER BY $orderBy $upDown limit $start, $per_page";
$result = mysql_query($query) or die("Error:" . mysql_error( ));
	while($rs = mysql_fetch_array($result))
	{
		$i++;
?>
	<p style="padding:5px;border:solid 1px #aaa;margin:5px;">
		<a href="productDetails.php?pid=<?php echo $rs['pid']; ?>" >
			<img src="<?php $imgBaseUrl.$rs['pimg']; ?>" />
			產品名:<?php echo $rs['pname']; ?>

		</a>
	</p>
<?php
	} //while
?>
<?php 
} /* if $total>0 end */ 
?>

<?php
if($total>$per_page){
	if($page!=1){
		echo '<a href="products.php?page='.($page-1);
		echo '">上一頁</a>';
	}else{
		echo '<span class="noLink">上一頁</span>';
	}
	echo ' ';
	for($pi=1;$pi<=$pages;$pi++){
		//echo $pi;
		if($pi==$page){
			echo ' [ '.$pi.' ] ';
		}else{
			echo '<a href="products.php?page='.($pi);
			echo '"> '.$pi.' </a>';
		}
	}
	echo ' ';
	if($page!=$pages){
		echo '<a href="products.php?page='.($page+1);
		echo '">下一頁</a>';
	}else{
		echo '<span class="noLink">下一頁</span>';
	}

}?>

3.產品細節頁範例(productDetails.php)

<pre class="c" name="code">
<?php
// 資料庫資訊
$dbhost = 'localhost'; // 資料庫主機名
$dbname = 'testProd'; //資料庫名稱
$dbuser = 'root'; //資料庫用戶名
$dbpasswd = ''; //資料庫密碼
?>
<?php
if(!isset($_GET['pid'])){
	//沒有pid則直接跳轉回products.php
	header("location: products.php");
}else{
	$pid=$_GET['pid'];
}
?>
<?php
 $link = mysql_connect($dbhost,$dbuser,$dbpasswd) or die ("-1");
  mysql_select_db($dbname) or die("cannot connect to db");
  $query = "SELECT * FROM product where pid=$pid ORDER BY pid DESC ";
  $result = mysql_query($query) or die("cannot connect to table" . mysql_error( ));
?>

<html xmlns="http://www.w3.org/1999/xhtml">


<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>:::::Product Catelog:::::</title>


<a href="products.php">回產品列表頁</a>
<?php
while($rs = mysql_fetch_array($result))
	{
		$i++;
?>
	<p style="padding:5px;border:solid 1px #aaa;margin:5px;">
		產品名:<?php echo $rs['pname']; ?>
		<br />
		日期:<?php echo date("Y-m-d",$rs['pdate']); ?>
		<br />
		產品圖:<?php echo $rs['pimg']; ?>

	</p>
<?php
} //while
?>

====================================
說明:
如果您對PHP程式沒有很熟的話,建議您使用DREAMWEAVER,它可以用拖曳的方式很快速建立PHP+MySQL程式碼,直接去找書來看吧~ 如果不熟又不想花時間找書的話,那直接花錢找外包比較快~

4
fantsyss
iT邦新手 2 級 ‧ 2011-08-17 15:47:47

看是要用哪種特效,基本上這是java在做的,不太需要資料庫去運行

可以採用lightbox來做。將跳出來的產品頁面用成jpg檔之類的然後再將語法嵌入
http://www.tdes.chc.edu.tw/works/computer/homepage/lightbox2/index.asp

看更多先前的回應...收起先前的回應...
bryan421 iT邦新手 5 級 ‧ 2011-08-17 15:52:24 檢舉

lightbox 我有做過 可是交代我做的人不滿意
他比較希望 能類似http://www.mighty-seven.com/products/products.asp

fantsyss iT邦新手 2 級 ‧ 2011-08-18 09:06:19 檢舉

這個也只是單純的超連結。

ccutmis iT邦高手 8 級 ‧ 2011-08-18 13:18:07 檢舉

並不是如fantsyss大大說的單純的超連結喔~ 這應該是會有兩頁的php程式...

  1. products.php (產品列表頁,連結後面帶產品ID)
  2. productDetails.php (產品說明頁,由產品ID作索引值來取得資料庫內容)
    這是web1.0時代很普遍的技術。
bryan421 iT邦新手 5 級 ‧ 2011-08-23 09:59:01 檢舉

如cctmis所言 我要的就是這種的 productDetails.php 這種頁面我該如何去設計??

fantsyss iT邦新手 2 級 ‧ 2011-08-26 13:56:47 檢舉

抱歉..可能我不是很懂樓主到底要什麼樣的效果吧...

bryan421 iT邦新手 5 級 ‧ 2011-08-26 15:29:34 檢舉

感謝ccutmis 這我會好好研究的
感謝fantsyss 雖然不是我要的 不過還是謝謝你

我要發表回答

立即登入回答