オンラインで何時間も検索しましたが、フォームに正しく表示されているのに、mysql データベースに正しく保存されない理由がわかりません。
私のフォームには、学生の名前を表示するドロップダウンがあり、次のコードを使用してドロップダウンの姓名を取得します。
<?php
$stud_sql = "SELECT CONCAT (First_name,' ', Last_name) AS fullname FROM students";
$stud_results = mysqli_query($db_conx, $stud_sql);
echo "<select name='fullname'>";
while ($row = mysqli_fetch_array($stud_results, MYSQLI_ASSOC)){
$fullname = $row['fullname'];
echo "<option value=".$row['fullname'].">" . $row['fullname'] . "</option>";
}
echo "</select>";
?>
フォームのドロップダウンには名と姓が完全に表示されますが、mysql データベースに投稿しようとすると、両方ではなく名のみが保存されますか?
以下は、データベースに投稿するためのコードです。
if (isset($_POST['fullname']) && ($_POST['fullname'] !='')){
$studentname = $_POST['fullname'];
if (empty($studentname))
{
$errors[] = "Missing student name.";
}
if (count($errors) > 0)
{
//there were validation errors, prepare error message
$response = "<span style=\"color:red;\">";
$response .= "the following errors occured:\n";
$response .= "<ul>";
$response .= '<li>' .implode('</li><li>', $errors) . '</li>';
$response .= "</ul>\n";
$response .= "</span>\n";
}
else
{
//No validation errors, save the dat to database
$studentname = mysqli_real_escape_string($db_conx, $studentname);
$sql = "INSERT INTO incidentform (`studentname`) value ('$studentname')";
$query = mysqli_query($db_conx, $sql);
明確にするために、連結はたとえばファンキーモンキーを表示しますが、ファンキーのみがデータベースに保存されます。
OK marc B はフルネームをデータベースに保存するこれらの変更を提案しましたが、ドロップダウンには 1 つの名前しか表示されませんか?
Name of Student:
<select name='fullname'>
<option value="$id"><?php echo $fullname; ?></option>
</select>
and
$stud_sql = "SELECT id, CONCAT (First_name,' ', Last_name) AS fullname FROM students";
$stud_results = mysqli_query($db_conx, $stud_sql);
while ($row = mysqli_fetch_array($stud_results, MYSQLI_ASSOC)){
$fullname = $row['fullname'];
}
完全なリストを取り戻す方法について何か提案はありますか?