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,028

HOME > PHP > PHP Forum > ขอความช่วยเหลือด่วนทีค่ะ จนปัญญาจริงๆ ตั้งแต่ 8 โมงถึงตอนนี้ไม่ไปถึงไหนเลยค่ะ



 

ขอความช่วยเหลือด่วนทีค่ะ จนปัญญาจริงๆ ตั้งแต่ 8 โมงถึงตอนนี้ไม่ไปถึงไหนเลยค่ะ

 



Topic : 128828



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



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




ตาราง memb มีฟิลด์
id
gencode = รหัสสมาชิก เช่น A0001 , A0002...Z0001
name = ชื่อสมาชิก

ตาราง runnumtb มีฟิลด์
id
rid ไว้บวกค่าเพิ่มทีละ 1
numb ตรวจสอบค่าที่เติมรหัสสมาชิกเช่น 1 ,2 ......

ตาราง txtrun มีฟิลด์
id
txtrun เก็บค่าตัวอักษร

เช่น
id 1 = txtrun A
id 2= txtrun B

โค้ด PHP ค่ะ

Code (PHP)
<?
$sqlnum = "select * from runnumtb"; // เปิดตาราง runnumtb เพื่อตรวจสอบค่า
$resultcg = mysql_query($sqlnum) or die(mysql_error());
while($rowcg = mysql_fetch_array($resultcg))
{
$idnum = $rowcg['id'];
$rid = $rowcg['rid'];
$numb = $rowcg['numb'];

//ตรวจสอบว่า ค่า rid ของตาราง runnumtb คือค่าอะไร ในที่นี้คือ 1 ก็ไปตรวจสอบว่าค่า 1 ในตาราง txtrun คืออะไร ในทีนี้ก็จะตรงกับ A

$sqlruntxt="select * from txtrun where id='$rid'";
$db_query=mysql_query($sqlruntxt);
$resulrt=mysql_fetch_array($db_query);
$txtr=$resulrt[txtr];

$numb = $numb+1;
$numbr = sprintf("%05d",$numb);

if ($numb < 5) // ตรวจสอบว่า ถ้า numb น้อยหรือเท่ากับ  ให้ ค่าเป็น A แล้วรันด้วย 0001 ไปเรื่อย จนครบ 5
{
echo "$txtr$numbr";
echo "<input type=hidden name=numbbr value=$numb>";
echo "<input type=hidden name=gencode value=$txtr$numbr";
}else{

// แต่ถ้า numb = 5 ให้ทำการคืนค่า numb = 0 และ +1 ให้ค่า rid แล้วทำการตรวจสอบตาราง txtrun ในทีนี้ค่าเท่ากับ 2 ตัวหน้าจะเป็น B แทน A

$sql_update1 = "update runnumtb set numb=0 where id = 1";
mysql_query($sql_update1);

$sql_update2 = "update runnumtb set rid=rid+1 where id = 1";
mysql_query($sql_update2);

echo "$txtr$numbr";
echo "<input type=hidden name=numbbr value=$numb>";
echo "<input type=hidden name=gencode value=$txtr$numbr";
}

}
?>



ปัญหาเหลือแค่จุดเดียวค่ะคือ

รันไปเรื่อย เช่น
A0001
A0002
A0003
A0004
A0005

เมื่อกดบันทึก หลังจากรับค่า A0005 แล้ว มันยังแสดงเป็น A0006 อยู่ค่ะ แทนที่มันจะเป็น B0001
** ซึ่งในขณะที่ค่าเป็น A0006 ถ้าเรากด Refresh 1 ครั้ง มันจะเปลี่ยนมาเป็น B0001

ไม่ทราบว่าต้องแก้ตรงไหนคะ ที่จะให้ค่า A0005 หลังจากที่กดบันทึกทำการ Refesh เป็น B0001 เลย


ขอบคุณนะคะ ติดแค่จุดเดียวค่ะ



Tag : PHP, MySQL, HTML









ประวัติการแก้ไข
2017-09-07 15:18:49
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-09-07 15:18:07 By : because View : 845 Reply : 10
 

 

No. 1



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



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




