โค๊ดจัดอันดับสินค้าขายดี อยากได้โค๊ดการจัดอันดับสินค้าขายดี 3 อันดับ เพราะนึกไม่ออกว่าเขียนยังไง
ขอโค๊ดแบบเต็มๆได้ไหมครับ....คิดไม่ออกแล้ว
Date :
2009-11-17 20:14:25
By :
rukthao
เอาโค้ดที่เขียนไว้มาดูด้วยกันสิครับ
Date :
2009-11-17 20:20:08
By :
Sek-Artdrinker
ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อดึงข้อมูลจาก Table มาแสดงและมีการแบ่งการแสดงผลเป็นหน้า
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<body>
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM customer ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 2; // 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 CustomerID DESC LIMIT $Page_Start , $Per_Page"; //แก้ไขตรงนี้ไง DESC ครับ
$objQuery = mysql_query($strSQL);
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["CustomerID"];?></div></td>
<td><?=$objResult["Name"];?></td>
<td><?=$objResult["Email"];?></td>
<td><div align="center"><?=$objResult["CountryCode"];?></div></td>
<td align="right"><?=$objResult["Budget"];?></td>
<td align="right"><?=$objResult["Used"];?></td>
</tr>
<?
}
?>
</table>
<br>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
}
mysql_close($objConnect);
?>
</body>
</html>
Ref : PHP MySQL List Record Paging/Pagination
Date :
2009-11-17 20:45:09
By :
panyapol
ลองแล้วครับ
SELECT products.id,products.name,SUM(order_details.qty) AS sum_qty
FROM orders
INNER JOIN order_details ON orders.id=order_details.order_id
INNER JOIN products ON products.id=order_details.product_id
WHERE YEAR(orders.create_at)='2009'
GROUP BY products.id
ORDER BY sum_qty DESC;
Date :
2009-11-17 21:36:56
By :
num
ขอบคุณครับที่ช่วยเหลือ
Date :
2009-11-18 18:33:37
By :
rukthao
Warning: mysql_connect(): Access denied for user: 'root@localhost' (Using password: YES) in c:\appserv\www\bookshop\bestseller.php on line 10
Error Connect to Database
นำไปใส่แล้วมันขึ้นแบบนี้ครับ
Date :
2009-11-18 23:59:51
By :
rukthao
อืมม connection ผิดครับ
Date :
2009-11-19 01:34:49
By :
plakrim
แก้ไขแล้ว..คราวนี้ขึ้นแบบนี้อีกครับ
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\appserv\www\bookshop\bestseller.php on line 71
ขอแบบจัดอันดับ5อันดับอย่างเดียวไหมคับ..แบบว่าถ้ามีคนซื้อสินค้าชนิดเดียวกันให้แสดงในบรรทัดเดียวกัน
Date :
2009-11-19 13:51:54
By :
rukthao
ถ้าเราจะดึงข้อมูลจากฐานข้อมูล2ฐานมาแสดงในบรรทัดเดียวกัน
Date :
2009-11-19 20:40:40
By :
rukthao
โค๊ดที่ให้มาใช้ได้ครับ
แต่ งานที่ทำส่งอาจารย์ จะต้องดึงข้อมูลจาก2table มาแสดง
จะต้องเขียนยังไงครับ.....ตอนนี้คิดไม่อกแล้วครับ...ไม่สบายด้วย...ช่วยด้วยครับ
ซึ่ง tableแรก จะเป็น bs_book กับ bs_order_detail ครับ
และใน2tableนี้ จะมี book_barcode และมียอดสั่งซื้ออยู่ด้วยคือ quantity
Date :
2009-11-21 11:20:06
By :
rukthao
<?php
require_once('Connections/book.php'); //ติดต่อฐานข้อมูล
$sql = mysql_query("
SELECT book.bk_tt,count( order_detail.odt_book )
FROM book, order_detail
WHERE book.bk_id=order_detail.odt_book
GROUP BY order_detail.odt_book
ORDER BY `count( order_detail.odt_book )` desc
LIMIT 0 , 5" );
/*
join book กับ order_detail
สั่งให้นับจำนวนหนังสือใน order_detail ด้วย count( order_detail.odt_book )
สั่งให้เรียงรายการจำนวนที่ขายได้มากสุดอยู่บนด้วย ORDER BY `count( order_detail.odt_book )` desc
สั่งจัดกลุ่มข้อมูลที่เหมือนๆกันให้เหลือแค่รายการเดียวด้วย GROUP BY order_detail.odt_book
สั่งให้มี 5อันดับหนังสือขายดี ด้วย LIMIT 0 , 5
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>อันดับหนังสือขายดี</title>
</head>
<body>
<p align="center">อันดับหนังสือขายดี</p>
<table width="100%" border="1" cellpadding="8">
<tr bgcolor="#00FF00">
<td><div align="center">รูป</div></td>
<td><div align="center">รายการหนังสือ</div></td>
<td><div align="center">จำนวน</div></td>
</tr>
<?php while ($row = mysql_fetch_array($sql)) { ?>
<tr>
<td> </td>
<td><?php echo $row['bk_tt']; ?></td>
<td><?php echo $row['count( order_detail.odt_book )']; ?></td>
</tr>
<?php } ?>
</table>
<p> </p>
</body>
</html>
<?php
mysql_free_result($sql);
?>
<?
/*
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- โฮสต์: localhost
-- เวลาในการสร้าง: 20 ส.ค. 2010 น.
-- รุ่นของเซิร์ฟเวอร์: 5.0.51
-- รุ่นของ PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- ฐานข้อมูล: `book`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `book`
--
CREATE TABLE `book` (
`bk_id` text NOT NULL,
`bk_tt` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- dump ตาราง `book`
--
INSERT INTO `book` VALUES ('0101', 'php');
INSERT INTO `book` VALUES ('0102', 'java');
INSERT INTO `book` VALUES ('0103', 'dream');
INSERT INTO `book` VALUES ('0104', 'jsp');
INSERT INTO `book` VALUES ('0105', 'database');
INSERT INTO `book` VALUES ('0106', 'joomla');
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `order_detail`
--
CREATE TABLE `order_detail` (
`odt_id` int(5) NOT NULL auto_increment,
`odt_book` text NOT NULL,
PRIMARY KEY (`odt_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
--
-- dump ตาราง `order_detail`
--
INSERT INTO `order_detail` VALUES (1, '0101');
INSERT INTO `order_detail` VALUES (2, '0101');
INSERT INTO `order_detail` VALUES (3, '0101');
INSERT INTO `order_detail` VALUES (4, '0102');
INSERT INTO `order_detail` VALUES (5, '0102');
INSERT INTO `order_detail` VALUES (6, '0103');
INSERT INTO `order_detail` VALUES (7, '0102');
INSERT INTO `order_detail` VALUES (8, '0102');
INSERT INTO `order_detail` VALUES (9, '0102');
INSERT INTO `order_detail` VALUES (10, '0102');
INSERT INTO `order_detail` VALUES (11, '0104');
INSERT INTO `order_detail` VALUES (12, '0104');
INSERT INTO `order_detail` VALUES (13, '0106');
INSERT INTO `order_detail` VALUES (14, '0106');
*/
?>
*** ผิดถูกอย่างไรขออภัยท่านผู้รู้ทั้งหลายด้วยครับผม
Date :
2010-08-20 19:43:01
By :
apirak17
โทษทีครับข้างบนใช้ count( order_detail.odt_book ) จริงต้องใช้ sum( order_detail.odt_num ) เป็นจำนวนผู้สั่งหนังสือ
<?php
require_once('Connections/book.php'); //ติดต่อฐานข้อมูล
$sql = mysql_query("
SELECT book.bk_tt,sum( order_detail.odt_num ) as num_book
FROM book, order_detail
WHERE book.bk_id=order_detail.odt_book
GROUP BY order_detail.odt_book
ORDER BY num_book desc
LIMIT 0 , 5" );
/*
join book กับ order_detail
นับจำนวนผู้สั่งหนังสือ sum( order_detail.odt_num ) as num_book
สั่งจัดกลุ่มข้อมูลที่เหมือนๆกันให้แสดงแค่แถวเดียวด้วย GROUP BY order_detail.odt_book
สั่งให้เรียงรายการจำนวนที่ขายได้มากสุดอยู่บนด้วย ORDER BY num_book desc
สั่งให้มี 5อันดับหนังสือขายดี ด้วย LIMIT 0 , 5
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>อันดับหนังสือขายดี</title>
</head>
<body>
<p align="center">อันดับหนังสือขายดี</p>
<table width="100%" border="1" cellpadding="8">
<tr bgcolor="#00FF00">
<td><div align="center">รูป</div></td>
<td><div align="center">รายการหนังสือ</div></td>
<td><div align="center">จำนวน</div></td>
</tr>
<?php while ($row = mysql_fetch_array($sql)) { ?>
<tr>
<td> </td>
<td><?php echo $row['bk_tt']; ?></td>
<td><?php echo $row['num_book']; ?></td>
</tr>
<?php } ?>
</table>
<p> </p>
</body>
</html>
<?php
mysql_free_result($sql);
?>
<?
/*
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- โฮสต์: localhost
-- เวลาในการสร้าง: 20 ส.ค. 2010 น.
-- รุ่นของเซิร์ฟเวอร์: 5.0.51
-- รุ่นของ PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- ฐานข้อมูล: `book`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `book`
--
CREATE TABLE `book` (
`bk_id` text NOT NULL,
`bk_tt` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- dump ตาราง `book`
--
INSERT INTO `book` VALUES ('0101', 'php');
INSERT INTO `book` VALUES ('0102', 'java');
INSERT INTO `book` VALUES ('0103', 'dream');
INSERT INTO `book` VALUES ('0104', 'jsp');
INSERT INTO `book` VALUES ('0105', 'database');
INSERT INTO `book` VALUES ('0106', 'joomla');
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `order_detail`
--
CREATE TABLE `order_detail` (
`odt_id` int(5) NOT NULL auto_increment,
`odt_book` text NOT NULL,
`odt_num` int(3) NOT NULL,
PRIMARY KEY (`odt_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
--
-- dump ตาราง `order_detail`
--
INSERT INTO `order_detail` VALUES (1, '0101', 1);
INSERT INTO `order_detail` VALUES (2, '0101', 1);
INSERT INTO `order_detail` VALUES (3, '0101', 1);
INSERT INTO `order_detail` VALUES (4, '0102', 1);
INSERT INTO `order_detail` VALUES (5, '0102', 2);
INSERT INTO `order_detail` VALUES (6, '0103', 1);
INSERT INTO `order_detail` VALUES (7, '0102', 1);
INSERT INTO `order_detail` VALUES (8, '0102', 1);
INSERT INTO `order_detail` VALUES (9, '0102', 1);
INSERT INTO `order_detail` VALUES (10, '0102', 1);
INSERT INTO `order_detail` VALUES (11, '0104', 1);
INSERT INTO `order_detail` VALUES (12, '0104', 2);
INSERT INTO `order_detail` VALUES (13, '0106', 1);
INSERT INTO `order_detail` VALUES (14, '0106', 1);
*/
?>
Date :
2010-08-20 20:06:42
By :
apirak17
ดีมากเลยครับ
Date :
2012-01-19 15:51:18
By :
comscience50
Load balance : Server 00