【发布时间】: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!";
} ?>
我不能做并且需要帮助的是:
成交数据插入数据库时,插入的字段包括:
- dealid 是自动实现的,所以我不需要对此做任何事情
- dname 是用户在表单中插入信息的交易名称
- 用户再次在表单中插入信息的描述
- restaurantid 是登录用户的 id
我不知道如何从会话变量中获取 restaurantid 并包含在 MYSQL 语句中。
我知道下面 PHP 文件中的 SQL 语句是错误的,但我只是想自己拼凑起来,看看是否可以为问题创建某种逻辑。
简而言之,我想做的是获取存储在会话变量中的用户名,然后在我要去的地方创建一个 sql 语句:
- 将名称、描述和 restaurantid 插入到交易表中,其中 restaurantid 来自餐厅表,可以通过从会话变量中查找哪个用户名与餐厅表中的用户名相同来获取。
这样我就可以提交交易以插入,因为我会从另一张桌子上获得餐厅 ID!
我希望这是有道理的,我已经做了很多年了,但无济于事!如果向我展示了这一点,我将能够进入许多其他领域,例如修改和删除等,这只是我需要首先弄清楚会话部分。非常感谢您的帮助!!!
【问题讨论】:
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。 -
请将解释缩小到合理的相关代码,并在开头突出问题。如果问题与服务器端相关...无需发布大量的 html 和 javascript。应该能够从一开始就理解问题,以便我们知道要关注哪些代码
-
抱歉,我希望我的最新编辑能让事情更清楚
-
无需将数据以 JSON 格式发送到 php.. 两端都是多余的代码