2013-01-20 46 views
0

我正在構建一個小型圖書館管理系統,但遇到了一些問題,希望能得到一些提示和建議。自我發送php表單並將mysql數據拉到php的html

目前我有兩頁:一個insert.php,和一個HTML頁面。

當我成功地將書籍或交易插入數據庫時​​,打開一個新頁面,並收到成功狀態消息。

  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> 
+1

您的代碼有SQL注入問題。它也看起來像你正在使用幾種不同的數據庫訪問方法。 – datasage

+0

@datasage是的,我已經從幾個地方把這一切都搗碎了。我將清理它並嘗試發佈更一致和修改的版本。謝謝! – junaidkaps

+0

關於你的第一個問題,你可以通過做兩個頁面

」關於第二個問題,因爲@child_Gilovitz已經給了你一些指導,我不會重複一下已經說過 – keikoku92

回答

1

您在聲明變量$ SQL兩次,這意味着,當它涉及到mysql_query()函數,只有第二個查詢字符串將永遠被使用。

是的,可以在同一頁面上組合HTML和PHP。您可以將PHP放在HTML之上,並將其封裝在if($ _ POST){}(或if(!$ _ POST){})中,具體取決於您要做什麼。然後您將表單提交到自己的頁面。

另外,在將數據插入到數據庫之前,您應該先清理POST輸入,或者在數據表中提到安全風險。

+0

我沒有意識到$ sql問題,直到你指出它。你能指導我如何發佈多個查詢並給他們打電話的正確方向嗎?同時,我會根據您和數據庫的意見,嘗試發佈修訂後的更一致的版本。欣賞它! – junaidkaps

+1

好的,很簡單,你需要: 1。確定哪個表單已被提交 - 您可以通過 'if($ _ POST ['student_id'] {code for generate sql statement for the first form } elseif($ _ POST ['book_id'] { //代碼爲第二種形式生成sql statemnt } else { // whatever }' 2.然後根據您在上面生成的語句生成您的sql查詢您可能希望在if語句中使用不同的條件。甚至可以在一個隱藏的表單輸入中傳遞一個唯一的變量來確定哪個表單已經被提交。 – ChidG

相關問題