下期第4堂-遠端通訊 ~ 使用PHP+MySQL伺服器


上週回顧


DNS

命令字元反查 nslookup

試查台大Web的IP


何謂反查?

難道知道IP可以反查?

試試 23.7.172.76


路由指令

tracert

試試看 女中、台大、mit的路由


節點

路由的節點,連線問題就是從節點去抓




安裝XAMPP


安裝VSCode


第1個PHP程式

<?php
    echo 'hello world';
?>

第2個程式

變數要用 $ 開頭

<?php
for ($i = 0; $i < 3; $i++) {
    echo $i . '<br>';
}
?>

學這麼多語言會搞混嗎?

一定會,就是要訓練你,
當搞混的時候,可以如何處理?


會PHP有何好處?

想一下,這些文字出現在哪裡?


HTTP的GET請求

第3個程式

<?php

if (isset($_GET['username'])) {
	$u = $_GET['username'];  
	echo $u;
}

?>

小測驗

結合2+3個程式,利用網址控制顯示的數字

<?php
 
if (isset($_GET['j'])) {
    $j = $_GET['j'];  
   
    for ($i = 0; $i <= $j; $i++) {
        echo $i . '<br>';
    }
 
}
 
?>

進入資料庫的世界!


連結遠端MySQL資料庫

$host = '59.127.';
$dbuser ='h';
$dbpassword = 'my';
$dbname = 'my2';
$link = mysqli_connect($host,$dbuser,$dbpassword,$dbname);
if($link){
    //mysqli_query($link,'SET NAMES uff8');
    echo "正確連接資料庫";
}
else {
    echo "不正確連接資料庫</br>" . mysqli_connect_error();
}

查詢資料

<?php
// 列出資料
require_once 'db.php';



// 設置一個空陣列來放資料
$datas = array();
// sql語法存在變數中
$sql = "SELECT `id`, `name` , `note` FROM `friend` AS userData WHERE `id`>0 ";

// 用mysqli_query方法執行(sql語法)將結果存在變數中
$result = mysqli_query($link,$sql);



// 如果有資料
if ($result) {
    // mysqli_num_rows方法可以回傳我們結果總共有幾筆資料
    if (mysqli_num_rows($result)>0) {
        // 取得大於0代表有資料
        // while迴圈會根據資料數量,決定跑的次數
        // mysqli_fetch_assoc方法可取得一筆值
        while ($row = mysqli_fetch_assoc($result)) {
            // 每跑一次迴圈就抓一筆值,最後放進data陣列中
            $datas[] = $row;
        }
    }
    // 釋放資料庫查到的記憶體
    mysqli_free_result($result);
}
else {
    echo "{$sql} 語法執行失敗,錯誤訊息: " . mysqli_error($link);
}
// 處理完後印出資料
if(!empty($result)){
    // 如果結果不為空,就利用print_r方法印出資料
    print_r($datas);
}
else {
    // 為空表示沒資料
    echo "查無資料";
}


?>



<h3>foreach列出查詢結果</h3>
<div>
<?php if(!empty($datas)): ?>
<ul>
<!-- 資料 as key(下標) => row(資料的row) -->
<?php foreach ($datas as $key => $row) :?>
<li>
第<?php echo($key +1 ); ?> 筆資料,帳號<?php echo $row['id']; ?>,名字 <?php echo $row['name']; ?>
</li>
<?php endforeach; ?>
</ul>
<?php else:  ?>
查無資料
<?php endif; ?>
</div>
<!-- 代表結束連線 -->
<?php mysqli_close($link); ?>

插入資料

<?php
// 插入資料
require_once 'db.php';
?>

<h3>sql插入結果</h3>
<?php

// sql語法存在變數中
$sql = "INSERT INTO  `friend` (`id`,`name`, `note`) VALUE ('20566','毛毛','恭喜發財') ";

// 用mysqli_query方法執行(sql語法)將結果存在變數中
$result = mysqli_query($link,$sql);

// 如果有異動到資料庫數量(更新資料庫)
if (mysqli_affected_rows($link)>0) {
// 如果有一筆以上代表有更新
// mysqli_insert_id可以抓到第一筆的id
$new_id= mysqli_insert_id ($link);
echo "新增後的id為 {$new_id} ";
}
elseif(mysqli_affected_rows($link)==0) {
    echo "無資料新增";
}
else {
    echo "{$sql} 語法執行失敗,錯誤訊息: " . mysqli_error($link);
}
 mysqli_close($link); 
 ?>

您可能也會喜歡…

發佈留言