|
|
|
รบกวนสอบถามคะ ต้องการ update checkbox คะ มีวิธีแนะนำยังไงบ้างคะ |
|
|
|
|
|
|
|
แง่ม ๆ ไม่มีใครสนเลย TT
|
|
|
|
|
Date :
2012-11-15 08:46:22 |
By :
noona |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้ามันมีหลาย column จะไม่สามารถใช้แบบ array ที่เป็น [] ได้ครับ จะต้องใช้ chknews1 ... chknews2... chknews3 ...
ดูตัวอย่างนี้ครับ
Go to : PHP MySQL Multiple Rows Edit/Update Record
|
|
|
|
|
Date :
2012-11-15 09:06:10 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าสมัครสมาชิกแล้วจะกลับมาช่วยตอบครับ
|
|
|
|
|
Date :
2012-11-15 12:01:52 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก่อนอื่นขอเปลี่ยนโครงสร้างฐานข้อมูลสักนิดน่ะครับ
รันคำสั่งนี้ที่ phpmyadmin
alter table news_member add unique(member_id,type_id)
*** แต่ถ้าในตารางข้อมูล มีข้อมูลที่ซ้ำกันอยู่อาจเกิด error ได้ครับ ถ้ามี error ให้ช่วยรบข้อมูลในตารางทั้งหมดก่อนด้วยคำสั่ง
truncate news_member
|
|
|
|
|
Date :
2012-11-16 15:24:08 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เรียบร้อยคะ แต่มันขึ้นข้อความนี้มา
"PRIMARY and INDEX keys should not both be set for column `member_id`"
|
|
|
|
|
Date :
2012-11-16 21:58:41 |
By :
Butterney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ให้ไปเอา index key ที่ใช้อยู่กับฟิวด์ member_id ออกครับ
จับภาพหน้าจอโครงสร้างตาราง news_member มาดูหน่อยครับ
|
ประวัติการแก้ไข 2012-11-16 22:05:38
|
|
|
|
Date :
2012-11-16 22:03:30 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2012-11-16 22:13:16 |
By :
Butterney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OK งั้นเอา unique ที่เพิ่งใส่เข้าไป ออกดีกว่าครับ
alter table news_member drop unique key(member_id)
หรือกด เครื่องหมาย กากบาท(ลบ) ในบรรทัด member_id unique 10 X
|
ประวัติการแก้ไข 2012-11-16 22:27:08
|
|
|
|
Date :
2012-11-16 22:18:26 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ไขโค้ดนิดหน่อย เติม value='x' ใน checkbox
<?
mysql_connect("localhost","root","root");
mysql_select_db("newsextraction");
$strSQL = "SELECT * FROM news_member WHERE member_id = '".$_SESSION['member_id']."' ";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
$arrayType[] = $objResult ["type_id"];
}
<input type='checkbox' name='chknews[]' value='1' <?php if( in_array( '1',$arrayType ) ){ echo "CHECKED"; } ?>> ข่าวที่น่าสนใจ </input>
<input type='checkbox' name='chknews[]' value='2' <?php if( in_array( '2',$arrayType ) ){ echo "CHECKED"; } ?>> ข่าวการศึกษา </input>
<input type='checkbox' name='chknews[]' value='3' <?php if( in_array( '3',$arrayType ) ){ echo "CHECKED"; } ?>> ข่าวประชุมสัมมนา </input>
<input type='checkbox' name='chknews[]' value='4' <?php if( in_array( '4',$arrayType ) ){ echo "CHECKED"; } ?>> ข่าวอบรม </input>
<input type='checkbox' name='chknews[]' value='5' <?php if( in_array( '5',$arrayType ) ){ echo "CHECKED"; } ?>> ข่าวประกวดราคา</input>
<input type="submit" name="Submit" value="Save">
?>
มีโค้ดสำหรับกรบันทึกหรือยังครับ
|
|
|
|
|
Date :
2012-11-16 22:23:34 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไม่มีโค้ด สำหรับบันทึกคะ คือสามารถแก้ไขและบันทึกได้เลยหรอคะ ทั้งที่เป็น primarykey ทั้ง 2 ตัว
|
|
|
|
|
Date :
2012-11-16 22:28:22 |
By :
Butterney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จริงๆแล้วเขาจะเรียกว่า candidate key มันหมายถึงกลุ่มของ field หรือ column ที่เป็น primary key(ไม่ซ้ำกันนั่นเอง)
ไม่เป็นไรครับเราใช้แบบนี้ได้เลย
|
|
|
|
|
Date :
2012-11-16 22:41:45 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค้ดการบันทึกจะอยู่ในไฟล์เดียวกันหรือเปล่าครับ
|
|
|
|
|
Date :
2012-11-16 22:43:19 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
mysql_connect("localhost","root","root");
mysql_select_db("newsextraction");
if(isset($_POST["SubmitForm"]) && isset($_POST["memid"]) ){
$sql = "delete from news_member where member_id='{$_POST["memid"]}' ";
$res = mysql_query($sql) or die(mysql_error());
foreach($_POST["chknews"] as $typeid){
$sql = "insert ignore into news_member(member_id,type_id) values('{$_POST["memid"]}' , '$typeid')";
$res = mysql_query($sql) or die(mysql_error());
}
}
$strSQL = "SELECT * FROM news_member WHERE member_id = '".$_SESSION['member_id']."' ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
while($objResult = mysql_fetch_array($objQuery))
{
$arrayType[] = $objResult ["type_id"];
}
?>
<form method="post" >
<input type="hidden" name="memid" value="<?php echo $_SESSION['member_id']; ?>" />
<input type='checkbox' name='chknews[]' value='1' <?php if( in_array( '1',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวที่น่าสนใจ
<input type='checkbox' name='chknews[]' value='2' <?php if( in_array( '2',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวการศึกษา
<input type='checkbox' name='chknews[]' value='3' <?php if( in_array( '3',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวประชุมสัมมนา
<input type='checkbox' name='chknews[]' value='4' <?php if( in_array( '4',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวอบรม
<input type='checkbox' name='chknews[]' value='5' <?php if( in_array( '5',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวประกวดราคา
<input type="submit" name="SubmitForm" value="Save">
</form>
|
ประวัติการแก้ไข 2012-11-17 13:46:14
|
|
|
|
Date :
2012-11-17 11:14:47 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ sakuraei คะ นี่คือโค้ดสำหรับบันทึกใช่มั้ยคะ แล้วฟอร์มข้องล่าง คือของหนูอยู่คนละหน้าอ่ะคะ
|
|
|
|
|
Date :
2012-11-17 12:09:24 |
By :
Butterney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยัง update ไม่ได้เลยคะ
|
|
|
|
|
Date :
2012-11-17 12:19:59 |
By :
Butterney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code บันทึกและแสดงอยู่หน้าเดียวกันครับ
|
|
|
|
|
Date :
2012-11-17 13:16:23 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้านี้คือหน้า edit คะ เป็นการดึงข้อมูลการดาต้าเบสที่เคยเลือกประเภทข่าวไว้แล้ว
mysql_connect("localhost","root","root");
mysql_select_db("newsextraction");
$strSQL = "SELECT * FROM news_member WHERE member_id = '".$_SESSION['member_id']."' ";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery)){
$arrayType[] = $objResult ["type_id"];
}
<input type='checkbox' name='chknews[]' value='1' <?php if( in_array( '1',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวที่น่าสนใจ
<input type='checkbox' name='chknews[]' value='2' <?php if( in_array( '2',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวการศึกษา
<input type='checkbox' name='chknews[]' value='3' <?php if( in_array( '3',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวประชุมสัมมนา
<input type='checkbox' name='chknews[]' value='4' <?php if( in_array( '4',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวอบรม
<input type='checkbox' name='chknews[]' value='5' <?php if( in_array( '5',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวประกวดราคา
<input type="submit" name="SubmitForm" value="Save">
และโค้ดที่ต้องการให้มัน update อยากให้มันอยู่คนละหน้าอะคะ โดยที่ update ข้อมูลในดาต้าเบส โดยไม่ต้องโชว์ form แล้ว
|
|
|
|
|
Date :
2012-11-17 13:44:59 |
By :
Butterney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้า edit
<?
mysql_connect("localhost","root","root");
mysql_select_db("newsextraction");
$strSQL = "SELECT * FROM news_member WHERE member_id = '".$_SESSION['member_id']."' ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
while($objResult = mysql_fetch_array($objQuery))
{
$arrayType[] = $objResult ["type_id"];
}
?>
<form method="post" action="update_news_member.php">
<input type="hidden" name="memid" value="<?php echo $_SESSION['member_id']; ?>" />
<input type='checkbox' name='chknews[]' value='1' <?php if( in_array( '1',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวที่น่าสนใจ
<input type='checkbox' name='chknews[]' value='2' <?php if( in_array( '2',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวการศึกษา
<input type='checkbox' name='chknews[]' value='3' <?php if( in_array( '3',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวประชุมสัมมนา
<input type='checkbox' name='chknews[]' value='4' <?php if( in_array( '4',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวอบรม
<input type='checkbox' name='chknews[]' value='5' <?php if( in_array( '5',$arrayType ) ){ echo "CHECKED"; } ?> /> ข่าวประกวดราคา
<input type="submit" name="SubmitForm" value="Save">
</form>
หน้า update
<?
// ชื่อไฟล์ update_news_member.php
mysql_connect("localhost","root","root");
mysql_select_db("newsextraction");
if(isset($_POST["SubmitForm"]) && isset($_POST["memid"]) ){
$sql = "delete from news_member where member_id='{$_POST["memid"]}' ";
$res = mysql_query($sql) or die(mysql_error());
foreach($_POST["chknews"] as $typeid){
$sql = "insert ignore into news_member(member_id,type_id) values('{$_POST["memid"]}' , '$typeid')";
$res = mysql_query($sql) or die(mysql_error());
}
}
?>
|
|
|
|
|
Date :
2012-11-17 13:49:20 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แง่ม ๆ ยังไม่ update เลยคะ T.T
|
|
|
|
|
Date :
2012-11-17 14:05:50 |
By :
Butterney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ว้าว ได้แล้วคะ ขอบคุณมากเลยคะ
|
|
|
|
|
Date :
2012-11-17 14:15:13 |
By :
Butterney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2012-11-17 14:45:28 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|