ผมตั้งเงื่อนไขถ้าค่าว่างให้เป็น F แต่ทำไมกลับไม่เป็น F ครับ
ถ้าข้อมูลเข้าไปมีค่าว่างหรือเว้นวรรค ให้ข้อมูลนั้นมีค่าเท่ากับ 'F' แต่ถ้ามีค่าให้เท่ากับ 'T' แต่ทำไมมันกลับเข้าแต่ 'T' ครับ
Code (PHP)
if($_POST['select_another']=="")
{
$sum = 'F';
}
else
{
$sum = 'T';
}
$strSQL = "SELECT * FROM another";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
if(is_array($_POST['select_another']) and count($_POST['select_another'])>0)
{
$strSQL ="INSERT INTO another ";
$strSQL .="(another_name,busi_no,bg_no,ser_no,Created,CreatedBy,CreatedTime,Enable)";
$strSQL .="VALUES ";
$values = array();
foreach($_POST['select_another'] as $select_another)
{
array_push($values, "('".$select_another."','".$_POST["select_busi"]."' ,'".$_POST["select_bg"]."','".$_POST["select_service"]."','".$_POST["text_user_create"]."', '".$_POST["text_date_create"]."','".$_POST["text_time_create"]."','".$sum."')");
}
$strSQL .= implode(", ", $values);
}
$objQuery = mssql_query($strSQL);
Tag : PHP, Ms SQL Server 2008
Date :
2011-09-03 09:12:59
By :
Nos1001
View :
1370
Reply :
25
Code (PHP)
if(trim($_POST['select_another'])=="")
ถ้าไม่เข้าเงื่อนไขแสดงว่ามันมีค่า ครับ
Date :
2011-09-03 09:26:47
By :
webmaster
ยังเข้าเป็น T อยู่เลยครับ ทั้งที่ไม่มีข้อความ
Date :
2011-09-03 10:18:08
By :
Nos1001
ลอง
echo $_POST['select_another'];
ไว้บน
if($_POST['select_another']=="")
ดูว่ามีค่ามาหรือเปล่า ผมว่าเงื่อนไขถูกแล้วนะ
หรือไม่ก็แก้เป็น
if(trim($_POST['select_another']==""))
ลองดูครับ
Date :
2011-09-03 10:25:29
By :
adaaugusta
ลอง echo แล้วครับ โผล่ว่า Array แต่ในฐานข้อมูลเป็นค่าว่างนะครับ
ส่วน trim ลองแล้วไม่เป็น F ครับ
Date :
2011-09-03 10:41:20
By :
Nos1001
แล้วผมก็ลอง empty ปรากฎว่า F หมดเลยครับ รับค่าจาก listmenu แบบ multiple
Date :
2011-09-03 14:03:22
By :
Nos1001
อ้าว แสดงว่าโดนส่งมาเป็นอาเรย์น่ะสิครับ
ต้อง ดึงค่าในอาเรย์ออกมาก่อนถึงจะ เช็คได้
ลอง print_r($_POST['select_another']);
ดูครับว่ามีอาเรย์อะไรบ้าง
Date :
2011-09-03 14:06:54
By :
adaaugusta
Array ( [0] => [1] => benzNK [2] => Toyota Sure ) ออกมาฉะนี้ครับคุณพี่กะล่อน
Date :
2011-09-03 14:15:43
By :
Nos1001
Help me Plzzzz---->
Date :
2011-09-03 17:12:38
By :
Nos1001
ถ้า input มันเป็น array คุณต้องเอามาวน foreach ก่อนนะครับ
ตัวอย่าง
Code (PHP)
if ( is_array($_POST['select_another']) ) {
foreach ( $_POST['select_another'] as $key => $item ) {
echo $key . " = " . $item . "<br />";
}
}
ลองเอาไปปรับใช้ดูนะครับคงไม่ยากแล้ว
Date :
2011-09-03 17:37:34
By :
mr.v
ค่าว่าง และค่าเว้นวรรค ยังเข้าเป็น T อยู่เลยครับ
0 =
1 =
2 = เก้าอี้
3 = เก้าอี้
4 = ชั้นวาง
5 = ชั้นวาง
6 = โต๊ะ
7 = โต๊ะ
Array ( [0] => [1] => [2] => เก้าอี้ [3] => เก้าอี้ [4] => ชั้นวาง [5] => ชั้นวาง [6] => โต๊ะ [7] => โต๊ะ )
Code (PHP)
if ( is_array($_POST['select_another']) ) {
foreach ( $_POST['select_another'] as $key => $item ) {
echo $key . " = " . $item . "<br />";
}
}
print_r($_POST['select_another']);
if($key=="")
{
$sum = 'F';
}
else
{
$sum = 'T';
}
หรือ if(trim($key)=="") ก็ลองแล้วครับ
ประวัติการแก้ไข 2011-09-03 17:55:31
Date :
2011-09-03 17:52:46
By :
Nos1001
ทำไมคุณไม่เอาโค้ดของคุณไว้ใน foreach ละครับ
เข้าใจการโพสท์แบบ array ป่าวคับเนี่ย
ถ้ามันอยู่นอก foreach มันก็เหมือนเก่าน่ะสิครับ
Date :
2011-09-03 18:03:20
By :
mr.v
เข้า T อยู่เลยครับสำหรับข้อมูลที่ว่าง และเว้นวรรค เขียนประมาณนี้เปล่าครับ
Code (PHP)
if ( is_array($_POST['select_another']) ) {
foreach ( $_POST['select_another'] as $key => $item ) {
echo $key . " = " . $item . "<br />";
if($key=="") // if(trim($key)=="")
{
$sum = 'F';
}
else
{
$sum = 'T';
}
}
}
Date :
2011-09-03 18:11:31
By :
Nos1001
ลองดูโค้ดนี้ใหม่นะครับ
Code (PHP)
if ( is_array($_POST['select_another']) ) {
foreach ( $_POST['select_another'] as $key => $item ) {
echo $key . " = " . $item . "<br />";
}
}
โค้ดเดิมแหละ ลองเอาไปรันใหม่ แล้วกลับมาอ่าน
ค่าที่ echo ออกมาคือ ตัวแปร $key = ตัวแปร $item <br />
ที่หน้าเว็บจะแสดงเป็น ตัวเลข = ค่าที่ post array ส่งมา
ทีนี้พอจะนึกออกยังครับว่าค่าไหนที่ควรเอาไปใช้?
ค่า $item ครับที่ควรเอาไปใช้ เพราะว่า $key มันเป็นตัวเลขใน array (0 =, 1= อะไรนี่แหละครับ)
ทีนี้คุณก็ทำต่อใน foreach นี้เลย
Code (PHP)
if ( is_array($_POST['select_another']) ) {
foreach ( $_POST['select_another'] as $key => $item ) {
if ( $item == null ) {
$sum = "F";
} else {
$sum = "T";
}
// insert อะไรก็ต่อตรงนี้ไปให้จบ เพราะมันทำงานแบบ $_POST array นะครับ getบ่?
}
}
Date :
2011-09-03 18:17:01
By :
mr.v
ข้อมูลมันลูปเข้าเยอะมากเลยครับ แล้ว T F เข้าทีเป็นชุด ไม่ได้เข้าเฉพาะค่า null
Date :
2011-09-03 18:36:11
By :
Nos1001
ผมลอง if($item=="ข้อมูลที่ใส่ไป") มันยังไม่เป็น F เลยครับ เข้า T หมด
Date :
2011-09-03 19:04:48
By :
Nos1001
ถ้ามัน F มันจะ F ทั้งชุด array เหรอครับ อยากให้ F เฉพาะเว้นวรรคกับค่าว่าง
Date :
2011-09-03 20:54:46
By :
Nos1001
ช่วยผมหน่อยครับ เอาง่ายๆนะครับ ถ้าพวกพี่มีข้อมูลที่เป็นชุด Array และเก็บข้อมูลตัวละเรคคอร์ด แต่ถ้าข้อมูลไหนมีค่าว่างหรือเว้นวรรคในเรคคอร์ดนั้นจะมีฟิวด์นึงมีสถานะเป็น 'F' พวกพี่จะทำยังไงครับ พอเขียนโค๊ดให้ได้ไหมครับ (ข้อมูลที่เป็น Array ได้มาจาก listmenu แบบ multiple)
Date :
2011-09-03 21:55:50
By :
Nos1001
โค้ดตัวอย่างล่าสุดที่ผมทำให้ดูผมว่ามันก็น่าจะได้ผลชัดเจน work ทีสุดแล้ว
Date :
2011-09-03 22:24:39
By :
mr.v
ผมลอง echo ค่าใน if ออกมาครับ เห็นไหมครับว่า [1] = เป็นค่าว่าง แต่มันไม่เก็บ F เข้าไป เหมือนมันยก T ไปทั้งชุดเลยอะครับ
0 =
ค่าว่าง 1 =
มีค่า 2 = dpu
มีค่า 3 = spu
มีค่า
Code (PHP)
if ( is_array($_POST['select_another']) )
{
foreach ( $_POST['select_another'] as $key => $item )
{
echo $key . " = " . $item . "<br />";
if($item=="")
{
$sum = 'F';
echo "ค่าว่าง";
}
else
{
$sum = 'T';
echo "มีค่า";
}
}
}
Date :
2011-09-03 22:32:04
By :
Nos1001
Code (PHP)
if ( is_array($_POST['select_another']) ) {
foreach ( $_POST['select_another'] as $key => $item ) {
if ( trim($item) == null ) {
$sum = "F";
} else {
$sum = "T";
}
echo $sum . "<br />";
}
}
ลองโค้ดนี้แล้วเอาผลลัพธ์มาดูครับว่ามันจะออกมาเหมือนกันอีกมั้ย
จากเงื่อนไขผมดูยังไงมันก็ไม่น่าจะเข้าเงื่อนไข else T แบบยกชุดได้อีกแล้วนะครับ
ประวัติการแก้ไข 2011-09-04 00:36:30
Date :
2011-09-04 00:36:10
By :
mr.v
F
F
T
T
ผลลัพธ์ ออกตามจริงครับ แต่เข้า T ยกชุด
Date :
2011-09-04 00:42:13
By :
Nos1001
ถ้าอย่างนั้นก็ต้องตรวจสอบการเขียน insert เข้าฐานข้อมูลแล้วครับ เพราะตรงนี้ยังไงก็ถูกต้องหมดแล้ว เหลือแต่เขียน insert ผิด
Date :
2011-09-04 01:39:06
By :
mr.v
นี่คือการ insert ข้อมูลของผมครับ
Insert
if ( is_array($_POST['select_another']) ) {
foreach ( $_POST['select_another'] as $key => $item ) {
if (trim($item) == null ) {
$sum = "F";
} else {
$sum = "T";
}
echo $sum . "<br />";
}
}
$strSQL = "SELECT * FROM another";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
if(is_array($_POST['select_another']) and count($_POST['select_another'])>0)
{
$strSQL ="INSERT INTO another ";
$strSQL .="(another_name,busi_no,bg_no,ser_no,Created,CreatedBy,CreatedTime,Enable)";
$strSQL .="VALUES ";
$values = array();
foreach($_POST['select_another'] as $select_another)
{
array_push($values, "('".$select_another."','".$_POST["select_busi"]."','".$_POST["select_bg"]."','".$_POST["select_service"]."','".$_POST["text_user_create"]."','".$_POST["text_date_create"]."','".$_POST["text_time_create"]."','".$sum."')");
}
$strSQL .= implode(", ", $values);
}
$objQuery = mssql_query($strSQL);
Date :
2011-09-04 08:52:07
By :
Nos1001
ได้แล้วครับ ส่งคำขอบคุณให้ทุกท่านแล้วนะครับ เหลือแต่ถ้ามีข้อมูลซ้ำ หรือเคยมีข้อมูลนี้แล้วให้มันไม่ต้องเก็บเข้าไป หรือทำให้เป็น F ได้ไหมครับ
Code (PHP)
$strSQL = "SELECT * FROM another";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
if(is_array($_POST['select_another']) and count($_POST['select_another'])>0)
{
$strSQL ="INSERT INTO another ";
$strSQL .="(another_name,busi_no,bg_no,ser_no,Created,CreatedBy,CreatedTime,Enable)";
$strSQL .="VALUES ";
$values = array();
foreach($_POST['select_another'] as $select_another)
{
if (trim($select_another) == null )
{
$sum = "F";
}
else
{
$sum = "T";
}
array_push($values, "('".$select_another."','".$_POST["select_busi"]."','".$_POST["select_bg"]."','".$_POST["select_service"]."','".$_POST["text_user_create"]."','".$_POST["text_date_create"]."','".$_POST["text_time_create"]."','".$sum."')");
}
$strSQL .= implode(", ", $values);
}
$objQuery = mssql_query($strSQL);
ประวัติการแก้ไข 2011-09-04 12:13:43
Date :
2011-09-04 12:12:17
By :
Nos1001
Load balance : Server 03