此代碼的工作原理,但問題是,如果多人同時使用它會導致一些人不會註冊的意義上的問題。所以我需要重寫這個方式,在下一個人的查詢開始之前,每個人的所有查詢都會被執行並完成。多個查詢與mysqli中的php代碼在當時一個人
首先,代碼從數據庫中讀取,以便獲得到目前爲止所有註冊人員的字符串。
$sql_s = $con -> query("select * from schedule where date='$date'");
$row_schedule = $sql_s->fetch_array(MYSQLI_BOTH);
$participants = $row_schedule['participants'];
$參與者是一個字符串,它看起來像「‘薩拉’:‘理查德’:‘格雷格’」
現在當前用戶(弗雷德裏克)希望它的名字加入到這樣的字符串
$current_user='Fredrik';
$participants_new=add_participant($participants,$current_user);
add_participant是一個php函數,它爲參與者字符串添加'Fredrik'。然後我想用新的SQL數據庫這樣
$sql = $con->query("UPDATE schedule SET participants='{$participants_new}' where date='{$date}'");
的具體問題是,如果另一個人(琳達)讀取數據庫弗雷德裏克執行
$sql = $con->query("UPDATE schedule SET participants='{$participants_new}' where date='{$date}'");
之前,以取代舊的參與者字符串琳達不會得到一個包含弗雷德裏克的字符串,她會得到「薩拉」:「理查德」:「格雷格」。而當她增添了她的名字就會看起來像「‘薩拉’:‘理查德’:'格雷格:「琳達」,當她更新數據庫這樣
$sql = $con->query("UPDATE schedule SET participants='{$participants_new}' where date='{$date}'");
字符串包括弗雷德裏克(」」 Sara':'Richard':'Greg':'Fredrik')將被(''Sara':'Richard':'Greg':'Linda'')覆蓋,沒有人會知道Fredrik在課堂上註冊。
因此,我如何重寫這段代碼,以便在Linda的查詢開始之前執行Fredrik的所有查詢?
我喜歡這個問題。這是非常建築,並尋求解決物流問題。 – Webeng
爲什麼你沒有添加每行參與者?相反,你將所有的學生保存在一個行中?由於您已經知道如果所有用戶都添加到一個字符串中,您應該爲每個用戶分別記錄這一問題,這不是一個好的做法,因此不可能同時將多個值同時添加到同一個字符串中。 。!其中一些將失蹤..! –
您需要添加另一個表,將參與者鏈接到日程安排,但這不是將信息存儲在數據庫中的好方法,因爲您無法輕鬆搜索,過濾或加入信息。 – jeroen