ช่วยผมดูโค้ดด้วยครับ ผมจะเพิ่มข้อมูลลง mysql ครับ ถ้าดึงออกมาโชว์ต้องเขียนโค้ด?

เริ่มโดย ab2f6, 11 มิถุนายน 2010, 23:58:39

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

ab2f6

คือว่าผมทำแล้วมันไม่เก็บข้อมูลงฐานข้อมูลเลยครับ
มันบอก INSERT มีข้อผิดพลาดเกิดขึ้น

ผมต้องแก้ที่ไหนครับ


ในฐานข้อมูลมันไม่เป็นภาษาไทยครับ
ถ้าผมต้องการสร้างหน้าดึงข้อมูลออกมาโชว์จะต้องเขียนโค้ดอย่างไรครับ


หน้ากรอกแบบฟร์อม  http://isanthai.com/fromonline/
<html>
<head>
<title>ผู้ใช้งานอินเตอร์เน็ตใช้ค่ายไหน</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<style type="text/css">
<!--
#apDiv1 {
   position:absolute;
   width:171px;
   height:37px;
   z-index:1;
   left: 165px;
   top: 11px;
}
body,td,th {
   font-size: 18px;
   font-family: Tahoma, Geneva, sans-serif;
}
h1,h2,h3,h4,h5,h6 {
   font-family: Tahoma, Geneva, sans-serif;
}
-->
</style>
</head>

<body>
<p>&nbsp;</p>
<center>
 <strong><font size="5"> ผู้ใช้งานอินเตอร์เน็ตใช้เน็ตค่ายไหน</font></strong>
</center>
<center><form action="add.php" method="post">
 <table width="439" border="0" cellspacing="1" cellpadding="3">
   <tr bgcolor="#0099FF">
     <td><font size="2" face="Tahoma, MS Sans Serif"><strong>ชื่อ
       :</strong></font></div></td>
     <td><font size="2" face="Tahoma, MS Sans Serif">
       <input name="Name" type="text" id="Name" size="30" maxlength="30">
       </font></td>
   </tr>
   <tr bgcolor="#0099FF">
     <td>ใช้เน็ตค่ายไหน</td>
     <td><font size="2" face="Tahoma, MS Sans Serif">
       <input name="ISP" type="text" id="ISP" size="30" maxlength="30">
       </font></td>
   </tr>
   <tr bgcolor="#0099FF">
     <td>อายุ
       
       
       
       <td><font size="2" face="Tahoma, MS Sans Serif">
         <input name="Age" type="text" id="Age" size="30" maxlength="30">
       </font></td>
   </tr>
   <tr bgcolor="#0099FF">
     <td>จังหวัด</td>
     <td><font size="2" face="Tahoma, MS Sans Serif">
       <input name="Province" type="text" id="Province" size="30" maxlength="30">
       </font></td>
   </tr>
   <tr bgcolor="#0099FF">
     <td>บ้านนอกหรือในเมือง</td>
     <td><font size="2" face="Tahoma, MS Sans Serif">
       <input name="Country_City" type="text" id="Country_City" size="30" maxlength="30">
     </font></td>
   </tr>
   <tr bgcolor="#0099FF">
     <td>เหตุผลที่ใช้</td>
     <td><font size="2" face="Tahoma, MS Sans Serif">
       <input name="Why" type="text" id="Why" size="30" maxlength="30">
       </font></td>
   </tr>
   <tr bgcolor="#0099FF">
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#0099FF">
     <td>&nbsp;</td>
     <td><input type="submit" name="Submit" value=" เพิ่มลงฐานข้อมูล">
     <label>
       <input type="reset" name="Reset" id="button" value="ลบข้อมูล">
     </label></td>
   </tr>
 </table>
</form></center>
</body>
</html>


หน้า  add.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$hostname = "localhost";
$username = "-----มีแล้ว-------";
$password = "-----มีแล้ว-------";
$dbname = "-----มีแล้ว---------";

$conn = mysql_connect( $hostname, $username, $password );
if ( ! $conn )
   die ( "ไม่สามารถติดต่อกับ MySQL  ได้" );
   
mysql_select_db ( $dbname, $conn )
   or die ( "ไม่สามารถเลือกฐาน ข้อมูล isanthai_fon ได้" );
           
$SQLTXT = "INSERT INTO NET ( Name,ISP,Age,Province,Country_City,Why ) ";
$SQLTXT .= "VALUES ( '$Name','$ISP','$Age','$Province','$Country_City','$Why' ) ";
mysql_query( $SQLTXT, $conn )
   or die ( "INSERT มีข้อผิดพลาดเกิดขึ้น" ) . mysql_error();
