หน้า 1 จากทั้งหมด 1

ช่วยด้วยครับ จนปัญญาจริงๆๆ

โพสต์แล้ว: 20/01/2007 10:32 am
โดย suree
ผมเขียนโค้ดนำข้อมูลจาก msaccess มาแสดงผล ปรากฏว่า ตรง วดป มันแสดง เป็นปี ค.ศ. แล้วแสดงเวลาด้วย พอให้ออก วดป มันกลับไม่แสดงผล ผมเขียนโค้ดอย่างนี้ครับ
echo "<td align=center>","เลขที่","</td>";
echo "<td align=center>","คำนำหน้า","</td>";
echo "<td align=center>","ชื่อ","</td>";
echo "<td align=center>","นามสกุล","</td>";
echo "<td align=center>","วันเดือนปีเกิด","</td>";
do {
echo "</tr>";
for($I=1;$I<=$nf;$I++){
if ($I == 5) {
$a = (odbc_result($rn,$I));
// $a = date('Y',$a);
// $a = $a+543 ;
// print date("d.m.Y",$mk1);
echo "<td>",$a,"</td>";
// $a = $b;
}
else {
echo "<td>",odbc_result($rn,$I),"</td>";
}
}
echo "</tr>";
}
while(odbc_fetch_Row($rn));
echo "</table>";
?>

ใครรู้วิธีแก้ ช่วยทีครับ
อีกเรื่องนะครับ อยากให้มันแสดง เป็น วดป เป็น ปี พศ ด้วย ครับ ช่วยที
ทำมาเป็น พันๆๆรอบแล้ว จนปัญญาจริงๆๆ

โพสต์แล้ว: 20/01/2007 10:47 am
โดย mindphp
$nf มาจากไหนครับ แล้ว ข้อมูล เก็บ ไว้ ยังไง
while(odbc_fetch_Row($rn)); ใช้เพื่ออะไร

ใช้เรียก ตาราง ใน msaccess มาใช้งานครับ

โพสต์แล้ว: 20/01/2007 11:16 am
โดย suree
ใช้เรียกตาราง ที่เราต้องการ มาแสดงผลครับ โค้ดทั้งหมดเป็นแบบนี้ครับ เมื่อกี้ไฟดับ เลยโพสใหม่ ตอบกระทู้ อาจซ้ำกันนะครับ
<?php
$dsn = "phptbhdb";
$uid ="";
$pwd = "";
$fn = odbc_connect($dsn,$uid,$pwd);
$sql= "select id_card ,prename,fname,lname,birthdate from person";
//$sql= "select * from person";
$rn = odbc_exec($fn,$sql);
$nf = odbc_num_fields($rn);
$nr = odbc_num_rows($rn);
echo "<table border = 1><tr>";
//for($I = 1;$I <=$nf;$I++){
//echo "<td>",$I,".",odbc_field_name($rn,$I),"</td>";
//}
echo "<td align=center>","เลขที่","</td>";
echo "<td align=center>","คำนำหน้า","</td>";
echo "<td align=center>","ชื่อ","</td>";
echo "<td align=center>","นามสกุล","</td>";
echo "<td align=center>","วันเดือนปีเกิด","</td>";
do {
echo "</tr>";
for($I=1;$I<=$nf;$I++){
if ($I == 5) {
$a = (odbc_result($rn,$I));
// $a = date('Y',$a);
// $a = $a+543 ;
// print date("d.m.Y",$mk1);
echo "<td>",$a,"</td>";
// $a = $b;
}
else {
echo "<td>",odbc_result($rn,$I),"</td>";
}
}
echo "</tr>";
}
while(odbc_fetch_Row($rn));
echo "</table>";
?>

โพสต์แล้ว: 20/01/2007 3:18 pm
โดย mindphp
mixed odbc_result ( resource result_id, mixed field )
Returns the string contents of the field, FALSE on error, NULL for NULL data, or TRUE for binary data.

odbc_fetch_row() fetches a row of the data that was returned by odbc_do() / odbc_exec(). After odbc_fetch_row() is called, the fields of that row can be accessed with odbc_result().

ข้อมูล field birthdate เก็บ ไว้ อย่างไร

