|
|
|
ถาม php เลือกข้อมูลแบบสุ่ม1ตัว จากข้อมูลซ้ำกันเฉพาะเลขตัวหน้า 3 ตัว |
|
|
|
|
|
|
|
ขอดูตัวอย่าง table ที่จะ query หน่อยนะครับ สงสัยเรื่องเลขหน้า
|
|
|
|
|
Date :
2012-01-28 19:15:54 |
By :
thaicloud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นี่ค่า ช่วยแนะนำหน่อยนะคะ ^^ พอดีไม่ค่อยถนัดเท่าไหร่
ขอบคุณค่ะ
|
|
|
|
|
Date :
2012-01-28 19:42:15 |
By :
siri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยากนะ
|
|
|
|
|
Date :
2012-01-28 22:21:57 |
By :
thaicloud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วพอใช้วิธีการอะไรได้บ้างคะ >< ช่วยแนะนำหน่อยค่าาาา
เอาแบบไม่ต้องสุ่มก็ได้ค่ะขอเป็นเลือก 1 ตัว จากข้อมูลซ้ำกันครบ 5 ก้พอค่ะ
ขอบคุณค่ะ ^^
|
|
|
|
|
Date :
2012-01-28 22:30:07 |
By :
siri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คิดแก้ด้วยวิธี query ไม่ออก เลยแก้ปัญหาด้วยวิธี array แทนนะครับ แล้วก็ไม่นับทีละ 5นะครับ จะทำเป็นการนับว่าเลขซ้ำกันทั้งหมดที่แถว แล้วเอามาหาร 5 แล้วก็ ทำการ shuffle array แล้วก็ slice มาตามจำนวนที่หารได้ ผมว่าทำแบบนี้ผลลัพธ์ที่ออกมาก็คล้้ายๆกับแบบที่คุณต้องการนะ
Code (PHP)
<?php
$db = mysql_connect('localhost','root','');
mysql_select_db('test',$db)or die(mysql_error());
$array=array(111,222,333,444,555,666,777,888,999,'000');
$row=array();
foreach($array as $value){
$result=mysql_query("SELECT * FROM test WHERE no_goods LIKE '{$value}%'");
while($data=mysql_fetch_assoc($result)){
$row[$value][]=$data;
}
}
$picks=array();
foreach($row as $key=>$value){
shuffle($value);
$count=count($value);
$number=ceil($count/5);
$picks[$key]=array_slice($value,0,$number);
}
$result=array();
foreach($picks as $value){
foreach($value as $value2){
$result[]=$value2;
}
}
//ตรงนี้คิอส่วนนำไปใช้งานนะครับ
foreach($result as $row){
echo "{$row['id_goods']} {$row['no_goods']} {$row['amount']} {$row['name_goods']} <br />";
}
?>
|
ประวัติการแก้ไข 2012-01-28 23:26:34 2012-01-28 23:35:06
|
|
|
|
Date :
2012-01-28 23:26:00 |
By :
thaicloud |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากๆค่ะ ที่ช่วยเหลือ ><
เดี๋ยวจะลองศึกษาดูนะค่ะ ^^
|
|
|
|
|
Date :
2012-01-29 00:38:34 |
By :
siri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|