我似乎在这个问题上遇到了很多麻烦,所以如果有人能帮助我,我真的很感激。
我正在学习编程(早期阶段记住),我自己制作这个迷你应用程序来教我不同的东西。我有一个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!";
} ?>
我无法做到并需要帮助的是:
当交易数据被插入数据库时,它们被插入的字段包括:
我不知道要做的是找出如何从session变量获取restaurantid并包含在MYSQL语句中。
下面的PHP文件中的SQL语句是错误的我知道但是我只是想把它拼凑在一起,看看我是否可以为这个问题创建某种逻辑。
简单地说,我想要做的是获取存储在会话变量中的用户名,然后创建一个sql语句:
从那以后我就可以将这笔交易用于插入,因为我会从另一张桌子上获得餐馆ID!
我希望这是有道理的,我多年来一直在这里,但无济于事!如果这显示给我,我将能够进入许多其他领域,如修改和删除等,这只是我需要这首先找出会话片。非常感谢提前帮助!
答案 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'];
}