มาจาก https://www.thaicreate.com/php/forum/128804.html หรือเปล่าครับ

จริงๆแล้วมันมีวิธีที่ง่ายกว่านี้นะครับ ว่าจะลองนั่งเขียนให้ แต่อยู่นอกบ้านน่ะครับ

เดี๋ยวจะมาตอบให้นะครับ แต่ถ้ายืนยันจะใช้วิธีนี้ ผมก็จะตอบให้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 21:44:22 By : tomrambo
 


 

No. 2



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



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


จริงๆอยากจะตอบตอนอ่าน topic คำถาม แต่พออ่านโค๊ดแล้วหมดกำลังใจที่จะตอบ
คือผมตอบไปให้ จขกท เยอะมาก แต่ไม่ได้พัฒนาวิธีการเขียนขึ้นเลย กลับไปเอาโค๊ดกากๆ มาใช้งาน
ทำไปก็หนัก server ตอบไปก็ไม่ได้ประโยชน์ จ้างเขาทำดีกว่ามั้งครับ อย่าเขียนเองเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 22:15:19 By : Chaidhanan
 

 

No. 3



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



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


ขอบคุณท่าน Tom มากค่ะ

ขอบคุณท่านอาจารย์ Chaidhanan นะคะ
คือเข้าใจนะคะว่า ทฤษฎีของการเขียนแต่ละคนต่างกัน หลักการเขียนจากตำราเดียวกัน แต่คนใช้ไม่ถึงจุดที่ตั้งไว้ก็เยอะ วิ่งที่หนูไม่เข้าใจก็ทำตามจากที่เคยเขียนมา ซึ่งมันก็ขึ้นอยู่ที่โจทย์แต่ละอย่างที่หนูเองก็ต้องมานั่งสรรหาและเขียน ต่อให้ขุดกระทู้เก่าๆ มา ไม่เข้าใจมันก็คือไม่เข้าใจจริงๆ จบบัญชีมา แต่มาลองทำดู เขียน php โดยเริ่มจาก 0 มา ก็เลยไม่รู้ว่า คนจบบัญชีมาเขียน php อย่างนี้ได้เยอะแค่ไหน เหมือนคนที่จบคอมหรือศึกษาอย่างจริงจังมากมั้ย

ถ้าคนเชี่ยวชาญและเขียนกากแบบหนู ก็น่าหัวเราะและคงไม่กล้ามาโพสต์ถาม แต่ถ้าคนจบบัญชีอย่างหนูแล้วเขียนอย่างนี้ ถ้ากาก ก็คงต้องหาความรู้เพื่อให้ได้หนทางการเขียนที่ดีๆ และอาศัยบอร์ดนี้ในการขอคำแนะนำเพื่อนำมาซึ่งความถูกต้อง

ขอบคุณอาจารย์ Chaidhanan ที่ช่วยหนูมา แต่คนเราไม่เข้าใจก็ไม่ผิดที่จะมาตั้งโพสต์ถามอย่างนี้ หรือว่าถ้าหนูถามแล้วเกิดการพัฒนาของตัวเองต่ำลง ก็จะเข้าใจตัวเองมากขึ้น ขอบคุณมากนะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-08 00:25:11 By : because
 


 

No. 4



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



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


คุณ Chaidhanan ถ้าจะช่วยก็ช่วยครับ ไม่ช่วยก็อย่าไปว่าคนอื่นเขา ความรู้ความสามารถของแต่ละคนเขาไม่เหมือนกัน เขาไม่รู้จึงมาถาม มาขอความช่วยเหลือ ถ้าคุณมองว่ามันไม่ถูกไม่ดีผมว่าพูดแนะนำดีๆก็ได้ครับ พูดไปแบบนี้คนถามเขาจะหมดกำลังใจเปล่าๆ

...เข้าใจครับว่าคุณเก่ง แต่ถ้าใช้คำพูดที่ถนอมความรู้สึกคนอื่นมากกว่านี้ สังคม Thaicreate จะน่าอยู่กว่านี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-08 10:12:54 By : ปั่ดโถ่ เดี๋ยวทุ้มด้วยโพเดี้ยม
 


 

