【问题标题】:Inserting inputted data and session ID into database将输入的数据和会话 ID 插入数据库
【发布时间】:2013-02-01 11:53:52
【问题描述】:

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

我目前正在学习编程(请记住早期阶段),我正在自己制作这个迷你应用程序来教我不同的东西。我有一个 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 语句回显“它可以工作”,这意味着用户已登录并且详细信息仍然存在在数组中:

<?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. restaurantid 是登录用户的 id

我不知道如何从会话变量中获取 restaurantid 并包含在 MYSQL 语句中。

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

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

  • 将名称、描述和 restaurantid 插入到交易表中,其中 restaurantid 来自餐厅表,可以通过从会话变量中查找哪个用户名与餐厅表中的用户名相同来获取。

这样我就可以提交交易以插入,因为我会从另一张桌子上获得餐厅 ID!

我希望这是有道理的,我已经做了很多年了,但无济于事!如果向我展示了这一点,我将能够进入许多其他领域,例如修改和删除等,这只是我需要首先弄清楚会话部分。非常感谢您的帮助!!!

【问题讨论】:

标签: jquery mysql session php


【解决方案1】:

不使用真正的代码,只是试图理解你:

$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'];
}

【讨论】:

  • 是的!!!这正是我想要做的:) 获取 restaurantid 然后在我的插入语句中使用它
  • @user2025934 那么从这里开始
  • 我不知道为什么我从来没想过要分手大声笑非常感谢你,我现在就开始吧! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 2015-04-17
相关资源
最近更新 更多