0

ミニライブラリ管理システムを構築していますが、いくつかの問題に遭遇したため、ヒントや提案を得られることを望んでいました.

現在insert.php、1 と 1HTMLページの 2 つのページがあります。

書籍またはトランザクションをデータベースに正常に挿入すると、新しいページが開き、成功のステータス メッセージが表示されます。

  1. これらの両方のページを 1 つに結合して、送信ボタンの下に成功メッセージを返すことはできますか?

  2. 以下を使用して lms_status_types_status_id をデータベースから直接取得しようとしましたが、失敗しました:

    <select  name="lms_status_types_status_id" id="individual" multiple="multiple">
    <option value="0" SELECTED>Select User</option> 
    <?php foreach($RET as $userdata){ ?>
    <option value="<?php echo $userdata['lms_status_types_status_id']; ?>"></option>
    <?php } ?>
    </select> 
    

私がここで間違っていることは何か分かりますか?

Google に助けを求めてみましたが、浮かんでいるものを実装するのは難しいことがわかりました。私はphpにまったく慣れていないので、許してください!

insert.php

<?php

$con = mysql_connect("localhost","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

$RET = DBGet(DBQuery("SELECT * FROM lms_transactions")); 

mysql_select_db("my_db", $con);

$sql="INSERT INTO lms_books (book_id, tag, title, author, year)
  VALUES
('$_POST[book_id]','$_POST[tag]','$_POST[title]' ,'$_POST[author]' ,'$_POST[year]')";


$sql="INSERT INTO lms_transactions (student_id, lms_books_tag, lms_books_book_id, lms_status_types_status_id)
VALUES
('$_POST[student_id]','$_POST[lms_books_tag]','$_POST[lms_books_book_id]','$_POST[lms_status_types_status_id]')";


if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con);
?>

HTML File

<h2> Library Management System</h2>

<h3>Check-In/Check-Out Book:</h3>
<form action="/insert.php" method="post">
Student ID: <input type="text" name="student_id">
Book Tag: <input type="text" name="lms_books_tag">
Book ISBN: <input type="text" name="lms_books_book_id">
Status: <select name="lms_status_types_status_id">
    <option value="Checked-In">Checked-In</option>
    <option value="Checked-Out">Checked-Out</option>
    </select>
<input type="submit">
</form>


<h3>Insert Book:</h3>
<form action="/insert.php" method="post">
Book ISBN: <input type="text" name="book_id">
Tag: <input type="text" name="tag"> 
Title: <input type="text" name="title">
Author: <input type="text" name="author">
Year: <input type="text" name="year">
<input type="submit">
</form>
4

1 に答える 1

1

変数$sqlを2回宣言しています。つまり、mysql_query()関数に関しては、2番目のクエリ文字列のみが使用されます。

はい、同じページでHTMLとPHPを組み合わせることができます。PHPをHTMLの上に置き、if($ _ POST){}(または、実行しようとしていることに応じてif(!$ _ POST){}でラップすることができます。次に、フォームを独自のページに送信します。

また、POST入力をデータベースに挿入する前にクリーンアップする必要があります。そうしないと、datasageが言及しているようにセキュリティリスクにさらされることになります。

于 2013-01-20T04:17:50.363 に答える