No. 5



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

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

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


ตอบความคิดเห็นที่ : 4 เขียนโดย : ปั่ดโถ่ เดี๋ยวทุ้มด้วยโพเดี้ยม เมื่อวันที่ 2017-09-08 10:12:54
รายละเอียดของการตอบ ::
งั้นคุณช่วยแนะนำหน่อยครับ
เกี่ยวกับหัวข้อนี้
บางทีการติเตียน คือการกระตุ้นให้เรามีความพยายามตั้งใจกว่านี้นะ
อาจารย์ Chaidhanan เค้าช่วยเยอะสุดในเว็บนี้แล้วนะ

มือไม่พายอย่าเอาเท้าราน้ำครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-08 10:41:16 By : Pong Thep
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : Pong Thep เมื่อวันที่ 2017-09-08 10:41:16
รายละเอียดของการตอบ ::
ผมเขียนโปรแกรมไม่เป็นหรอกครับ ผมพูดในฐานะคนที่ผ่านเข้ามาในเว็บนี้ ผมไม่รู้หรอกว่าใครช่วยตอบกระทู้เยอะแค่ไหน แต่เผอิญผมมาเห็นข้อความที่คุณ Chaidhanan ตอบ ขจกท. เลยมองว่าน่าจะใช้คำพูดที่เบากว่านี้สักหน่อย ขอให้ ขจกท. แก้ปัญหาได้นะครับ

...จบนะครับ ไม่ดราม่านะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-08 11:13:10 By : ปั่ดโถ่ เดี๋ยวทุ้มด้วยโพเดี้ยม
 


 

No. 7



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



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


ที่ผมเห็นคุณไม่พัฒนายกตัวอย่าง
$resulrt=mysql_fetch_array($db_query);
คุณใช้ fetch_array ซึ่งรูปแบบที่ได้ เป็น result 2 ชนิด
คือแบบ array ที่มีชื่อ field เป็นคีย์เรียกใช้ และ item index ใช้ลำดับที่ของ field เป็นตัวเรียกใช้
ซึ่งในโค๊ดคุณไม่มีการเรียกใช้ item index เลยใช้แต่ชื่อ ซึ่งควรจะใช้คำสั่ง mysql_fetch_assoc()
จะทำให้server ทำงานเร็วขึ้นและใช้หน่วยความจำน้อยลง

$numb = $numb+1;
การบวกเลขโดยเพิ่มเข้าไปในตัวแปรตัวเดิม เขาเลิกใช้แบบนี้กันแล้ว
เพราะมันอ้างอิงอ้อม ( ใช้ register ax,bx,dx,cx ในการคำนวณหลายตัว )
เขาใช้ $numb++; เฉพาะเพิ่มที่ละ 1
$numb += 2 | 3 | ..... บวกเพิ่มได้สูงสุดตามค่า maximum ของตัวแปร

$sql_update1 = "update runnumtb set numb=0 where id = 1";
mysql_query($sql_update1);

คุณสั่งคิวรี่ โดยที่คุณไม่ตรวจสอบ เออเร่อร์ หรือผลที่ได้กลับมาเลย

ซึ่งคุณเขามาถามมาเรียนมาศึกษาตั้งแต่ 2511 เข้ามาก่อนผมตั้งหลายปี
คุณก็ยังไม่พัฒนา ผมไม่รู้คุณเอาโค๊ดนี้มาจากไหน
ถ้าคุณสนใจจริงๆจัง ผมว่าน่าจะแก้ปัญหาแค่นี้ได้แล้วนะครับ

ก็ต้องขอโทษด้วยถ้าจะติแรงไปหน่อย ก็แค่อยากให้พัฒนาขึ้นมากกว่านี้
ก็เหมือนพ่อแม่ทำไมถึงดุด่าลูกแต่ละครั้งหนักเบาต่างกัน เพราะต้องดูสภาพแวดล้อมว่าควรทำอย่างไร

ลองใช้ความรู้ที่มี แก้ไขเอาเองอีกสักตั้ง ถ้าไม่ไหวจริงๆ ก็มาโพสอีกทีจะเข้ามาบอกให้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-08 11:39:09 By : Chaidhanan
 


 