mysql_close ( $conn );
?>
<p align="center"& amp; gt;<font size="2" face="Tahoma, MS Sans& nbsp;Serif"><strong>เพิ่มข้อมูลลงฐานข้อมูล แล้ว</strong></font></p>
<p align="center"& gt;<font size="2" face="Tahoma, MS Sans& nbsp;Serif"><a href="code14_022.php">คลิกที่นี่เพื่อไป ดู</a></font></p>
</body>
</html>


ขอบคุณมากนะครับ

EThaiZone

บรรทัด
$SQLTXT .= "VALUES ( '$Name','$ISP','$Age','$Province','$Country_City','$Why' ) ";

แก้เป็น
$SQLTXT .= "VALUES ( '".$_POST['Name']."','".$_POST['ISP']."','".$_POST['Age']."','".$_POST['Province']."','".$_POST['Country_City']."','".$_POST['Why']."' ) ";

อันนี้แก้เรื่องข้อผิดพลาด เป็นปัญหาเรื่อง register global (ค้น google ดูได้นะ)

ส่วนอีกอันที่น่าแก้คือ

    or die ( "INSERT มีข้อผิดพลาดเกิดขึ้น" ) . mysql_error();

แก้เป็น

    or die ( "INSERT มีข้อผิดพลาดเกิดขึ้น" ) . mysql_error($conn);


เวลามี error อีกมันจะแสดงสาเหตุที่เกิด error ด้วย

aek26

<?php
$hostname 
"localhost";
$username "-----มีแล้ว-------";
$password "-----มีแล้ว-------";
$dbname "-----มีแล้ว---------";

[
color=red]$Name trim($_POST['Name']);
$ISP trim($_POST['ISP']);
$Age trim($_POST['Province']);
$Country_City trim($_POST['Country_City']);
$Why trim($_POST['Why']);

$Name addslashes($Name);
$ISP addslashes($ISP);
$Age addslashes($Age);
$Country_City addslashes($Country_City);
$Why addslashes($Why);[/color]

$conn mysql_connect$hostname$username$password );
if ( ! 
$conn )


