ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => หัวข้อเริ่มโดย: SL_master ใน 22 พฤศจิกายน 2008, 22:29:41

ชื่อเรื่อง: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: SL_master ใน 22 พฤศจิกายน 2008, 22:29:41
เกี่ยวกับเรื่อง ฐานข้อมูล กับ ตาราง
ตอนนี้มีตารางข้อมูล ที่ได้มาโดยการ select

itemlist_id    item name    quantity   capacity    user_id     slot use 
5                  ข้าวโพด             2            15            1             1
32                   ขี้ไก่               9            50             1             1
76             ปลากระโทงแทง       6             5             1             2
79                 ปลาฉลาม          2             1             1             2
168                  เกลือ              1            50            1             1
*quantity คือ จำนวนของฐานของมูลขอลแต่ละ item name ได้มาจากการ count
  capacity คือ จำนวนความจุ ที่ตั้งใจจะนำไปแบ่งแต่ละcell
  slot use = ceil(capacity/quantity)

โดยจะนำข้อมูลทั้งหมดไปใส่ในตารางที่ผ่านการ loop
สิ่งที่ตั้งใจทำก้อคือ จะแบ่งช่องของสิ่งของเหล่านี้ โดยให้ค่า quantity ไม่เกิน capacity ในแต่ละช่อง
ถ้าสำเร็จผลที่ได้รับคือ

ข้าวโพด2 ขี้ไก่9 ปลาฯ5 ปลาฯ1 ปลาฉลาม1 ปลาฉลาม1 เกลือ1
*โดยจะเกิดloop ทั้งหมด 7 ครั้ง
ใครแก้โจทย์นี้ได้ คารวะ 3 จอก
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: tinnoi ใน 22 พฤศจิกายน 2008, 22:50:09
ยากจริง ๆ ด้วย   :P :-X

มาขอ copy โจทย์ไปนั่งแก้ปัญหาก่อน
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: nos ใน 22 พฤศจิกายน 2008, 22:59:56
กำๆ
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: SL_master ใน 22 พฤศจิกายน 2008, 23:03:49
^^''
ฮ่าๆ นั่งคิดตั้งแต่ 6 โมงเย็น ยังถกไม่ออกเลย
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: SL_master ใน 22 พฤศจิกายน 2008, 23:24:56
เพียงท่านเข้าชม ก็นิยมอยู่ในใจ
ขอบคุณที่ให้ความสนใจครับ ถึงแม้มันจะยาก- -
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: jatuphum ใน 23 พฤศจิกายน 2008, 02:30:59
 :P  พอดีว่าผมแก้ปัญหาโดยใช้ Array แทน Database เพื่อความสะดวก ถึงเวลาจริงๆน่าจะประยุกต์ได้

<?
$data[0] = array('itemlist_id'=>5,'item_name'=>'ข้าวโพด','quantity'=>2,'capacity'=>15,'user_id'=>1,'slot_use'=>1) ;
$data[1] = array('itemlist_id'=>32,'item_name'=>'ขี้ไก่','quantity'=>9,'capacity'=>50,'user_id'=>1,'slot_use'=>1) ;
$data[2] = array('itemlist_id'=>76,'item_name'=>'ปลากระโทงแทง','quantity'=>6,'capacity'=>5,'user_id'=>1,'slot_use'=>2) ;
$data[3] = array('itemlist_id'=>79,'item_name'=>'ปลาฉลาม','quantity'=>2,'capacity'=>1,'user_id'=>1,'slot_use'=>2) ;
$data[4] = array('itemlist_id'=>168,'item_name'=>'เกลือ','quantity'=>1,'capacity'=>50,'user_id'=>1,'slot_use'=>1) ;

if(is_array($data))
{
// read from data I
    foreach($data as $row)
    {
while($row['quantity'] > 0)
{
$quantity = ($row['quantity'] > $row['capacity'] ? $row['capacity'] : $row['quantity']  )  ;
$row['quantity'] -=  $quantity ;
// insert to data II
$data2[] = array('itemlist_id'=>$row['itemlist_id'],'item_name'=>$row['item_name'],'quantity'=>$quantity,'capacity'=>$row['capacity'],'user_id'=>$row['user_id'],'slot_use'=>1) ;
echo  'itemlist_id=>',$row['itemlist_id'],', item_name=>',$row['item_name'],', quantity=>',$quantity,', capacity=>',$row['capacity'],', user_id=>',$row['user_id'],', slot_use=>',1 , "<br>";
}
    }
}
?>



น่าจะแก้ปัญหาได้เหมือนกัน  :P
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: thenetxx ใน 23 พฤศจิกายน 2008, 04:56:18
อ่านแล้ว งง ๆ

เขียนลวก ๆ นะ


sql = select * from table
rs = query(sql)

rt = array();
while(r=mysqlfetcharray(rs)){

if($r[qt] > $r[cap]) $rt[$r[name]] = $r[cap]
else $rt[$r[name]] = $r[qt]

}

print_r($rt)
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: Synchronize ใน 23 พฤศจิกายน 2008, 07:25:00
คิดว่า query ครั้งเดียว ก็ออกมาได้แล้ว  ???

select
   t.item name,
   if(t.capacity > t.quantity, t.capacity, t.quantity) as data_count
