Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > mysql_fetch_array กำหนด index เรื่มต้นเป็น 1 ได้มั้ยครับ



 

mysql_fetch_array กำหนด index เรื่มต้นเป็น 1 ได้มั้ยครับ

 



Topic : 101508



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์




mysql_fetch_array กำหนดให้ index เป็น 1 ได้มั้ยครับ

เพราะ ปกติ mysql_fetch_array มันจะกำหนด index เป็น 0

ถ้าไม่ได้ มีวิธี อื่น มั้ยครับ

ขอบคุณครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-10-09 21:01:42 By : pon1991 View : 976 Reply : 13
 

 

No. 1



โพสกระทู้ ( 3,844 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook

array คีย์มันเริ่มจาก 0 น่ะถูกแล้วครับ
นอกจากว่าคุณจะสร้าง key ให้ array ชุดนั้นใหม่
ว่าแต่ว่า ทำไมต้องเป็น 1 ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-09 23:15:56 By : mangkunzo
 


 

No. 2



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ก็ คือ จากโค้ดนี้

while($objResult = mysql_fetch_array($objQuery))
{
$datay[] = $objResult["Sugar"];
$date[] = $objResult["Date"];
}
$num = array_sum($datay)/count($datay);

ผมต้องการ ไม่ให้มี บัคเวลา user กรอกค่าไปแค่ ค่าเดียว สมมุติ user กรอก แค่ 1 ค่า มันก็จะได้ count($datay) ซึ่งจะได้เท่ากับ 0

ซึ่งมันไม่มีอะไรมากมายหรอคับ เพียงแต่ เป็นบัค ถ้า user เช็ควันแค่ วันเดียว ถ้าเป็น 2 วันขึ้นไปมันก็แสดงผลได้ถูกต้อง

ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 11:24:57 By : pon1991
 

 

No. 3



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

มันไม่เกี่ยวกับ mysql_fetch_array() เลยนี่ครับ
แล้ว count() มันต้องให้ค่า 1 สิครับ ถ้าใน array มีสมาชิก 1 ตัว


$data = array();
$data[] = 'A'; // count($data) = 1
$data[] = 'B'; // count($data) = 2


บั๊กจากตรงอื่นหรือเปล่าครับ ลองเอาโค้ดส่วนอื่นมาดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 11:32:45 By : phpinfo()
 


 

No. 4



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


<?php
include("jpgraph/src/jpgraph.php");
include("jpgraph/src/jpgraph_line.php");
include("jpgraph/src/jpgraph_bar.php");
include("jpgraph/src/jpgraph_plotline.php");
include("class.database.php");


try{

$connect = new Database();

$strSQL = "SELECT * FROM recorddaily WHERE Date BETWEEN '".($_POST['start'])."'
and '".($_POST['end'])."' AND UserID = ".($_GET['UserID'])." ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");

// ����������ŷ����ʴ� �������ҧ��ҿ
$datay=array();
while($objResult = mysql_fetch_array($objQuery))
{
$datay[] = $objResult["Sugar"];
$date[] = $objResult["Date"];
}
$num = array_sum($datay)/count($datay);

if(count($datay)==1){
throw new JpGraphException('Please enter at least two days to see the chart above.');
}

// Setup the graph
$graph = new Graph(1000,500);
$graph->SetScale("textlin");

$theme_class=new UniversalTheme;

$graph->SetTheme($theme_class);
$graph->img->SetAntiAliasing(false);
$title = iconv("tis-620", "utf-8", "��ҿ �дѺ��ӵ������ʹ");
$graph->title->Set($title);
$graph->title->SetMargin(15);
$graph->title->SetFont(FF_ANGSA, FS_BOLD, 16);
$graph->SetBox(false);

$graph->img->SetAntiAliasing();

$graph->yaxis->HideZeroLabel();
$graph->yaxis->HideLine(false);
$graph->yaxis->HideTicks(false,false);

$graph->xgrid->Show();
$graph->xgrid->SetLineStyle("solid");
$graph->xaxis->SetLabelAngle(60);
$graph->xaxis->SetTickLabels($date);
$graph->xgrid->SetColor('#E3E3E3');

// Create the first line
$p1 = new LinePlot($datay);
$p2 = new PlotLine(HORIZONTAL,$num,'orange',5);
$p3 = new PlotLine(HORIZONTAL,80,'blue',15);
$p4 = new PlotLine(HORIZONTAL,120,'green',15);
$p5 = new PlotLine(HORIZONTAL,200,'yellow',15);
$p6 = new PlotLine(HORIZONTAL,300,'pink',15);
$p7 = new PlotLine(HORIZONTAL,350,'red',15);
$p2->SetLegend("Average");
$p3->SetLegend("Low<80");
$p4->SetLegend("Good 80-120");
$p5->SetLegend("RiskDanger 121-200");
$p6->SetLegend("Danger 200-300");
$p7->SetLegend("VeryDanger >300");
$graph->Add($p1);
$graph->Add($p2);
$graph->Add($p3);
$graph->Add($p4);
$graph->Add($p5);
$graph->Add($p6);
$graph->Add($p7);
//$p1->SetColor("#6495ED");
//$p1->SetLegend('Line 1');
$p1->value->Show();
$p1->mark->SetType(MARK_FILLEDCIRCLE);
//$p1->SetLegend("Product 1");



$graph->legend->SetFrameWeight(1);

// Output line
$graph->Stroke();
}
catch (JpGraphException $e)
{
//JpGraphError::Raise($e->getMessage());
//throw new JpGraphException('Please enter at least two days to see the chart above.');

$e->Stroke();
}
?>

นี้อ่ะคับ โค้ด กราฟ

คือผมต้องการหาค่าเฉลี่ยด้วยเลย ใช้ พวก sum count ไป

ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 11:37:20 By : pon1991
 


 

No. 5



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

count() มันให้ค่าถูกต้องแล้ว
ส่วนที่ทำให้กรอกค่าเดียวไม่ได้ มันอยู่ตรงนี้ต่างหากครับ


Code (PHP)
// ถ้าจำนวนสมาชิกในตัวแปร $datay == 1
if(count($datay)==1){
    // ให้โยน Exception ออกมา (error)
    throw new JpGraphException('Please enter at least two days to see the chart above.');
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 11:41:13 By : phpinfo()
 


 

No. 6



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


try catch ตอนแรกผมก็ไม่ได่ใส่นะคับ มันก็ แจ้งเตือนว่า

Warning: Division by zero in /home/u293505357/public_html/grapBloodsugar.php on line 24

มันจะเตือนใน jpgraph เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 11:49:49 By : pon1991
 


 

No. 7



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ที่เป็นอย่างนั้นเพราะ sql query ที่คุณสั่งไปมันให้ผลกลับคืนมาเป็น 0 แถวไงล่ะครับ

Code (PHP)
$strSQL = "SELECT * FROM recorddaily WHERE Date BETWEEN '".($_POST['start'])."'
and '".($_POST['end'])."' AND UserID = ".($_GET['UserID'])." ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");

// เช็คก่อนว่าหาข้อมูลเจอหรือไม่

if (!mysql_num_rows($objQuery)) {
    // จบการทำงาน หรือแสดง error อะไรก็ว่าไป
    exit;
}

$datay=array();
// เพราะถ้าไม่เจอข้อมูล ใน block ส่วน while จะไม่ทำงาน และจำนวนสมาชิก $datay จะเป็น 0
// เพราะไม่มีการเพิ่มสมาชิกให้กับ $datay
while($objResult = mysql_fetch_array($objQuery))
{
$datay[] = $objResult["Sugar"]; 
$date[] = $objResult["Date"]; 
}
// และตรงนี้ count จะให้ผลเป็น 0 เมื่อนำไปหารกับ array_sum($datay)
// มันจึงเป็นการหารด้วย 0 (Division by zero) ซึ่งเป็น error ในโปรแกรมคอมพิวเตอร์ทั่วไปครับ
$num = array_sum($datay)/count($datay);

if(count($datay)==1){
throw new JpGraphException('Please enter at least two days to see the chart above.');
}



ประวัติการแก้ไข
2013-10-10 11:57:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 11:57:15 By : phpinfo()
 


 

No. 8



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

หรือแบบที่สอง เช็คหลังจาก loop while ก็ได้

Code (PHP)
$strSQL = "SELECT * FROM recorddaily WHERE Date BETWEEN '".($_POST['start'])."'
and '".($_POST['end'])."' AND UserID = ".($_GET['UserID'])." ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");

$datay=array();
// ถ้าไม่เจอข้อมูล ใน block ส่วน while จะไม่ทำงาน และจำนวนสมาชิก $datay จะเป็น 0
// เพราะไม่มีการเพิ่มสมาชิกให้กับ $datay
while($objResult = mysql_fetch_array($objQuery))
{
$datay[] = $objResult["Sugar"]; 
$date[] = $objResult["Date"]; 
}

// หาจำนวนสมาชิกของ $datay จะเป็น 0 ถ้า query ไม่เจอข้อมูล
$num_rows = count($datay);

if ($num_rows < 1) {
    // จบการทำงานหรือแสดง error อะไรก็ว่าไป
    exit;
}

// ทำตรงนี้เป็นต้นไปเฉพาะเวลาที่มีข้อมูลเท่านั้น
$num = array_sum($datay)/ $num_rows; // count($datay)


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 12:02:14 By : phpinfo()
 


 

No. 9



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : phpinfo() เมื่อวันที่ 2013-10-10 12:02:14
รายละเอียดของการตอบ ::
ก็คือให้ ผม แก้ไขโค้ด ให้เป็นแบบที่ พี่ เขียนเลย ช่ายมั้ยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 12:05:54 By : pon1991
 


 

No. 10



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ไม่สิครับ อย่าทำอย่างนั้น ผมให้ดูเป็นตัวอย่าง ผมแค่อธิบายการทำงาน และแนวคิดให้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 12:07:30 By : phpinfo()
 


 

No. 11



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ปล่อยให้น้อง เค้าลองแก้ตามไปก็ได้ จะได้เขอปัญหา ปัญญาจะได้เกิด (ไม่ได้โหดร้ายนะ)
ได้คำแนะนำ ก็ต้องลองไปปรับดู ตามความเหมาะสม และ ความต้องการของเรา............
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 12:27:34 By : apisitp
 


 

No. 12



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 11 เขียนโดย : apisitp เมื่อวันที่ 2013-10-10 12:27:34
รายละเอียดของการตอบ ::
ยังไงก็แล้วแต่น้องเขาครับ แต่ผมแค่แนะนำว่า ให้อ่านคอมเม้นท์และทำความเข้าใจจะดีกว่า จะได้แก้ด้วยความเข้าใจครับ
เพราะตัวอย่างที่ผมเขียนมันไม่ได้เขียนเพื่อแก้ให้ใช้ได้เลย แต่เน้นเขียนคอมเม้นท์เพื่อให้เข้าใจครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 12:34:35 By : phpinfo()
 


 

No. 13



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ก็พอเข้าใจบ้างแล้วครับ และอีกอย่าง type date ผมเป็น datetime ด้วย ถ้าจะ คิวรี แค่ 1 วัน มันก็จะไม่ขึ้นข้อมูล

ซึ่งผมก็ลึมใช้ โลจิ เช็คก่อน ซึ่งมีพี่ๆ มาบอก ก็ ขอบคุณ พี่ๆ หลายๆท่าน มากเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 12:39:19 By : pon1991
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : mysql_fetch_array กำหนด index เรื่มต้นเป็น 1 ได้มั้ยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่