file add.php ยังไงมีตัวรับค่ากับเติม addslashes  ถ้าติดต่่อ db ได้ไม่หน้ามีปัญหา  ลองดูครับผม :wanwan019:
เพราะแสวงหา มิใช่เพราะรอคอย เพราะเชี่ยวชาญ มิใช่เพราะโอกาส เพราะสามารถ มิใช่เพราะโชคช่วย ดังนี้แล้ว "ลิขิตฟ้าหรือจะสู้มานะตน"
[direct=http://www.108keychain.com]พวงกุญแจ[/direct]
[direct=http://www.xn--12cgajg3a0jxbsn4esb4cb5c7i.com]พวงกุญแจอะคริลิค[/direct]
[direct=http://www.xn--12clet6fwa1b4j8c5a0d.com]พวงกุญแจไม้[/direct]
[direct=http://www.facebook.com/108keychain]ของชำร่วย[/direct]

chamegonrak

ใส่ชื่อ table หมดหรือยังครับ ลองเช็คตัวเล็กตัวใหญ่ดูนะครับ ว่าเหมือนกันหรือเปล่า ส่วนที่เหลือก็ไม่ค่อยรู้เรื่องแหละ  :P

ab2f6

อ้างถึงจาก: EThaiZone ใน 12 มิถุนายน 2010, 00:26:57
บรรทัด
$SQLTXT .= "VALUES ( '$Name','$ISP','$Age','$Province','$Country_City','$Why' ) ";

แก้เป็น
$SQLTXT .= "VALUES ( '".$_POST['Name']."','".$_POST['ISP']."','".$_POST['Age']."','".$_POST['Province']."','".$_POST['Country_City']."','".$_POST['Why']."' ) ";

อันนี้แก้เรื่องข้อผิดพลาด เป็นปัญหาเรื่อง register global (ค้น google ดูได้นะ)

ส่วนอีกอันที่น่าแก้คือ

    or die ( "INSERT มีข้อผิดพลาดเกิดขึ้น" ) . mysql_error();

แก้เป็น

    or die ( "INSERT มีข้อผิดพลาดเกิดขึ้น" ) . mysql_error($conn);


เวลามี error อีกมันจะแสดงสาเหตุที่เกิด error ด้วย

ขอบคุณมากครับพี่  ได้แล้วครับ  +1 ครับ


ab2f6

อ้างถึงจาก: aek26 ใน 12 มิถุนายน 2010, 00:28:55
<?php
$hostname 
"localhost";
$username "-----มีแล้ว-------";
$password "-----มีแล้ว-------";
$dbname "-----มีแล้ว---------";

[
color=red]$Name trim($_POST['Name']);
$ISP trim($_POST['ISP']);
$Age trim($_POST['Province']);
$Country_City trim($_POST['Country_City']);
$Why trim($_POST['Why']);

$Name addslashes($Name);
$ISP addslashes($ISP);
$Age addslashes($Age);
$Country_City addslashes($Country_City);
$Why addslashes($Why);[/color]

$conn mysql_connect$hostname$username$password );
if ( ! 
$conn )


file add.php ยังไงมีตัวรับค่ากับเติม addslashes  ถ้าติดต่่อ db ได้ไม่หน้ามีปัญหา  ลองดูครับผม :wanwan019:

ขอบคุณพี่ มากครับผม +1

ab2f6

อ้างถึงจาก: chamegonrak ใน 12 มิถุนายน 2010, 00:33:22
ใส่ชื่อ table หมดหรือยังครับ ลองเช็คตัวเล็กตัวใหญ่ดูนะครับ ว่าเหมือนกันหรือเปล่า ส่วนที่เหลือก็ไม่ค่อยรู้เรื่องแหละ  :P


ได้แล้วครับ  ขอบคุณมากครับพี่

+1

ab2f6

ในฐานข้อมูลมันไม่เป็นภาษาไทยครับ
ถ้าผม ต้องการสร้างหน้าดึงข้อมูลออกมาโชว์จะต้องเขียนโค้ดอย่างไรครับ



ขอบคุณครับ

EThaiZone

ดูใน phpmyadmin แล้วไม่เป็นภาษาไทย
แปลว่าคงเป็น latin1 หรือ tis620 (จริงๆ ก็แนวเดียวกัน ascii)

ก็เขียนดึงมาแสดงตามปกติแหละครับ
mysql_query สั่ง select
แล้วค่อย mysql_fetch_array ดึงวนลูปออกมาแสดงผลเอา

แล้วถ้าผลยังไม่ออกมาเป็นภาษาไทย ค่อยกำหนดพวก set names อะไรไปอีกทีหนึ่ง
ลองค้น set names ในบอร์ด จะมีคุยเรื่อง mysql กับการแสดงผลเยอะมาก  :wanwan035:

ab2f6

อ้างถึงจาก: EThaiZone ใน 12 มิถุนายน 2010, 01:17:25
ดูใน phpmyadmin แล้วไม่เป็นภาษาไทย
แปลว่าคงเป็น latin1 หรือ tis620 (จริงๆ ก็แนวเดียวกัน ascii)

ก็เขียนดึงมาแสดงตามปกติแหละครับ
mysql_query สั่ง select
แล้วค่อย mysql_fetch_array ดึงวนลูปออกมาแสดงผลเอา

แล้วถ้าผลยังไม่ออกมาเป็นภาษาไทย ค่อยกำหนดพวก set names อะไรไปอีกทีหนึ่ง
ลองค้น set names ในบอร์ด จะมีคุยเรื่อง mysql กับการแสดงผลเยอะมาก  :wanwan035:


เดี๋ยวผมจะลองทำดูครับ
ผมเซตเป็น utf-8 ครับ
แต่ก็เป็นเหมือนเดิม
แล้วก็ลองเซตเป็น  tis620  ก็เป็นอีกครับ

ขอบคุณมากครับ
+1

EThaiZone

จะทำพวกเกี่ยวกับ mysql ต้องระวังสองจุดครับ

จุดแรกคือ php ต่อไปหา mysql
ต้องใช้คำสั่งคุมพวก mysql_query สั้ง set names
set character collate (มั้งแนวๆ นี้ ผมลืม  :P)
คือคุมเรื่องการส่งข้อมูลออกมาจาก MYSQL ให้มันออกมาถูกต้อง

อีกจุดคือ <meta> ของ html ก็ต้องตรงกันด้วย
ถ้า mysql ออกมาเปน utf8 ก็อย่าลืมว่า <meta> ก็ต้อง utf8 ด้วย

แต่ก็มีอีกจุดที่ควรระวัง (ในกรณีมีค่า static ที่จะยัดเข้า mysql)
คือไฟล์ php นั้นก็ต้องเซฟ encoding ให้ถูกด้วย
ถ้าเป็น utf8 ก็เซฟให้เป็น utf8
ถ้าเป็น tis620 หรือ LATIN1 ก็เซฟให้เป็น ASCII

:P