2013-01-20 43 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

相关问题