Warning: mysql_fetch_array(): เจอปัญหาแบบนี้ครับ มันเกิดจากอะไร แล้วเราควรแก้ยังไงดี
เจอปัญหาแบบนี้ครับ มันเกิดจากอะไร แล้วเราควรแก้ยังไงดี
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\mis\webmaster\webdesign\web3s\osis\att_std_report_pdf.php on line 98
FPDF error: Some data has already been output, can't send PDF file
Code (PHP)
<?php
define('FPDF_FONTPATH','font/');
require('fpdf.php');
$pdf=new FPDF();
// เพิ่มฟ้อนต์ภาษาไทยเข้ามา ตัวธรรมดา กำหนด ชื่อ เป็น angsana
$pdf->AddFont('angsana','','angsana.php');
$pdf->AddFont('angsana','B','angsana.php');
$pdf->SetMargins( 15,20,20 );
//สร้างหน้าเอกสาร
$pdf->AddPage();
//$pdf->Image('logo.png',80,8,33);
// กำหนดฟ้อนต์ที่จะใช้ อังสนา ตัวธรรมดา ขนาด 14
$pdf->SetFont('angsana','',14);
//=================================================
$date3 = $_REQUEST['date3'];
//$date_fr = date('d-m-Y H:i:s', strtotime($date3)); // แปลงเวลาเป็นตัวเลข
$date4 = $_REQUEST['date4'];
//$date_ex = date('d-m-Y H:i:s', strtotime($date4)); // แปลงเวลาเป็นตัวเลข
$date_fr = date('Ymd', strtotime($date3));
$date_ex = date('Ymd', strtotime($date4));
// Y-m-d H:i:s
/*
$pdf->Write( 5 , iconv( 'UTF-8','cp874' ,'จากวันที่ :'.$date_fr ) );
$pdf->Ln();
$pdf->Write( 5 , iconv( 'UTF-8','cp874' ,'ถึงวันที่ :'.$date_ex ) );
$pdf->Ln();
*/
//===================================================================
$dsn = "misstect_in_test";
$host = "localhost";
$use = "root";
$pass = "";
$tablename = 'att_std_coming';
$condition = 'WHERE substr(convert(char(8),coming_date,112),0,4)
+substr(convert(char(8),coming_date,112),5,2)
+substr(convert(char(8),coming_date,112),8,2) >= "$date_fr"
AND substr(convert(char(8),coming_date,112),0,4)
+substr(convert(char(8),coming_date,112),5,2)
+substr(convert(char(8),coming_date,112),8,2)<="$date_ex"';
//echo "date_fr :".$date_fr;
//echo "<br>date_ex :".$date_ex;
/*
$condition = "WHERE substr('coming_date',0,4)+substr('coming_date',5,2)+substr('coming_date',8,2) >= '$date_fr' and substr('coming_date',0,4)+substr('coming_date',5,2)+substr('coming_date',8,2) <= '$date_ex' " ;
*/
//2009-12-14 00:00:00
$cn=mysql_connect($host,$use,$pass);
if(!$cn)
{
//echo "Not connect mysql ";
}
if($cn)
{
//echo "connect mysql ";
}
//Selecting database
$select_db = mysql_select_db("$dsn", $cn);
if(!$select_db){
die(mysql_error());
}
// "std_relation_id, coming_date, coming_time_in, coming_time_out, coming_symbol_in, coming_symbol_out, coming_note, coming_status"
$sql = "select * from $tablename $condition";
$dbquery = mysql_query($sql);
//echo "<br>test :".$dbquery."<br>";
$pdf->Cell( 0 , 5 , iconv( 'UTF-8','cp874' , $result["a"]), 0 , 1 , 'C' );
//=========== บันทึกข้อความส่วนหัว ===============
//$pdf->Image('images/logo.gif',80,8,33);
$pdf->SetFont('angsana','B',18);
//$pdf->Ln();
$pdf->Image('logo.png',25,20,20);
$pdf->Cell( 0 , 5 , iconv( 'UTF-8','cp874' , 'วิทยาลัย'), 0 , 1 , 'C' );
$pdf->Ln();
$pdf->SetFont('angsana','',14);
$pdf->cell( 0 , 5 , iconv( 'UTF-8','cp874' , 'ใบลงเวลามาเรียนของนักเรียน'), 0 , 1 , 'C' );
$pdf->cell( 0 , 5 , iconv( 'UTF-8','cp874' , 'ประจำวันที่'.$date_fr.' ถึงวันที่ :'.$date_ex ), 0 , 1 , 'C' );
//=========== บันทึกชื่อของคอรัม ===============
$pdf->SetFont('angsana','B',12);
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"ลำดับ"),1,0,'C' );
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"รหัส"),1,0,'C' );
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"วัน/เดือน/ปี"),1,0,'C' );
$pdf->cell( 15, 8 , iconv( 'UTF-8','cp874' ,"เวลามา"),1,0,'C' );
$pdf->cell( 15, 8 , iconv( 'UTF-8','cp874' ,"เวลากลับ"),1,0,'C' );
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"สัญลักษณ์มา"),1,0,'C' );
$pdf->cell( 25, 8 , iconv( 'UTF-8','cp874' ,"สัญลักษณ์กลับ"),1,0,'C' );
$pdf->cell( 25, 8 , iconv( 'UTF-8','cp874' ,"หมายเหตุ"),1,0,'C' );
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"สถานะ"),1,0,'C' );
$pdf->Ln();
$num=0;
while($result = mysql_fetch_array($dbquery))
{
$pdf->cell( 20, 5 , iconv( 'UTF-8','cp874' ,$num),1 );
//=========== ข้อมูลที่นำไปบันทึกลง pdf ===============
$pdf->cell( 20, 5 , iconv( 'UTF-8','cp874' ,$result["std_relation_id"]),1 );
$coming_date = date('d-m-Y', strtotime($result["coming_date"]));
$pdf->cell( 20, 5 , iconv( 'UTF-8','cp874' ,$coming_date),1 );
$coming_date = '';
$coming_time_in = date('H:i:s', strtotime($result["coming_time_in"]));
$pdf->cell( 15, 5 , iconv( 'UTF-8','cp874' ,$coming_time_in),1 );
$coming_time_in ='';
$coming_time_out=date('H:i:s', strtotime($result["coming_time_out"]));
$pdf->cell( 15, 5 , iconv( 'UTF-8','cp874' ,$coming_time_out),1 );
$coming_time_out='';
$pdf->cell( 20, 5 , iconv( 'UTF-8','cp874' ,$result["coming_symbol_in"]),1 );
$pdf->cell( 25, 5 , iconv( 'UTF-8','cp874' ,$result["coming_symbol_out"]),1 );
$pdf->cell( 25, 5 , iconv( 'UTF-8','cp874' ,$result["coming_note"]),1 );
$pdf->cell( 20, 5 , iconv( 'UTF-8','cp874' ,$result["coming_status"]),1 );
$pdf->Ln();
$num++;
if($num == 43)
{
$pdf->SetMargins( 15,30,20 );
$pdf->AddPage();
//=========== บันทึกชื่อของคอรัม ===============
$pdf->SetFont('angsana','B',12);
//$pdf->Ln();
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"ลำดับ"),1,0,'C' );
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"รหัส"),1,0,'C' );
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"วัน/เดือน/ปี"),1,0,'C' );
$pdf->cell( 15, 8 , iconv( 'UTF-8','cp874' ,"เวลามา"),1,0,'C' );
$pdf->cell( 15, 8 , iconv( 'UTF-8','cp874' ,"เวลากลับ"),1,0,'C' );
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"สัญลักษณ์มา"),1,0,'C' );
$pdf->cell( 25, 8 , iconv( 'UTF-8','cp874' ,"สัญลักษณ์กลับ"),1,0,'C' );
$pdf->cell( 25, 8 , iconv( 'UTF-8','cp874' ,"หมายเหตุ"),1,0,'C' );
$pdf->cell( 20, 8 , iconv( 'UTF-8','cp874' ,"สถานะ"),1,0,'C' );
$pdf->Ln();
$num=0;
}
}
$pdf->cell( 20, 5 , iconv( 'UTF-8','cp874' ,"หลุด loob"),1 );
//session_destroy();
//=======================================================
mysql_close($cn);
$pdf->Output();
?>
ของคุณมากนะครับTag : - - - -
Date :
2010-06-17 14:36:04
By :
poy213
View :
1513
Reply :
4
ตอบให้คร่าวๆนะครับ มันติดตรง คำสั่ง คิวรี่ไม่ถูกต้องครับ มันเลยดึงข้อมูลออกมาไม่ได้ ลองเช็คคำสั่ง คิวรี่ดูอีกทีครับ
Date :
2010-06-17 15:04:21
By :
Manussawin
ดูที่คำสั่ง select อะครับ มันผิดตรงนั้นแหละครับ
$select_db = mysql_select_db("$dsn", $cn);
ลอง echo""; มาดูเดียวก็จะเห็นครับ ดูว่าค่าตัวแปลที่เรียกมาใช้มีค่าหรือป่าวครับ
Date :
2010-06-17 15:08:17
By :
SOUL
Code (PHP)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\mis\webmaster\webdesign\web3s\osis\att_std_report_pdf.php on line 98
แยกเป็นสอง error นะครับคือบรรทัดบนนั้นให้คุณลองทำการ echo $sql ออกมาดูครับผมว่าน่าจะผิดอะไรก็ตรงตัวแปร $condition เนี้ยแหละครับ
Code (PHP)
FPDF error: Some data has already been output, can't send PDF file
ส่วนของบรรทัดนี้คือการที่มี error ด้านบนออกมาก่อนครับ ทำให้เกิดบรรทัดนี้มา เดาว่าน่าจะเป็น function header อ่ะครับ
ผิดถูกยังไงรบกวนท่านอื่น ช่วยแก้ไขด้วยนะครับ จะขอบคุณอย่างยิ่งครับผม
Date :
2010-06-17 15:12:51
By :
oxygenyoyo
แก้เป็นแบบนี้แล้วครับ
Code (PHP)
$condition = "WHERE substr(convert(char(8),coming_date,112),0,4)
+substr(convert(char(8),coming_date,112),5,2)
+substr(convert(char(8),coming_date,112),8,2) >= '$date_fr'
AND substr(convert(char(8),coming_date,112),0,4)
+substr(convert(char(8),coming_date,112),5,2)
+substr(convert(char(8),coming_date,112),8,2)<='$date_ex' ";
Code (PHP)
echo $sql = "select * from $tablename $condition";
ผลที่ได้
Code (PHP)
select * from att_std_coming WHERE substr(convert(char(8),coming_date,112),0,4) +substr(convert(char(8),coming_date,112),5,2) +substr(convert(char(8),coming_date,112),8,2) >= '20091219' AND substr(convert(char(8),coming_date,112),0,4) +substr(convert(char(8),coming_date,112),5,2) +substr(convert(char(8),coming_date,112),8,2)<='20091220'
แล้วผมก็นำไป ใส่ใน phpMyAdmin
เกิดข้อผิดพลาด
SELECT *
FROM att_std_coming
WHERE substr(
convert( char( 8 ) , coming_date, 112 ) , 0, 4
) + substr(
convert( char( 8 ) , coming_date, 112 ) , 5, 2
) + substr(
convert( char( 8 ) , coming_date, 112 ) , 8, 2
) >= '20091219'
AND substr(
convert( char( 8 ) , coming_date, 112 ) , 0, 4
) + substr(
convert( char( 8 ) , coming_date, 112 ) , 5, 2
) + substr(
convert( char( 8 ) , coming_date, 112 ) , 8, 2
) <= '20091220'
LIMIT 0 , 30
MySQL แสดง:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(convert(char(8),coming_date,112),0,4) +substr(convert(char(8),
Date :
2010-06-17 15:38:38
By :
poy213
Load balance : Server 01