 |
รบกวนด้วยค่ะ !!! เก็บค่าตัวแปร Array ลง ดาต้าเบสยังไงคะ รับค่าแบบ POST มาคะ |
|
 |
|
|
 |
 |
|
คือทำแบบฟอร์มตามคำสั่งพี่ที่ทำงาน (ยังฝึกงานอยู่ค้า)
ในฐานข้อมูลมี 7 ตารางค้า ต้องทำฟอร์มทั้งเจ็ดเลย
ทีนี้ในแบบฟอร์มของตาราง user ต้องดึง id ของ ตาราง user_group มาคะ
<tr>
<td valign="top">Group :</td>
<td>
<?php
$sql = "select id from user_group";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
?>
<select name='group[]' multiple="multiple" size="8"><!--<option value="">--เลือกได้มากกว่า 1 กรุ๊ป--</option>-->
<?php while($row = mysql_fetch_array($result)){
echo "<option value=".$row["id"].">".$row["id"]."</option>";
}
echo "</select>";
?>
</td>
</tr>
ส่งแบบ POST ไปยัง user1.php
เอาโค้ดแค่ส่วนที่คิดว่าต้องใช้งานมานะคะ
$group = $_POST['group[]'];
for($i=0;$i<count($group);$i++){
echo $group[$i];
echo "<br>";
}
$sql = "insert into user (`type`,company_id,username,`password`,password_encrypt,name,email,date,time,status) values ('$ty','$ci','$username','$password','$password_en','$name','$email','$date','$time','$st')";
echo $sql;
$result = mysql_query($sql);
$count1 = count($group);
$sql2 = "insert into user (`group`) values ('$group[$count1]')";
if(!$result){
die('Failed to insert: '. mysql_error());
exit;
}
มันขึ้นแบบนี้คะ
Notice: Undefined index: group[] in C:\wamp\www\user1.php on line 35
ADMIN
insert into user (`type`,company_id,username,`password`,password_encrypt,name,email,date,time,status) values ('ADMIN','13','zzzzzz','qerd','b773e0021751f36e9b11a2b4a9315ae8','gsgd','cfcvc','2010-11-01','10:50:13','1')
หนูอาจเขียนแล้วงง ขอโทษด้วยนะคะ ขอบคุณนะค้า
Tag : PHP, MySQL
|
|
 |
 |
 |
 |
Date :
2010-11-01 10:59:18 |
By :
อริส |
View :
2458 |
Reply :
10 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แง่ ใส่สีให้แยกง่าย ทำไมมันไม่ขึ้นอะค้า
|
 |
 |
 |
 |
Date :
2010-11-01 11:01:29 |
By :
อริส |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$sql2 ของคุณอยู่นอก loop for นี่ครับ
$count1 = count($group);
$count1 มันบอกจำนวนของ array ไม่ใช่ index array ครับ
เช่น
Code (PHP)
$group = array('a','b','c');
for($i=0;$i<count($group);$i++){
echo $group[$i];
echo "<br>";
}
echo $count1 = count($group);
|
ประวัติการแก้ไข 2010-11-01 11:26:10
 |
 |
 |
 |
Date :
2010-11-01 11:25:05 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ออๆ คะ
คือจริงๆ ช่วงโค้ดตรงนั้นเรามั่วอยู่คะ
แต่ที่สงสัยจริงๆคือ จะรับค่ายังไงจากฟอร์ม เพราะต้องชื่อ name="group[]"
แต่พอ มาประกาศค่าแล้วมันไม่ได้อะคะ ตรงนั้นมากกว่าที่ติด แหะๆ แต่ที่บอกมา ช่วยได้เลยคะ มองโค้ดออกเลย
แต่คิดตรงนี้อ้ะ T^T helpppp
|
 |
 |
 |
 |
Date :
2010-11-01 11:45:03 |
By :
อริส |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$group = $_POST['group']; // รับค่า Post array ไม่ต้องใส่ [] ลงไปเหมือนชื่อ textbox
//นอกนั้นก็เหมือนเดิมกับที่คุณเขียนนั่นแหระ
for($i=0;$i<count($group);$i++){
echo $group[$i];
echo "<br>";
}
|
 |
 |
 |
 |
Date :
2010-11-01 11:55:37 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ว้าววววววววววววววววว ขอบคุณมากๆๆๆๆๆนะค้า ติดตรงนี้แหละ
แหะๆ
แล้วเวลาเราลงบันทึกดาต้าเบท ต้องทำยังไงหรอคะ
$sql = "insert into user (`type`,company_id,`group`,username,`password`,password_encrypt,name,email,date,time,status) values ('$ty','$ci','$group','$username','$password','$password_en','$name','$email','$date','$time','$st')";
echo $sql;
$result = mysql_query($sql);
ตรง นั้น มันบรรทึกเป็นคำว่า 'array' อะคะ
แบบนี้เราต้องมาวนค่าก่อนมั้ยคะ
อย่าถ้ารับค่า 11 12 13 ต้องการให้บันทึกลงเบทเป็น ,11,12,13, ต้องมีลูกน้ำ(,arrayที่รับมา,)ปิดท้าย ทั้งหมดอีกทีคะ
รบกวนสุดๆไปเลย ถามมากไปมั้ยคะเนี่ย แหะๆ
|
 |
 |
 |
 |
Date :
2010-11-01 13:17:38 |
By :
อริส |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$group = $_POST['group']; // รับค่า Post array ไม่ต้องใส่ [] ลงไปเหมือนชื่อ textbox
//นอกนั้นก็เหมือนเดิมกับที่คุณเขียนนั่นแหระ
for($i=0;$i<count($group);$i++){
$sql = "insert into user (`type`,company_id,`group`,username,`password`,password_encrypt,name,email,date,time,status) values ('$ty','$ci','$group[$i]','$username','$password','$password_en','$name','$email','$date','$time','$st')";
//echo $sql;
$result = mysql_query($sql);
//echo $group[$i];
//echo "<br>";
}
ไม่รู้ถูกหรือเปล่า ลองดูละกัน
คุณจะเอาค่า array ลงฐานข้อมูล คุณก็ต้องเอาคำสั่ง sql มาไว้ใน for สิครับ
|
ประวัติการแก้ไข 2010-11-01 13:23:03
 |
 |
 |
 |
Date :
2010-11-01 13:22:26 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คะๆ
ขอบคุณมากนะคะ
ถ้าเอา sql ไปใส่ใน for มันก็จะบันทึกจำนวนครั้งตามค่า count เลยนะคะ
เลยจะวน for แค่เฉพาะลงคอลัม group อย่างเดียวคะ
แต่ยังไงก็ขอบคุณมากนะคะ
|
 |
 |
 |
 |
Date :
2010-11-01 14:12:23 |
By :
อริส |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วจุตประสงค์คุณคืออะไรละคับ
|
 |
 |
 |
 |
Date :
2010-11-01 14:37:15 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เราทำได้แล้วคะ ได้แบบที่ต้องการแล้ว ขอบคุณน้า
|
 |
 |
 |
 |
Date :
2010-11-23 11:38:43 |
By :
อริส |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
for($i=0;$i<=count($array[]);$i++){
$sql="INSERT INTO table_name VALUES('field1','field1','field1','field1')";
mysql_query($sql) or die (mysql_error());
}
|
 |
 |
 |
 |
Date :
2010-11-23 11:52:41 |
By :
wit |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|