iT邦幫忙

1

變數可以echo 但無法存入資料表

<?php
    session_start();
    $teachername="";
    $classname="";
    $classoutline="";

    //if user is not logged in, they cannot access this page
    if(empty($_SESSION['account'])) {
        header('location:../index.php');
    }    

    //connect to the database
    $db =  mysqli_connect('localhost','root','','registration');
    $db->set_charset("utf8");


    if ($db->connect_error){
        die("連接失敗".$mysqli->connect_error);
    }
    else {
        echo "資料庫伺服器連結成功及資料庫開啟成功<br>";
    }

    $teachername = $_POST['teachername'];
    $classname = $_POST['classname'];
    $classoutline = $_POST['classoutline'];


    //get teachers uid
    $result = $db->query("SELECT id from users where account = '".$_SESSION['account']."'");

    while ($row = $result->fetch_assoc()) {
        $uid = $row['id'];
    }

    //get course t_id
    $newresult = $db->query("SELECT tID from teachers where uid = $uid");

    $newrow = $newresult->fetch_assoc();
    if($newrow){
        $t_id = $newrow['tID'];
    }


    // teachers and course insert to db-table

    //teachers
    $sql = "INSERT INTO teachers (tname,uID) VALUES ('$teachername','$uid')";

    if($db->query($sql)){
        echo "編號".$t_id."老師新增成功<br>";
    }else{
        echo"老師新增失敗<br>";
    }

    //course
    $newsql = "INSERT INTO course (cname,coutline,t_ID) VALUES ('$classname','$classoutline','$t_id')";

    if($db->query($newsql)){
        echo "課程新增成功";
    }else{
       echo "課程新增失敗";
    }
?>

想請教一下大家!
現在正在做一個學習網的專題,資料庫有會員、老師、課程、學生,4張表
因為每位會員都可以進行開課、上課,所以有用外鍵去連結每個表
現在已經用好了"老師資料表u_id"與"會員資料表id"的關聯,但在"課程t_id"、"老師tid"就遇到一些問題
$t_id可以echo出來,但是沒辦法加進課程的資料表 不知道是哪裡有問題...

/images/emoticon/emoticon20.gif

weiclin iT邦高手 4 級 ‧ 2018-11-13 23:22:31 檢舉
echo $newsql 然後去 mysql 手動貼上執行看看
小魚 iT邦大師 1 級 ‧ 2018-11-13 23:55:14 檢舉
可樂說, 請改用PDO
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
火爆浪子
iT邦研究生 1 級 ‧ 2018-11-14 11:37:55
最佳解答

我看起來是因為沒有這樣的關係?

$uid = '';
while ($row = $result->fetch_assoc()) {
        $uid = $row['id'];
    }
1
rogeryao
iT邦超人 8 級 ‧ 2018-11-14 08:48:11

PHP 內的 SQL 語法怪怪的 .....
$uid,$teachername,$classnam,$classoutline,$t_id => PHP 變數
把組合好的 SQL 先 echo 看看對不對.

http://phorum.study-area.org/index.php?topic=26119.0

1
耿直小伙
iT邦新手 1 級 ‧ 2019-01-04 15:11:21

若還是找不到問題可以往資料表方向去看,也許是tid這個欄位型別、長度或者索引設錯的原因,剛接觸資料庫不久的人,常見的狀況像是以為所有ID都要設為主鍵或唯一鍵,導致搞半天不是錯在sql語法而是資料表規劃問題。

我要發表回答

立即登入回答