โพสต์แล้ว: 20/01/2007 8:30 pm
โดย suree
mindphp เขียน:mixed odbc_result ( resource result_id, mixed field )
Returns the string contents of the field, FALSE on error, NULL for NULL data, or TRUE for binary data.

odbc_fetch_row() fetches a row of the data that was returned by odbc_do() / odbc_exec(). After odbc_fetch_row() is called, the fields of that row can be accessed with odbc_result().

ข้อมูล field birthdate เก็บ ไว้ อย่างไร


เก็บเป็น date ครับ แต่เป็น ปี คศ

โพสต์แล้ว: 20/01/2007 10:06 pm
โดย mindphp
ดึง ข้อมูล จาก field มาได้ หรือยังครับ
ข้อมูลออกมาเป็น อะไร
แล้ว
เก็บเป็น date ครับ แต่เป็น ปี คศ.หมาย ความ ว่าไง ครับ
รูปแบบ ของ ข้อมูล เป็น อย่าง ไร

โพสต์แล้ว: 20/01/2007 11:12 pm
โดย suree
เก็บเป็น date ครับ แต่เป็น ปี คศ.หมาย ความ ว่าไง ครับ
รูปแบบ ของ ข้อมูล เป็น อย่าง ไร[/quote]

คืองี้ครับ ในแอค เซส รูปแบบฟิลนี้ เป็น DATE/time ซึ่งเป็นแบบ long date เวลาเราเข้าไปดูข้อมูลจะเห็น เช่น 1/7/1993 (ว ด ป) ถ้าผมรับมาแบบที่ผมเขียนโค้ดใหดู้ เอามาโชว์เลย PHP จะ โชว แบบนี้ ครับ 1993-07-01 00:00:00 แต่พอผมใช้คำสั่งแบบที่ผม remark ไว้ มันกลับแสดงผลไม่ได้ครับ

โพสต์แล้ว: 21/01/2007 1:00 am
โดย mindphp
ถ้าดึง ข้อมูลออกจาก db ได้แล้ว
ก็ ใช้ วิธี แยก string ออก นะครับ
เช่น ถ้า ข้อมูล เป็น
1993-07-01 00:00:00
จะเห็น ว่า มันมี ช่องว่าง อยู่ระหว่าง
1993-07-01 กับ 00:00:00
เราก็ ใช้ ช่องว่า เป็น ตัวแยก ออก
จะได้
1993-07-01
เราก็ แยก 1993-07-01 ออก เป็น ชุดๆ ด้วย "-" อีกที ก็ จะได้ วัน แยกจาก เดือน แยกจากปี
แล้ว เอา ปี มาบวก 543 นะครับ

function ที่ใช้คือ
https://www.mindphp.com/modules.php?name ... nt&tid=342

โพสต์แล้ว: 21/01/2007 8:55 am
โดย suree
[quote="mindphp"]ถ้าดึง ข้อมูลออกจาก db ได้แล้ว
ก็ ใช้ วิธี แยก string ออก นะครับ
เช่น ถ้า ข้อมูล เป็น
1993-07-01 00:00:00
จะเห็น ว่า มันมี ช่องว่าง อยู่ระหว่าง
1993-07-01 กับ 00:00:00
เราก็ ใช้ ช่องว่า เป็น ตัวแยก ออก
จะได้


ขอบคุณครับที่ช่วยแนะนำ แต่ปัญหาที่ผมปวดหัวคือว่า ตามที่เขียนโค้ดนะครับ
ถ้าให้โชว์ ว ด ป โดยไม่แปลง อะไรเลย มันโชว์ข้อมูลได้ถูกต้องครับ
พอเอา ว ด ป มาแปลงด้วย แบบวิธีดังกล่าว มันโชว์วันที่ผิดหมดเลยครับ
ช่วยอีกทีนะครับ คือมันโชว์ วดป ของ เรคคอดแรก แล้วมันก็เอาของ เรคคอดแรกไปใส่ให้ เรคคอดอื่นหมดเลย

โพสต์แล้ว: 21/01/2007 8:40 pm
โดย mindphp
ลอง แบบนี้ ครับ
while($row = odbc_fetch_Row($rn)) {
print_r($row); // หรือ echo $row[0] ,$row[1],...
}
เป็น การ fetch ค่าจาก result ใส่ตัวแปล array ในที่นี้ชื่อ $row