 |
หาค่าเฉลี่ย โดยจะใช้ php ดึงค่าเฉลี่ยออกมาโชว์ ต้องใช้คำสั่่งอะไรครับ |
|
 |
|
|
 |
 |
|
แล้วผลเป็นไงละครับ มันมี error ไรบ้างไหมครับ
|
 |
 |
 |
 |
Date :
2011-02-05 14:48:48 |
By :
Dragons_first |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันได้แบบนี้อ่ะครับ
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource on line 7
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource on line 8
Warning: Division by zero on line 13
|
 |
 |
 |
 |
Date :
2011-02-05 15:51:01 |
By :
deathboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?php
$arr = array(2, 10, 3, 10, 20, 12, 40);
echo Average($arr);
function Average($arr) {
$array_size = count($arr);
$total = 0;
for ($i = 0; $i < $array_size; $i++) {
$total += $arr[$i];
}
$average = (float)($total / $array_size);
return $average;
}
?>
จะดึงข้อมูลจาก sql ทำไงครับ
|
 |
 |
 |
 |
Date :
2011-10-16 15:48:05 |
By :
sunnyonto |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอตัวอย่างได้ป้าว การหาค่าเฉลี่ย
|
 |
 |
 |
 |
Date :
2011-10-28 00:33:21 |
By :
sunnyonto |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$sqlquery=mysql_db_query($dbname,$SQL);
$sqlquery=mysql_db_query($dbname,$sql);
include ไฟล์ connect แล้วไม่ต้อง query dbname ก็ได้ครับ
แต่ผมงงว่า ทำไมบรรทัดนี้ $sqlquery=mysql_db_query($dbname,$SQL); ถึงใช้คำสั่งนี้น่ะ ทำไมไม่เป็นคำสั่งนี้ mysql_query
ไม่เคยใช้แบบนี้ด้วยน่ะ ก็เลยสงสัยน่ะ
|
 |
 |
 |
 |
Date :
2011-10-28 00:59:18 |
By :
ozma |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้ว ไฟล์ connect.php โค้ดอะไรครับ
คิดว่า มันคงผิดที่ ดึงข้อมูลนะครับ ลองตรวจดูว่า code ดึงข้อมูลถูกต้องไหม
น่าจะประมาณนี้ก่อนนะ >< ไม่มั้นใจเท่าไร
|
 |
 |
 |
 |
Date :
2011-10-28 04:04:49 |
By :
icman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
mysql_db_query ===> Warning
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
................................................................
ผิดตรง mysql_fetch_array($num_rows)
ลองมาใช้แบบข้างล่างนี้ดูมั้ยครับ .....
$sql = "SELECT ....................";
$result = mysql_query($sql);
$row = mysql_num_rows($result);
.
.
.
.
while($rs = mysql_fetch_array($result)) {
..........................................................................
ถ้าจะใช้ฟังก์ชั่น AVG ของ MySql ก็ได้นะ แต่... ลองเอามันไปคิวรี่ใน mysql แล้วได้ผลลัพธ์ออกมากี่แถวครับ ผมว่าเงื่อนไขตามตัวอย่างที่ให้มามันคงได้ผลลัพธ์แค่แถวเดียวใช่มั้ยครับ (นอกจากจะย่อมาถาม และถ้าของจริงไม่มีพวก Group by ด้วย) ถ้าผลลัพธ์มีแค่แถวเดียวไม่ต้องถึงขนาดต้องใช้ While loop หรอกครับ mysql_fetch_array ออกมาทีเดียวแล้วเอาผลลัพธ์ออกมาแสดงเลย
|
ประวัติการแก้ไข 2011-10-28 07:53:46
 |
 |
 |
 |
Date :
2011-10-28 07:52:29 |
By :
Songkram |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?
include "connect.php";
$sql="select AVG(Settlement) as Avarage
from x
where Date ='1/4/2005'";
$sqlquery=mysql_db_query($dbname,$SQL);
$num_rows=mysql_num_rows($sqlquery);
while ($table=mysql_fetch_array($num_rows))
{
$SUM=0;
$SUM=$SUM+$table["settlement"];
}
$average=$SUM/$num_rows;
echo $average;
mysql_close();
?>
โค้ดของคุณ ผิดแบบวิปริตเลยนะ (ขอใช้คำนี้)
ต่อจาก SQL ก็แค่
$sqlquery=mysql_query($sql); //บรรทัดที่ 6 จะใช้ $SQL ตัวใหญ่ ไปทำไม มันไม่ตรงกัน
// $mysql_num_rows ไม่ต้องใช้ หาค่าเฉลี่ยมันมีค่าออกมาแค่แถวเดียว ค่าเดียว
// while ก็ไม่ต้องไปใช้
// นี่ก็ผิด $average=$SUM/$num_rows;
ทำแค่นี้นะ ก็ได้ค่า average ตามต้องการ
Code (PHP)
<?php
include "connect.php";
$sql="select AVG(settlement) as Average
from x
where Date ='1/4/2005'";
$sqlquery=mysql_query($sql);
$table=mysql_fetch_array($sqlquery);
$average=$table['Average'];
echo $average;
mysql_close();
?>
|
ประวัติการแก้ไข 2011-10-28 08:55:27 2011-10-28 08:58:40
 |
 |
 |
 |
Date :
2011-10-28 08:54:03 |
By :
nimporn |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

คือผมต้องการให้ แสดง ค่าเฉลี่ยนของรหัส 400183 โดยนำค่า eva1 ถึง eva9 มาทำการบวก แล้วหารด้วย scor ไม่ทราบว่าพอจะมีวิธีหรือหลักการเขียนอย่างไรบ้างบ้างรบกวนหน่อยคับ
|
 |
 |
 |
 |
Date :
2013-12-17 14:34:31 |
By :
nathee |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตั้งกระทู้ใหม่ครับ
|
 |
 |
 |
 |
Date :
2013-12-17 15:27:12 |
By :
Dragons_first |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต่อจากคุณ nimporn นะครับ
ใน ตัวแปล $sql ให้คุณเพิ่ม and UserID = '400183' เข้าไปครับ แล้วเขียนตามนี้
Code (PHP)
<?php
include "connect.php";
$sql="select AVG(settlement) as Average
from x
where Date ='1/4/2005' UserID = '400183'";
$sqlquery=mysql_query($sql);
$table=mysql_fetch_array($sqlquery);
$average = $table['eva1'] + $table['eva2'] + $table['eva3'] + $table['eva4'] + $table['eva5'] + $table['eva6'] + $table['eva7'] $table['eva8'] + $table['eva9'];
$average2 = $average / $table['scor'];
echo $average2;
mysql_close();
?>
นี้คือสิ่งที่คุณต้องการใช่ไหมครับ ?
|
ประวัติการแก้ไข 2017-02-21 06:47:49 2017-02-21 06:48:49
 |
 |
 |
 |
Date :
2017-02-21 06:47:23 |
By :
thepdone |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตกม้าตายที่บรรทัดที่ 3 กับ 6 ครับ
$sql
$SQL
|
 |
 |
 |
 |
Date :
2017-02-21 16:14:50 |
By :
Pla2todkrob |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|