ユーザーID(users.uid)とフルネーム(users.full_name)の両方を格納するUSERSテーブルがあります。それから私は、各通話シフトスロット(例えば、一日&夜)の名前フィールドとユーザーID(uid)フィールドと共に、来年のすべての週をリストするOn Callスケジュール表を持っています。コールPHP MySQLi選択またはクエリのテキスト値を渡す
on_call_week、us_night_uid、us_night_full_nam、us_day_uid、us_day_full_name
17-12-25、53、ジェーン・ドウ、94、ジルTodd17-12-18、2342年、ジョン・スミス、24、ボブに私はその後、(それらの横にあるチェックボックスで)すべてのコールの週の開始日に一覧表示形式を持つオア
し、その上で送信ボタンをドロップして、コール週に選択されたすべてでフォームを表示するページに行きますコールスロットの両方でダウン(昼夜)
Wh私はUIDフィールドとfull_nameフィールドの両方を更新する方法を理解しようとしていますが、ドロップダウンリストボックスの値だけが渡されます(値はUIDであり、テキストはfull_namesです)。
選択ドロップダウンのテキストを(何らかの方法で)渡す必要がありますか?そうでなければ、FORループ内で2つの新しいクエリを作成して、各UIDの昼夜のfull_namesを取得する必要があります。または、配列全体にユーザーテーブル全体を照会してから、2つのUIDスロットの一致する名前を取得するために、FORループパスごとにその配列を2回ループするようなことをする必要がありますか?
mysqli_fetch_arrayを何度もループさせると、クエリが再作成されるか、$ resultを何度もループせずに返すことができますクエリーはデータベースに再作成されます(while($ row = mysqli_fetch_array($ result)))?私はまだPHPにはまだ初心者です。正直なところ、結果セットの一時的なコピー(?)を使用してPHPがデータベースの句に何回クエリを実行したかを視覚的に確認する方法さえもわかりません。
これは、レコードのチェックに基づいて一度に複数のレコードを更新するためのフォームを作成する方法について、このold guideに従っていました。
ありがとうございました。
<?php
$dbname = "on_call";
include '../shared_recources/db_connect.php';
if(isset($_POST["submit"]) && trim($_POST["submit"]) != "")
{
$checked_weeks = count($_POST["selected_on_call_weeks"]);
for($i=0; $i<$checked_weeks; $i++)
{
$us_day_uid = $_POST["us_day_uid"][$i];
$us_night_uid = ($_POST["us_night_uid"][$i];
mysqli_query($con, "UPDATE on_call.on_call_schedule
SET us_day_full_name = '" . $_POST["us_day_full_name"][$i] . "',
us_day_uid = '?????????',
us_night_full_name = '" . $_POST["us_night_full_name"][$i] . "',
us_night_uid = '" '???????????????' . "',
WHERE id = '" . $_POST["selected_on_call_weeks"][$i] . "'
");
}
}
?>
あなたのコードは、SQLインジェクションとPHPコードの例です。データベースに渡された各変数には、常に "mysqli_real_escape_string"関数を使用します。 mysqli_real_escape_string($ con、$ _POST ['variable'])(http://php.net/manual/pl/mysqli.real-escape-string.php) – JerzySBG