iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

HTML、 PHP CRUD 自我學習系列 第 13

第13天 - (配第11天) 修改MySQL資料表內容,配合下拉式選單

  • 分享至 

  • xImage
  •  

今天內容要搭配【第11天的文章】中的【staff_edit.php (裡面含有 INPRUT做修改的那個)】
https://ithelp.ithome.com.tw/articles/10262436

因為如果某資料表有配合外部鍵,那其外部鍵值的修改,就很適合配合下拉式選單
(因為只能選外部鍵已經有的內容)。

下拉式選單的基本語法,也可參考下列網址
https://www.fooish.com/html/select-option-optgroup-tag.html

這次的重點的是 資料庫 UPDATE 的語法、下拉式選單要如何預設成會員原本的等級。
整體程式碼長這樣

<?php
/*儲存修改會員資料*/
if(isset($_POST['staff_edit_btn']))
{
	
	$st_name = $_POST['staff_edit']; //下面 input type="text"標籤 的name值
	$st_role = $_POST['S_ROLE']; //下面 下拉式選單select標籤 的name值
	$st_id =$_POST['ST_ID'];

	$query2="UPDATE staff
			 SET staff_name ='$st_name',
			     staff_role ='$st_role'
			 WHERE staff_id ='$st_id' ";

	$query_run2 = mysqli_query($con,$query2);
	if($query_run2)
	{
		//修改成功則回到上個頁面(或其他指定頁面)
		$_SESSION['status'] =" 會員資料改成功!!!!!!!!!!";
		header('Location: Hello.php');
	}
	else
	{
		//修改失敗則停留在此頁面
		$_SESSION['status'] =" 會員資料修改失敗~~";
		header('Location: staff_edit.php');
	}
}
?>

<body>
<div class="container">
<?php
	$ST_ID = $_GET['ST_EDIT'];
	$query = "SELECT * FROM staff WHERE staff_id='$ST_ID' ";
	$query_run = mysqli_query($con,$query);
?>
<?php
	if(mysqli_num_rows($query_run) > 0)
	{
		foreach($query_run as $row)
		{
			?>
<form method="POST">
				<div class="form-group">
					<!-- 注意下面的 input type="hidden",
                    上面的PHP 要依據這來修改會員名稱 -->
					<input type="hidden" name="ST_ID" value="<?php echo $row['staff_id'];?>">
					
					<label>修改會員名稱:</label>
				    <input type="text" name="staff_edit" 
				    value="<?php echo $row['staff_name'];?>">
				</div>
				
			

<?php
		//下面 $value 是要配合 下拉式選單,預設顯示(echo "selected";) 原本該會員的等級
		//因為是搜尋表staff 所以外部鍵的的欄位是 staff_role (而不是STAFF_ROLE)
		$value =  $row['staff_role']; 
		}
	}
	else
	{
		echo "尚未建立任何會員等級";
	}
?>
	
<!--下拉式選單------------------------------>
	<?php
        //搜尋等級列表(add_role) 中的所有會員等級
		$query9 = "SELECT * FROM add_role";
		$result9 = mysqli_query($con, $query9);
	?>

	<label>修改會員等級 : </label>
	<select  name="S_ROLE" >

        <?php while($row9 = mysqli_fetch_array($result9)):;?>

        	<!--下面 $row9['(資料表(add_role) 的欄位(STAFF_ROLE) )']; ---------->
            <option value="<?php echo $row9['STAFF_ROLE'];?>"  
            	<?PHP 
            		if($value == $row9['STAFF_ROLE']){echo "selected";} 
            	?> 
            >
            	<?php echo $row9['STAFF_ROLE'];?>
            </option>
        <?php endwhile;?>

	</select>

	<button name="staff_edit_btn">儲存修改</button>

</form>
</div>
</body>

今天就先這樣,下次見。


上一篇
第12天 - 用 PHP Session 與 Bootstrap 做警告(提示)
下一篇
第14天 - PHP 簡易登入(1)_HTML的部分
系列文
HTML、 PHP CRUD 自我學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言