将输入的数据和会话ID插入数据库

时间:2013-02-16 17:00:18

标签: jquery mysql session php

我似乎在这个问题上遇到了很多麻烦,所以如果有人能帮助我,我真的很感激。

我正在学习编程(早期阶段记住),我自己制作这个迷你应用程序来教我不同的东西。我有一个HTML文件,它创建一个表单,以便用户可以在数据库中添加交易名称和交易描述

将捕获输入表单中2个文本框的文本,并通过javascript函数创建JSON对象

然后将Javascript函数读取到创建的PHP文件中,该文件将获取JSON对象并将给定值写入数据库,如下所示:

<?php

$var1 = $_REQUEST['action']; // We dont need action for this tutorial, but in a complex code you need a way to determine ajax action nature
$jsonObject = json_decode($_REQUEST['outputJSON']); // Decode JSON object into readable PHP object

$name = $jsonObject->{'name'}; // Get name from object
$desc = $jsonObject->{'desc'}; // Get desc from object


mysql_connect("localhost","root","");  // Conect to mysql, first parameter is location, second is mysql username and a third one is a mysql password
@mysql_select_db("findadeal") or die( "Unable to select database"); // Connect to database called test

$query = "INSERT INTO deal (dname, description, restaurantid) VALUES ('$name' ,'$desc' '$username') WHERE $username=(Select restaurantid FROM restaurant where username = '$username')";
$result=mysql_query($query);
$num = mysql_numrows($result);

if($num != 0) {

    echo "true";

} else {

    echo "false"; 

}
?>

这就是我的问题所在。这个可以添加交易的HTML文件是我创建的大型项目的一部分。用户已经登录并且已经创建了一个会话 - 我知道这可以作为我已经插入到我的HTML文件顶部的迷你php语句echos“It Works”意味着用户已登录且细节仍然存在在数组中:

<?php
if( !isset( $_SESSION ) ){
 session_start();
echo "Whats Happening";
    }

if( isset( $_SESSION['username'] ) ){
  /* User is logged in */
  echo "IT WORKS!";
    } ?>

我无法做到并需要帮助的是:

当交易数据被插入数据库时​​,它们被插入的字段包括:

  1. 自动实现的dealid所以我不需要做任何事情
  2. dname是用户将信息插入表单
  3. 的交易名称
  4. 用户再次将信息插入表单
  5. 的说明
  6. restaurantid是登录用户的ID
  7. 我不知道要做的是找出如何从session变量获取restaurantid并包含在MYSQL语句中。

    下面的PHP文件中的SQL语句是错误的我知道但是我只是想把它拼凑在一起,看看我是否可以为这个问题创建某种逻辑。

    简单地说,我想要做的是获取存储在会话变量中的用户名,然后创建一个sql语句:

    • 在餐厅表格中插入餐馆名称,描述和餐馆名称,描述和餐馆,可以通过查找会话变量中的哪个用户名与餐馆餐桌中的用户名相同来获得。

    从那以后我就可以将这笔交易用于插入,因为我会从另一张桌子上获得餐馆ID!

    我希望这是有道理的,我多年来一直在这里,但无济于事!如果这显示给我,我将能够进入许多其他领域,如修改和删除等,这只是我需要这首先找出会话片。非常感谢提前帮助!

1 个答案:

答案 0 :(得分:0)

不使用真实代码,只是试图了解你:

$db = new PDO("mysql:host=".DBHOST.";dbname=".DBNAME, DBUSER, DBPASS);

$sql = 'Select restaurantid FROM restaurant where username=:username';
$statement = $db->prepare($sql);
$statement->bindParam(':username', $_SESSION['username'], PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetch(PDO::FETCH_ASSOC);
if(!empty($result)) {
    // here is your restaurant id, you can use for the insert statement...
    $rID = $result['restaurantid'];
}
相关问题