มีคำถามยากๆมาฝาก php mysql

เริ่มโดย SL_master, 22 พฤศจิกายน 2008, 22:29:41

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

SL_master

เกี่ยวกับเรื่อง ฐานข้อมูล กับ ตาราง
ตอนนี้มีตารางข้อมูล ที่ได้มาโดยการ 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 จอก
[direct=http://www.ifcg.co.th]ที่ปรึกษาการเงิน[/direct]
[direct=http://www.ifcg.co.th]วางแผนการเงิน[/direct]

tinnoi

ยากจริง ๆ ด้วย   :P :-X

มาขอ copy โจทย์ไปนั่งแก้ปัญหาก่อน
[direct=https://trainee.naruthee.com]หาที่ฝึกงาน[/direct] ,
[direct=http://www.piyamitrgroup.com]รับรื้อถอน[/direct] ,
[direct=https://fastvisa2024.weebly.com/]รับทำวีซ่า[/direct] ,
[direct=https://business.10thai.com]10thai[/direct]

nos


SL_master

^^''
ฮ่าๆ นั่งคิดตั้งแต่ 6 โมงเย็น ยังถกไม่ออกเลย
[direct=http://www.ifcg.co.th]ที่ปรึกษาการเงิน[/direct]
[direct=http://www.ifcg.co.th]วางแผนการเงิน[/direct]

SL_master

เพียงท่านเข้าชม ก็นิยมอยู่ในใจ
ขอบคุณที่ให้ความสนใจครับ ถึงแม้มันจะยาก- -
[direct=http://www.ifcg.co.th]ที่ปรึกษาการเงิน[/direct]
[direct=http://www.ifcg.co.th]วางแผนการเงิน[/direct]

jatuphum

#5
 :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

thenetxx

อ่านแล้ว งง ๆ

เขียนลวก ๆ นะ


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)
Develop site but can't develop life
ASIA

Synchronize

คิดว่า 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
เนื้อหาความรู้น่าสนใจ ใหม่ๆ
[direct=https://develop.un-no.com/w3/docs/clear-float-in-div]เทคนิคการแก้ไขปัญหาจากการ float ซ้อน float แล้ว clear[/direct]

[direct=https://service.un-no.com/unbbz]ทำเว็บได้ด้วยตัวเองฟรี ด้วยระบบเว็บสำเร็จรูป unbbz , เว็บธรรมดา , เว็บบอร์ด , เว็บขายของ ทำได้หมดเลย[/direct]

siamman

#8
ว่าจะสงสัย แต่ไม่สงสัยละ พอมองภาพออกแล้ว จะเอาไปใ้งานยังงัย  :P

SL_master

ลักษณะนี้เอาไว้ใช้เวลา ที่ พื้นที่ stock มีจำกัดครั้ง
จะได้แบ่งพื้นที่ คำนวนเป็นพื้นที่ทั้งหมดที่ต้องใช้
และ แต่ละสินค้า ต้องใช้พื้นที่ทั้งหมดเท่าไหร่

ขอบคุณสำหรับคำตอบนะครับ เด๋วลองแกะกก่อน
[direct=http://www.ifcg.co.th]ที่ปรึกษาการเงิน[/direct]
[direct=http://www.ifcg.co.th]วางแผนการเงิน[/direct]

SL_master

อ้างถึงจาก: 9neo ใน 23 พฤศจิกายน 2008, 08:14:40
ว่าจะสงสัย แต่ไม่สงสัยละ พอมองภาพออกแล้ว จะเอาไปใ้งานยังงัย  :P
เปลี่ยนกระทู้เร็วจัง กำลังตอบเลย อิอิ
[direct=http://www.ifcg.co.th]ที่ปรึกษาการเงิน[/direct]
[direct=http://www.ifcg.co.th]วางแผนการเงิน[/direct]

siamman

อ้างถึงจาก: SL_master ใน 23 พฤศจิกายน 2008, 08:20:54
อ้างถึงจาก: 9neo ใน 23 พฤศจิกายน 2008, 08:14:40
ว่าจะสงสัย แต่ไม่สงสัยละ พอมองภาพออกแล้ว จะเอาไปใ้งานยังงัย  :P
เปลี่ยนกระทู้เร็วจัง กำลังตอบเลย อิอิ

นึกถึงเรื่อง quota ของร้านค้าขึ้นมาพอดีครับ ผระมาณว่า ร้านใหน สามารถขายได้ไม่เกินกี่ชิ้น ประมาณนั้น อาจไม่ตรง แต่คิดว่าใช้งานใกล้เคียงกัน

SL_master

อ่า ประมาณนั้นแหละครับ พอมีแนวหรือ port เก่าๆ มั้ยครับ
เพราะตอนนี้ ติดตรงนี้มา 2 วันและ ทำไม่ผ่านซะที
ขอบคุณครับ
[direct=http://www.ifcg.co.th]ที่ปรึกษาการเงิน[/direct]
[direct=http://www.ifcg.co.th]วางแผนการเงิน[/direct]

SL_master

ขอบคุณคุณ jatuphum นะครับ กำลังศึกษาวิธีการ และ ประยุกต์อยู่
ขอบคุณคุณ Synchronize เช่นเดียวกันครับ ขอลองทั้ง 2 วิธี
T-T เล่นที่นี่ ไม่เคยผิดหวังจริงๆ
[direct=http://www.ifcg.co.th]ที่ปรึกษาการเงิน[/direct]
[direct=http://www.ifcg.co.th]วางแผนการเงิน[/direct]

onokung

ว่าแต่ไมผมอ่านแ้้ล้วยังงงกับโจทย์อยู่เลยอ่า  :P
[direct=http://www.movieenjoy.com]ดูหนังออนไลน์[/direct]

Tee++;

อ้างถึงจาก: 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
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]