A-AA+then

ขอถามเกี่ยวกับการบันทึกวันที่ลงฐานข้อมูลคับ

2,255

โค๊ตวันที่ผมเป็นแบบนี้คับ

<select name="list">
<option value="day">วันที่</option>
<?
for($i=1;$i<=31;$i++){
?>

<option value="$i" >
<?=$i?></option>
<? } ?>
</select >

 
<select name="list">
<option value="mont">เดือน</option>
<? $t=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤษจิกายน","ธันวาคม"); ?>
<?
for($i=0;$i<=12;$i++){
?>

<option value="$t" >
<?=$t[$i]?>
</option>
<? } ?>
</select >

 
<? if(!isset($y1)){$y1=date("Y")+543; }?>
                      <input name="year" type="text" id="year" size="6" maxlength="4" value="<? echo $y1;?>">


ไม่รู้ถูกรึป่าวนะคับ
ผมไม่รู้ว่าจะบันทึกลงฐานข้อมูลยังไง

6 ความคิดเห็น

<option value="$t" >

ผิดตรงนี้แหละ น่าจะเป็น

<option value="<?php echo ($i + 1)?>">

เนื่อจากเดือนต้องเริ่มที่ 1

ค่าที่ได้จะเป็นตัวเลขที่ต้องการ ก็จะเอาไปต่อกันและเก็บใส่ db ได้เลย

$data = "$date-$mont-".($year - 543);

year ต้องลบด้วย 543 เนื่องจาก mysql เก็บเป็น คศ.
1

มันไม่ได้อ่ะึัคับ
พอเปิดดูในฐานข้อมูลมันขึ้นเป็น 0000-00-00 คับ
แต่ตัวอื่นมันก้อบันทึกลงปกติอ่ะคับ
2

แสดงว่าฟอร์แมตเป็น ปี-เดือน-วันที่ ลองแก้ไขดูครับ
3


เปลียนเป็นแบบนี้รึเปล่าคับ

$data= ($year - 543)."-$mont-$day";

ผมเปลี่ยนแล้วยังไม่ได้อ่ะคับ
4

echo $data ออกมาดูก่อนได้ไหมครับ ว่าถูกต้องจากที่ต้องการหรือเปล่า .....
ถ้าถูกต้องแล้ว ก็มาดูที่ฟิลด์ที่บันทึกว่ามีรูปแบบอย่างไร....

ลอง Insert โดยใช้ query ดูก่อนโดยใช้ข้อมูลสมมุติตามที่ $data แสดงออกมา แล้วตรวจสอบว่าถูกต้องหรือเปล่า

ส่วนใหญ่น่าจะมีปัญหามาจากเรื่อง format นั่นแหละ เท่าที่เจอก็เรื่องข้อมูลมีเวลาติดมาด้วย
5

ได้แล้วคับ
ขอบคุณมากๆๆๆที่ช่วยคับ
6
^