No. 8



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



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


อย่ามาบาดหมางใจกันเพราะเรื่องนี้เลยค่ะ หนูแค่เด็กบัญชี จบมาอยากลองเปลี่ยนแนว อาศัยเว็บนี้แหละค่ะ ตั้งแต่เวอร์ชั่นเก่าๆ ที่พี่วินคนนึงเปรียบเป็นอาจารย์ด้วย ส่วนมากไม่ค่อยโพสต์ค่ะ นอกจากไม่ได้จริงๆ โค้ดต่างๆ ก็เอามาจากพี่ในนี้หมดค่ะ เลยไม่รู้ว่า เค้าพัฒนาไปไกลแค่ไหนแล้ว พี่ๆท่านไหนที่โพสต์ถามปัญหา หนูก็ลองก๊อปมา ลองผิดลองถูกเอง ไม่อยากจะรบกวนใคร แต่ถ้าถึงที่สุดแล้ว ไม่ได้จริงๆ ก็คงต้องอาศัยบอร์ดนี้ถามเพื่อเป็นตัวเลือก

ขอบคุณทุกๆคอมเม้นท์ รวมถึง อาจารย์ Chaidhanan ด้วยค่ะ หนูอารมณืร้อนไปหน่อย ยังไงสังคมที่นี่ก็ทำให้หนูได้รับความรู้เยอะ ผลลักพท์ที่ได้จากการตอบของหลายๆคน หนูก็เอาไปใช้งาน จะหนัก Server หรือ จะทำให้ช้ากว่าเดิมยังไง หนู่อาจไม่ทราบ แต่ถ้าผลลัพท์ออกมาใช้งานได้ ก็ภูมิใจค่ะที่มาจากฝีมือหนูเอง ก็คงต้องพัฒนาอีกเยอะ

ตอนนี้ได้แล้วค่ะ ลองไปลองมา ไว้โอกาสหน้าจะมาตั้งคำถามใหม่นะคะ ถ้าไม่ได้จริงๆ

ขอโทษท่านอาจารย์ Chaidhanan
และขอบพระคุณพี่ๆทุกคนที่แนะนำ เพื่อเป็นกำลังใจในงานต่อไปค่ะ

ขอบคุณค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-08 14:21:02 By : because
 


 

No. 9



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



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


อ้าว....ผมมาช้าไป กำลังจะมาตอบ ดีใจด้วยครับที่แก้ปัญหาได้แล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-08 18:45:59 By : tomrambo
 


 

No. 10



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



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


ส่วนนี่วิธีของผมนะครับ ลองนั่งเขียนให้...

Query เดียวจบ จริงๆจะไปใช้ตอน insert เลยก็ได้ครับ

เป็นอีกหนึ่งทางเลือกนะครับ...

$maxnum = 9999; //ตัวเลขที่จะให้ Run สูงสุด
$startLetter = 'A'; //เริ่มที่ตัวอักษร A
$setZero = 4; // จำนวนหลักของเลขศูนย์

$result = mysql_query("SELECT CONCAT(CHAR(ORD('".$startLetter."')+FLOOR(IFNULL(MAX(id),0)/$maxnum)),LPAD(IF((IFNULL(MAX(id),0)%$maxnum)+1=0,1,((IFNULL(MAX(id),0))%$maxnum)+1),".$setZero.",'0')) memid FROM member") or die(mysql_error());

$row = mysql_fetch_assoc($result);

echo $row['memid'];


ปล. แนะนำให้เปลี่ยนไปใช้ mysqli แทน mysql นะครับ แต่ที่ผมเขียนมาให้เป็น mysql ก็เนื่องจากว่าเห็น จขกท. โพสต์โค้ดมาเป็น mysql ครับ


ประวัติการแก้ไข
2017-09-09 01:46:44
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-09 01:41:37 By : tomrambo
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอความช่วยเหลือด่วนทีค่ะ จนปัญญาจริงๆ ตั้งแต่ 8 โมงถึงตอนนี้ไม่ไปถึงไหนเลยค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่