from
   (.... sub select query  ....) t


ใน sub select query คุณก็ใส่ select ชุดแรกที่คุณมีน่ะ

รึผมเข้าใจ คำถามผิดอีกหว่า 

:P :P
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: siamman ใน 23 พฤศจิกายน 2008, 08:14:40
ว่าจะสงสัย แต่ไม่สงสัยละ พอมองภาพออกแล้ว จะเอาไปใ้งานยังงัย  :P
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: SL_master ใน 23 พฤศจิกายน 2008, 08:19:58
ลักษณะนี้เอาไว้ใช้เวลา ที่ พื้นที่ stock มีจำกัดครั้ง
จะได้แบ่งพื้นที่ คำนวนเป็นพื้นที่ทั้งหมดที่ต้องใช้
และ แต่ละสินค้า ต้องใช้พื้นที่ทั้งหมดเท่าไหร่

ขอบคุณสำหรับคำตอบนะครับ เด๋วลองแกะกก่อน
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: SL_master ใน 23 พฤศจิกายน 2008, 08:20:54
อ้างถึงจาก: 9neo ใน 23 พฤศจิกายน 2008, 08:14:40
ว่าจะสงสัย แต่ไม่สงสัยละ พอมองภาพออกแล้ว จะเอาไปใ้งานยังงัย  :P
เปลี่ยนกระทู้เร็วจัง กำลังตอบเลย อิอิ
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: siamman ใน 23 พฤศจิกายน 2008, 08:27:38
อ้างถึงจาก: SL_master ใน 23 พฤศจิกายน 2008, 08:20:54
อ้างถึงจาก: 9neo ใน 23 พฤศจิกายน 2008, 08:14:40
ว่าจะสงสัย แต่ไม่สงสัยละ พอมองภาพออกแล้ว จะเอาไปใ้งานยังงัย  :P
เปลี่ยนกระทู้เร็วจัง กำลังตอบเลย อิอิ

นึกถึงเรื่อง quota ของร้านค้าขึ้นมาพอดีครับ ผระมาณว่า ร้านใหน สามารถขายได้ไม่เกินกี่ชิ้น ประมาณนั้น อาจไม่ตรง แต่คิดว่าใช้งานใกล้เคียงกัน
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: SL_master ใน 23 พฤศจิกายน 2008, 08:29:04
อ่า ประมาณนั้นแหละครับ พอมีแนวหรือ port เก่าๆ มั้ยครับ
เพราะตอนนี้ ติดตรงนี้มา 2 วันและ ทำไม่ผ่านซะที
ขอบคุณครับ
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: SL_master ใน 23 พฤศจิกายน 2008, 08:32:12
ขอบคุณคุณ jatuphum นะครับ กำลังศึกษาวิธีการ และ ประยุกต์อยู่
ขอบคุณคุณ Synchronize เช่นเดียวกันครับ ขอลองทั้ง 2 วิธี
T-T เล่นที่นี่ ไม่เคยผิดหวังจริงๆ
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: onokung ใน 28 พฤศจิกายน 2008, 02:01:10
ว่าแต่ไมผมอ่านแ้้ล้วยังงงกับโจทย์อยู่เลยอ่า  :P
ชื่อเรื่อง: Re: มีคำถามยากๆมาฝาก php mysql
โพสต์โดย: Tee++; ใน 28 พฤศจิกายน 2008, 10:28:28
อ้างถึงจาก: SL_master ใน 22 พฤศจิกายน 2008, 22:29:41
เกี่ยวกับเรื่อง ฐานข้อมูล กับ ตาราง
ตอนนี้มีตารางข้อมูล ที่ได้มาโดยการ select

itemlist_id    item name    quantity   capacity    user_id     slot use 
5                  ข้าวโพด             2            15            1             1
32                   ขี้ไก่               9            50             1             1
76             ปลากระโทงแทง       6             5             1             2
79                 ปลาฉลาม          2             1             1             2
168                  เกลือ              1            50            1             1
*quantity คือ จำนวนของฐานของมูลขอลแต่ละ item name ได้มาจากการ count
  capacity คือ จำนวนความจุ ที่ตั้งใจจะนำไปแบ่งแต่ละcell
  slot use = ceil(capacity/quantity)

โดยจะนำข้อมูลทั้งหมดไปใส่ในตารางที่ผ่านการ loop
สิ่งที่ตั้งใจทำก้อคือ จะแบ่งช่องของสิ่งของเหล่านี้ โดยให้ค่า quantity ไม่เกิน capacity ในแต่ละช่อง
ถ้าสำเร็จผลที่ได้รับคือ

ข้าวโพด2 ขี้ไก่9 ปลาฯ5 ปลาฯ1 ปลาฉลาม1 ปลาฉลาม1 เกลือ1
*โดยจะเกิดloop ทั้งหมด 7 ครั้ง
ใครแก้โจทย์นี้ได้ คารวะ 3 จอก

SELECT name, if(capacity > quantity, quantity, quantity-capacity) as final FROM 'capacity'

แต่ไม่เข้าใจ ตรง 1 จุด ไม่รู้ว่าผิดมั้ย คือ...

76             ปลากระโทงแทง       6             5             1             2

มันควรจะได้ 1 หรือ 5 กันแน่ เพราะมันเกิน Capacity มา 1