将数据添加到数据库中的不同表中

问题描述:

如何将客户端表单中的数据添加到数据库中的不同表中?我的情况是这样的,我有三种形式的客户端,第一种是用于书籍物品(精装本,杂志等),第二种用于音乐项目(CD,卡带等),第三种用于电影项目(dvd ,VHS等)。将数据添加到数据库中的不同表中

用户应该能够输入任何形式的细节,然后数据应该填充在数据库中的正确表格中。

任何想法家伙或脚本随时可用?我需要它是可扩展的,所以它应该能够处理多个请求而不会减速或导致很多错误(我不介意调试一些:))。我也必须考虑谁发布了什么使系统可扩展。

哦,我是一个前端设计师,而不是exp exp核心软件应用程序的web程序员工程师编码员。

设置: PHP MySQL的 JS HTML

所有帮助欢迎。

我很抱歉家伙!目前的代码是书如下,其同样为音乐和电影:

<?php 
//Start session 
session_start(); 

//Include database connection details 
require_once('../config.php'); 

//Array to store validation errors 
$errmsg_arr = array(); 

//Validation error flag 
$errflag = false; 

//Connect to mysql server 
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
if(!$link) { 
    die('Failed to connect to server: ' . mysql_error()); 
} 

//Select database 
$db = mysql_select_db(DB_DATABASE); 
if(!$db) { 
    die("Unable to select database"); 
} 

//Function to sanitize values received from the form. Prevents SQL injection 
function clean($str) { 
    $str = @trim($str); 
    if(get_magic_quotes_gpc()) { 
     $str = stripslashes($str); 
    } 
    return mysql_real_escape_string($str); 
} 

//Sanitize the POST values 
$isbn = clean($_POST['isbn']); 
$bookTitle = clean($_POST['bookTitle']); 
    $author = clean($_POST['author']); 
$genre = clean($_POST['genre']); 
$year= clean($_POST['year']); 


//Input Validations 
if($isbn == '') { 
    $errmsg_arr[] = 'ISBN missing'; 
    $errflag = true; 
} 
if($bookTitle == '') { 
    $errmsg_arr[] = 'Book Title missing'; 
    $errflag = true; 
} 
if($author == '') { 
    $errmsg_arr[] = 'author missing'; 
    $errflag = true; 
} 
if($genre == '') { 
    $errmsg_arr[] = 'Genre missing'; 
    $errflag = true; 
} 
if($year == '') { 
    $errmsg_arr[] = 'Year missing'; 
    $errflag = true; 
} 


//Check for duplicate login ID 
if($isbn != '') { 
    $qry = "SELECT * FROM books WHERE isbn='$isbn'"; 
    $result = mysql_query($qry); 
    if($result) { 
     if(mysql_num_rows($result) > 0) { 
      $errmsg_arr[] = 'Book and ISBN ID already in system'; 
      $errflag = true; 
     } 
     @mysql_free_result($result); 
    } 
    else { 
     die('Query Failed: ' . mysql_error()); 
    } 
} 

//If there are input validations, redirect back to the registration form 
if($errflag) { 
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr; 
    session_write_close(); 
    die('Query Failed: ' . mysql_error()); 
    header("location: addMedia.php"); 
    exit(); 
} 

//Create INSERT query 
$qry = "INSERT INTO books(isbn, title, author, genre, year) VALUES('$isbn','$bookTitle','$author','$genre','$year')"; 
$result = @mysql_query($qry); 

//Check whether the query was successful or not 
if($result) { 
    header("location: bookAdded.php"); 
    exit(); 
}else { 
    die('Query Failed: ' . mysql_error()); 
} ?> 
+0

你可以得到它的形式提交了它的名字(HTML表单的name属性),即'如果($ _ POST ['booksForm ']){/ * insert into books table * /} elseif($ _ POST ['musicForm']){/ * insert into music table * /} elseif($ _ POST ['moviesForm']){/ * insert into movies table * /}'。你有什么要展示的吗? – enenen 2013-04-11 12:02:11

+1

嘿,欢迎来到SO。此网站通常用于在您尝试了几件事情但未能解决问题后遇到的具体问题。如果您告诉我们您已经尝试了什么,这也很好。在这种情况下,我建议您阅读一般的Web开发,或者聘请编码人员,如果它是一个商业项目。 – KillerX 2013-04-11 12:02:44

+0

它确实有效,但是问题应该是:我不知道哪个用户添加了什么,当为了当前登录的用户而将结果显示回客户端时,这也会令人困惑。 – ParttimeCoder 2013-04-11 12:20:00

您将需要一个服务器端脚本,将处理您的前端形式。

的foreach形式,你会使用来自PHP PDO扩展不同的表中插入,read more about it here.

+0

它确实有效,但是问题应该是:我不知道哪个用户添加了什么,当为了当前登录的用户而将结果显示回客户端时,这也会造成混淆。 – ParttimeCoder 2013-04-11 12:20:41

+0

您应该在每个表中都有一个inserted_by字段。然后,您将只显示用户插入的书籍(通过使用$ _SESSION ['user_id'])。 – 2013-04-11 13:10:38

+0

我认为如果用户已经登录但是没有书,这将不起作用。例如,现在我已经用这个代码尝试了这个方法,'if($ sql.bookID ==($ _SESSION ['SESS_MEMBER_ID'])); $结果= mysql_query($ SQL); 其他 ( 回声“您没有书尚未加入!”; )' – ParttimeCoder 2013-04-13 00:15:50