|
|
|
มีวิธี SELECT จาก Database เพื่อจะกำหนด ลำดับ ของ row นั้นๆไหมครับ ให้มันนับ 1 , 2 , 3 ไปเรื่อยๆ |
|
|
|
|
|
|
|
ดูฐานข้อมูล ดูปลที่ต้องการ อ่านคำถาม แล้วยังไม่เข้าใจครับ...
เดี๋ยวขอเรียบเรียงใหม่นะ
1. มีฐานข้อมูลที่เพิ่มฟิลด์ไม่ได้
2. ต้องการแสดงฟิลด์ "งวดที่เบิก"
คิด concept ได้แค่ว่า
ถ้าเจอ wd_by คนที่ 1 ครั้งที่ 1 ให้เป็นงวดที่ 1
ถ้าเจอ wd_by คนที่ 1 ครั้งที่ 2 ให้เป็นงวดที่ 2
ถ้าเจอ wd_by คนที่ 2 ครั้งที่ 1 ให้เป็นงวดที่ 1
.
.
.
เด๋วเข้าที่ทำงานจะลองไปไปสร้าง db แล้วลองคิวรี่ดู ถ้าได้เด๋วเข้ามา edit ต่อนะ....
แต่ถ้าไม่ได้ก็ขออภัยล่วงหน้า
กลับมาอ่านล่ะ เด๋วช่วยคิด
|
ประวัติการแก้ไข 2012-07-26 09:17:50
|
|
|
|
Date :
2012-07-26 06:23:04 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้ามีการลบข้อมูลด้วยแบบนี้ ผมคิดออกแค่แบบเดียวครับ คือ การ search โดยเอาเงื่อนไข wd_by
$search = 1 ;
sql = "select * from ชื่อตาราง where wd_by = '$search'";
แต่ค่าที่ได้ออกมาก็จะเป็นชื่อของ คนที่ 1 คนเดียว ส่วน "งวดที่" ก็สร้างตัวแปรมาใส่ กำหนดค่า $i=1 ก่อนวนลูป เอาค่าไปใส่....
แต่ถ้าออกมาหลาย ๆ คน แบบต้องการยังคิดไม่ออก -*- ขออภัยด้วย
|
|
|
|
|
Date :
2012-07-26 09:30:49 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ
แต่ไม่ได้ทำใน query sql ทำที่ตัว code แทน
SELECT มาตามปกติ แหละครับ
ใช้วิธี กำหนด rs_by เป็น key ใน array
ส่วน value ที่ตำแหน่ง key นั้น + 1 เอา
ประมาณนี้ครับ
Code (PHP)
$sql = "SELECT ..........";
$query = mysql_query($sql);
$array = array();
while( $result = mysql_fetch_array( $query ) ){
$array[$result["wd_by"]] = 1 + $array[$result["wd_by"]];
echo "งวดที่ ".$array[$result["wd_by"]];
}
|
|
|
|
|
Date :
2012-07-26 11:23:01 |
By :
Likito |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดีใจด้วย พอดีทำได้เหมือนกันเลยขอลงหน่อยละกัน ^^
Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<LINK rel="stylesheet" type="text/css" href="badminton/style.css">
<?PHP
mysql_connect('localhost','user','1234') or die("ติดต่อ Host ไม่ได้");
mysql_select_db('class') or die("ติดต่อฐานข้อมูลไม่ได้");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client='tis620'");
mysql_query("SET character_set_connection='tis620'");
mysql_query("collation_connection = tis620_thai_ci");
mysql_query("collation_database = tis620_thai_ci");
//สร้างตาราง
print "<table class=simply>";
print "<tr>";
print "<th align = center width = 150>คนที่</th>";
print "<th align = center width = 150 >เงินยืม</th>";
print "<th align = center width = 150 >งวดที่</th>";
print "</tr>";
$sqlData = "select * from test order by wd asc" ;
$sqlqueryData=mysql_db_query('class', $sqlData);
//กำหนด ค่า n เอาไปใช้เทียบกับค่า count
$n = 1;
while($rsData = mysql_fetch_array($sqlqueryData))
{
print "<tr>";
print "<td height=35 align = center>".$rsData['wd']." </td>";
print "<td height=35 align = center>".$rsData['am']." </td>";
$sql01 = "SELECT COUNT(wd) AS q FROM test WHERE wd=".$rsData['wd']."";
$sqlquery01=mysql_db_query('class', $sql01);
while($rs01 = mysql_fetch_array($sqlquery01))
{
$k = $rs01['q'];
//print "<td height=35 align = center>".$k." </td>";
if($n <= $k){
print "<td height=35 align = center>".$n." </td>";
$n ++;
if($n>$k)
{
$n = 1;
}}}
print "</tr>";
}
print"</table>";
?>
Code (PHP)
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jul 26, 2012 at 12:33 PM
-- Server version: 5.0.51
-- PHP Version: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `class`
--
-- --------------------------------------------------------
--
-- Table structure for table `test`
--
CREATE TABLE `test` (
`id` int(2) NOT NULL auto_increment,
`wd` int(4) NOT NULL,
`am` int(9) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620 AUTO_INCREMENT=13 ;
--
-- Dumping data for table `test`
--
INSERT INTO `test` VALUES (1, 1, 5000);
INSERT INTO `test` VALUES (2, 1, 1200);
INSERT INTO `test` VALUES (3, 1, 2500);
INSERT INTO `test` VALUES (4, 1, 2000);
INSERT INTO `test` VALUES (5, 2, 2000);
INSERT INTO `test` VALUES (6, 1, 200);
INSERT INTO `test` VALUES (7, 3, 3000);
INSERT INTO `test` VALUES (8, 2, 2500);
INSERT INTO `test` VALUES (9, 2, 800);
INSERT INTO `test` VALUES (10, 4, 900);
INSERT INTO `test` VALUES (11, 2, 500);
INSERT INTO `test` VALUES (12, 3, 100);
ยาวมากแต่ก็ได้เพราะมั่ว 555+ เต็ม ๆ
|
ประวัติการแก้ไข 2012-07-26 11:39:30 2012-07-26 11:45:05
|
|
|
|
Date :
2012-07-26 11:37:49 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือจริงๆแล้ว SELECT นั้น มันมีเงื่อนไข WHERE เยอะกว่านีครับ แล้วมีการ JOIN อีก table
ผมเลย ยกมาถาม แค่ส่วนนึงหลักๆ
SELECT * FROM table ORDER BY wd_date
ประมาณนี้ครับจะได้ ผลตาม รูปที่ 1
ตามนี้เลย
แล้วใช้วิธีตามที่บอก คือ เก็บ wd_by เป็น key ใน array สำหรับอ้างถึง ส่วน value ก็เป็น งวดที่ +1
|
|
|
|
|
Date :
2012-07-26 11:41:55 |
By :
Likito |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2012-07-26 11:45:37 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดีใจด้วยครับ
|
|
|
|
|
Date :
2012-07-26 21:37:48 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|