เกี่ยวกับการเก็บ session ในการกรอกข้อมูลของ user ว่าถ้่าเคยกรอกไปแล้วห้ามกรอกซ้ำ
ทำไม่เก็บไว้ใน Databaseหละครับ ทำเป็นPrimary Keyอะครับ ไม่ซ้ำ
ผมก้อไม่เก่งนะครับอิอิ
Date :
2011-08-17 15:14:20
By :
sambrazil
1 ทำformก่อนเลยครับ
2. รับค่ามาแล้วเช็คว่ามีในdatabaseใหม
3.ถ้าไม่มีก้อเก็บลงdatabase ประมาณนี้ครับ
Date :
2011-08-17 15:23:56
By :
sambrazil
อ่อ คะ ก็เก็บลงฐานข้อมูลเหมือนกันคะ
มีidเป็นPKคะ มันจะรันไปเรื่อยๆตามจำนวนข้อมูลอะคะ
แล้วถ้าตั้งชื่อผู้ใช้ให้เป็นแบบ unique จะช่วยได้หรือเปล่าค่ะ
ขอบคุณคะ
Date :
2011-08-17 15:24:10
By :
inoi
input.php
Code (PHP)
<?php
echo" <form>";
echo"ชื่อ<input type = 'text' name ='name'>";
echo"<br>";
echo"ที่อยู่<input type = 'text' name ='address'>";
echo"<br>";
echo"เบอร์โทรศัพท์<input type = 'text' name ='telephone'>";
echo"<br>";
echo "<input type = 'submit' value='OK'>";
echo" </form>";
?>
Date :
2011-08-17 15:29:58
By :
sambrazil
uniq ก้อไม่ซ้ำ
ผมไม่เก่งนะอิอิ
ทางที่ดีควรทำเงื่อนไข check ข้อมูลจากDatabaseด้วยอะ
Date :
2011-08-17 15:33:32
By :
sambrazil
อันบนเขียนผิดอิอิ
input.php
Code (PHP)
<?php
echo" <form action ='checkdata.php' method='post'>";
echo"ชื่อ<input type = 'text' name ='name'>";
echo"<br>";
echo"ที่อยู่<input type = 'text' name ='address'>";
echo"<br>";
echo"เบอร์โทรศัพท์<input type = 'text' name ='telephone'>";
echo"<br>";
echo "<input type = 'submit' value='OK'>";
echo" </form>";
Date :
2011-08-17 15:35:29
By :
sambrazil
อ่อ คะจะลองเอาไปปรับใช้ดูนะคะ
ขอบคุณมากคะ
Date :
2011-08-17 15:37:53
By :
inoi
แล้วพอกด OKมันจะมาที่
checkdata.php
Code (PHP)
<?
//ติดต่อ databaseเขียนเองอิอิขี้เกียด
$name = $_POST['name'];
$address = $_POST['address'];
$telephone = $_POST['telephone'];
$sql= " select * from customer";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) //วน loopเอาค่าในdatabase เทียบ
{
if($row['name']==$name)
{
echo"<script>
alert('$name ถูกใช้แล้ว กรุณากรอกใหม่')
window.location='input.php';//ส่วนนี้อยากให้มันไปหน้าไหนก็ใส่ พาทไฟล์เอา
</script>";
}
else if($row['address']==$address)
{
echo"<script>
alert('$address ถูกใช้แล้ว กรุณากรอกใหม่')
window.location='input.php';//ส่วนนี้อยากให้มันไปหน้าไหนก็ใส่ พาทไฟล์เอา
</script>";
}
else if($row['telephone']==$telephone)
{
echo"<script>
alert('$telephone ถูกใช้แล้ว กรุณากรอกใหม่')
window.location='input.php';//ส่วนนี้อยากให้มันไปหน้าไหนก็ใส่ พาทไฟล์เอา
</script>";
}
}
echo"<script>
ถูกแล้วให้มันอีกอีกหน้าเพื่อ insert หรือจะinsertหน้านี้ก็ได้
window.location='insert.php';//ส่วนนี้อยากให้มันไปหน้าไหนก็ใส่ พาทไฟล์เอา
</script>";
}
mysql_close();
?>
Date :
2011-08-17 16:07:15
By :
sambrazil
อ่อ คะ ถ้าอย่างงั้นก็ต้องเช็คทั้งtableเลยใช่ไหมคะ
เพื่อกันการซ้ำ
ขอเพิ่มเติมและขอแก้ไขคะ
แล้วถ้าให้สามารถกรอกข้อมูลซ้ำได้
เพียงแต่ว่าไม่ให้สามารถกรอกได้ในขณะนั้น
คือคนหนึ่งจะกรอกกี่ครั้งก็ได้
แต่ถ้ากรอกไปแล้ว อยากกรอกใหม่ให้ทำการปิดbrowserก่อน
แล้วค่อยกลับมากรอกใหม่ แบบนี้อะคะ
พอจะมีวิธีไหมคะ
รบกวนด้วยคะ ขอบคุณคะ
Date :
2011-08-17 16:13:49
By :
inoi
คือว่ามีหน้า กรอกหน้าเดียวหรอครับ
งง ครับไม่เคลียร์
Date :
2011-08-17 16:32:23
By :
sambrazil
ปุ่ม Close ปิด Window Browser
<input name="btnButton" type="button" value="Close" onClick="JavaScript:window.close();">
ลองประยุกต์ดูครับ ผมไม่ค่อยเก่งเหมือนกัน
Date :
2011-08-17 16:37:59
By :
sambrazil
ถ้าให้ผมเดานะ ตรง checkdata.php
ในเงื่อนไขให้ไส่
echo"<script>
JavaScript:window.close()
<script>";
ผมเดาเอานะไม่ได้ลองเขียนรอผู้รู้มาตอบอีกที
Date :
2011-08-17 16:41:20
By :
sambrazil
อ่อ คะ มีหน้าเดียวคะ
คือคนๆนึงสามารถกรอกข้อมูลได้หลายครั้งคะ
ก็เลยไม่ต้องตรวจสอบจากฐานข้อมูล
แต่ว่าไม่อยากให้ผู้ใช้ กรอกแบบหลายๆครั้งติดกันเกินไปคะ
ก็เลยจะใช่วิธีเก็บsessionแทนอะคะ
คือว่าถ้าเกิดว่าเปิดหน้าbrowserนั้นอยู่
sessionของผู้ใช้คนนั้นก็จะยังเก็บค่าอยู่
แต่ถ้าผู้ใช้คนนั้น ปิดหน้านั้นไปsessionก็จะหายไปด้วย
ประมาณนี้อะคะ ไม่แน่ใจว่าถูก100%ไหม
ขอบคุณมากๆคะ สำหรับคำแนะนำ
Date :
2011-08-17 16:47:04
By :
inoi
ถ้าปิดไปมันหายแน่ครับSESSION
ถ้าเก็บแบบCOOKIEปิดไงก้อไม่หาย
Date :
2011-08-17 16:50:08
By :
sambrazil
ต้องคิดก่อนครับว่าให้กรอกห้ามเกินกี่ที
Date :
2011-08-17 16:51:13
By :
sambrazil
ไม่จำกัดคะ แต่อยากกรอกแค่ครั้งเดียวในการเปิดbrowser หนึ่งครั้งคะ
Date :
2011-08-17 16:57:17
By :
inoi
รอพี่วินมาตอบอิ
Date :
2011-08-17 16:58:53
By :
sambrazil
ตัวอย่างการ Check ก่อนการ Insert ครับ
Code (PHP)
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM customer WHERE CustomerID = '".$_POST["txtCustomerID"]."' ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
if($objResult)
{
echo "CustomerID already exist.";
}
else
{
$strSQL = "";
$strSQL = "INSERT INTO customer ";
$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["txtCustomerID"]."','".$_POST["txtName"]."','".$_POST["txtEmail"]."' ";
$strSQL .=",'".$_POST["txtCountryCode"]."','".$_POST["txtBudget"]."','".$_POST["txtUsed"]."') ";
$objQuery = mysql_query($strSQL);
if($objQuery)
{
echo "Save Done.";
}
else
{
echo "Error Save [".$strSQL."]";
}
}
mysql_close($objConnect);
?>
กรณีเช็คหลายตัวก็สามรถใช้ OR ได้ครับ เช่น
$strSQL = "SELECT * FROM customer WHERE CustomerID = '".$_POST["txtCustomerID"]."' OR Email = '".$_POST["txtEmail"]."' ";
Go to : PHP MySQL Check Already Exists Add/Insert Record
Date :
2011-08-17 17:19:23
By :
webmaster
อ่อคะ แล้วถ้าจะเก็บsession
จะมีตัวอย่างโค้ดไหมคะ
ตอนนี่ลองเขียนดูแล้ว มันยังไม่ออกตามที่ต้องการเลยอะคะ
ขอบคุณมากๆคะ
Date :
2011-08-17 17:30:54
By :
inoi
<?
session_start(); //เ ปิดการทำงาน
$_SESSION['ชื่อsessionr'];
$_SESSION['user'] = ค่าที่ต้องกาีรเก็บ;
?>
Date :
2011-08-17 17:38:00
By :
sambrazil
งงจะเก็บsessionไปทำไมครับ งงจังอิอิ
Date :
2011-08-17 17:48:28
By :
sambrazil
ค่ามันลงไปในTableแล้วนี้ งงจังเพื่อๆไรอิอิ
Date :
2011-08-17 17:56:41
By :
sambrazil
Load balance : Server 03