สอบถามการกำหนดค่า Max และ กำหนดค่า MIn โดยที่ไม่นับค่า 0
ต้องการให้แสดงสถิติการใช้ฐานข้อมูลสูงสุดและต่ำสุดของแต่ละฐานข้อมูลคะ ซึ่งจะมีบ้างฐานข้อมูลที่เก็บค่าสถิติต่างกันอยู่ค่ะ
ในโค้ดที่ลองทำคือแสดงค่า Max และ Min ออกมาเหมือนกันหมดทุกฐานเลยค่ะ แบบนี้
แต่ค่าจะแสดงถูกต้องจะต้องออกมาในรูปแบบนี้ค่ะ
ซึ่งที่มาร์กสีดำไว้คือจะไม่แสดงค่าค่ะ ยกตัวอย่างเช่น ฐานข้อมูล ABI มีค่าสถิติ แค่ Searches และ Full_Text_Requests ก็จะแสดงค่าแค่สองฟิล์ดเท่านั้นค่ะ จากรูปแรกจะสังเกตเห็นว่า ค่าที่ออกนั้นออกเหมือนกันหมดเลย อยากให้แสดงแค่ตามที่กรอกค่าในแต่ละฟิล์ดเท่านั้น
ซึ่งข้อมูลที่ดึงมาให้แสดงนั้นมาจากสองตารางค่ะ คือ
1. ตาราง reference_data ที่เก็บชื่อฐานข้อมูลไว้
2. ตาราง stat ที่เก็บค่าสถิติ ที่เพิ่มเข้าไป โดยมีความสัมพันธ์ กับตาราง reference_data ตรงฟิล์ด Rf_ID
ตัวอย่างโค้ดที่เขียนไปแบบนี้ค่ะ
Code (PHP)
<table width="100%" border="2" cellspacing="0" cellpadding="2" class="table table-bordered table-hover">
<tr>
<td rowspan="2">ชื่อฐานข้อมูล</td>
<td colspan="5">การใช้งานสูงสุด</td>
<td colspan="5">การใช้งานต่ำสุด</td>
</tr>
<tr>
<td>Searches</td>
<td>Full_Text_Requests</td>
<td>Sub_sessions</td>
<td>Queries</td>
<td>Citation_Events</td>
<td>Searches</td>
<td>Full_Text_Requests</td>
<td>Sub_sessions</td>
<td>Queries</td>
<td>Citation_Events</td>
</tr>
<?
$sql=mysql_query("SELECT reference_data.Rf_ID,reference_data.Rf_name
FROM reference_data");
while($fetch = mysql_fetch_array($sql)) {
?>
<?
$max1 = mysql_query("select max(Searches) from stat");
$max2 = mysql_query("select max(Full_Text_Requests) from stat");
$max3 = mysql_query("select max(Sub_sessions) from stat");
$max4 = mysql_query("select max(Queries) from stat");
$max5 = mysql_query("select max(Citation_Events) from stat");
$min1 = mysql_query("select min(Searches) from stat");
$min2 = mysql_query("select min(Full_Text_Requests) from stat");
$min3 = mysql_query("select min(Sub_sessions) from stat");
$min4 = mysql_query("select min(Queries) from stat");
$min5 = mysql_query("select min(Citation_Events) from stat");
?>
<tr>
<td align="center"><?=$fetch["Rf_name"] ?></td>
<td align="center"><? echo $total_max = mysql_result($max1,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max2,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max3,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max4,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max5,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min1,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min2,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min3,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min4,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min5,0);?></td>
</tr>
<? } ?>
</table>
รบกวนช่วยหน่อยนะคะ ขอบคุณค่ะTag : PHP, HTML/CSS, JavaScript, CakePHP
ประวัติการแก้ไข 2017-03-27 17:02:34
Date :
2017-03-20 17:05:32
By :
viewsmith
View :
3458
Reply :
14
ที่ยังไม่มีคนตอบเพราะเงื่อนไขตามที่ต้องการเป็นเรื่องเฉพาะทาง มองจากตารางแรกค่ามันก็ออกมาเท่ากันหมด
แล้วจะให้ออกมาเป็นแบบตาราง 2 โดยไม่แสดงค่าตามที่บอก และดูจาก code มันยังไม่ชัดเจน
ถ้าจะเอาแบบได้แน่ๆ อย่างน้อยก็มีโครงสร้างฐานข้อมูล คนเก่งคิวรี่เห็นเขาก็จะช่วยได้ครับ
Date :
2017-03-21 09:06:01
By :
apisitp
ส่วนนี้เป็นฐานข้อมูลค่ะ
ตาราง reference_data สำหรับเก็บชื่อฐานข้อมูลต่างๆ
ตาราง stat เก็บค่าสถิติ เพิ่มเข้ามาค่ะ โดยสัมพันธ์กับตาราง reference_data ที่ฟิวด์ Rf_ID ลักษณะการเก็บข้อมูลจะอยู่ในรูปแบบนี้ค่ะ
ยกตัวอย่างเช่น
ฐานข้อมูลที่ 1 รหัส Rf_ID = 1 มีการเก็บค่า ในฟิวด์ Searches และ Full_Text_Requests
ฐานข้อมูลที่ 4 รหัส Rf_ID = 4 มีการเก็บค่า ในฟิวด์ Searches
ฐานข้อมูลที่ 6 รหัส Rf_ID = 6 มีการเก็บค่า ในฟิวด์ Sub_sessions , Queries และ Citation_Events ตามรูปที่แนบมาค่ะ
Date :
2017-03-21 09:54:21
By :
viewsmith
รอดูติดตามดูการคิวรี่ด้วยครับ เพราะผมก็ไม่แม่น 555
Date :
2017-03-21 12:23:11
By :
apisitp
รบกวนผู้รู้ช่วยดูด้วยนะคะ
Date :
2017-03-21 12:56:40
By :
viewsmith
ดูจากการ คิวลี่ คุณวนลูป ค่าเดิม ของแแถวที่ 0 ตลอด เลย ผมเข้าใจถูกไหม จากการอ่านโค้ดด
Date :
2017-03-21 15:41:52
By :
tamiiz01jr
ตอบความคิดเห็นที่ : 8 เขียนโดย : num เมื่อวันที่ 2017-03-21 22:28:01
รายละเอียดของการตอบ ::
ทำตามที่คุณ num แนะนำ ค่าออกได้ถูกอย่างที่ต้องการค่ะ ขอบคุณมากค่ะ
แต่อยากสอบถามอีกนิดคือ ถ้าต้องการกำหนดให้แสดงค่าต่ำสุดที่ไม่ใช่ ค่า 0 ต้องทำยังไงค่ะ อย่างเช่น ค่า Searches มี 100 60 40 20 0
ค่าสูงสุดเป็น 100 ค่าต่ำสุดเป็น 20 ประมาณนี้ค่ะ
แต่ตอนนี้ยังติดปัญหาในฟอร์มแสดงค่าอยู่ค่ะ
โค้ดส่วนที่เรียกแสดงเขียนแบบนี้
<tr>
<td align="center"><?=$fetch["Rf_name"] ?></td>
<td align="center"><? echo $total_max = mysql_result($max1,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max2,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max3,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max4,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max5,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min1,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min2,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min3,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min4,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min5,0);?></td>
</tr>
Date :
2017-03-22 10:30:02
By :
viewsmith
คำนวณค่า min ที่มากกว่า 0 ให้เช็คโดย function if ครับ
โดย 999999999 อันนี้ใส่ตัวเลขอื่นได้แต่ต้องเป็นตัวเลขที่มากกว่าค่า min นะครับ
$min1 = mysql_query("select min(if(Searches>0,Searches,99999999999)) from stat");
ตรง error ที่ขึ้นมาให้เช็คค่าตัวแปร $max, $min เพิ่มก่อนเรียกคำสั่ง mysql_result ครับ
<tr>
<td align="center"><?=$fetch["Rf_name"] ?></td>
<td align="center"><? if (is_resource($max1)) echo $total_max = mysql_result($max1,0);?></td>
<td align="center"><? if (is_resource($max2)) echo $total_max = mysql_result($max2,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max3,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max4,0);?></td>
<td align="center"><? echo $total_max = mysql_result($max5,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min1,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min2,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min3,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min4,0);?></td>
<td align="center"><? echo $total_min = mysql_result($min5,0);?></td>
</tr>
Date :
2017-03-22 10:54:48
By :
num
line ใช้ open graph tag เหมือน facebook ครับ
<meta property=”og:image” content=”http://static.naver.jp/line_lp/img/ogp.png”>
<meta property=”og:title” content=”LINE : Free Calls & Messages”>
<meta property=”og:description” content=”LINE is a new communication app which allows you to make FREE voice calls and send FREE messages whenever and wherever you are, 24 hours a day!”>
https://developers.line.me/faq
Date :
2017-03-22 12:06:55
By :
num
Date :
2017-03-22 13:12:07
By :
apisitp
Load balance : Server 04