0

我有 2 张桌子:

tblDowntime
downtimeID - downtimeDescription
1          - dt_desc
2          - dt_desc2


tblMachineArea
areaID     - downtimeID - areaDescription
1          - 1          - area1
2          - 2          - area2

我知道downtimeDescription,那么我要怎么做才能从 tblMachineArea 获取相应的区域呢?

我可以从 ID 中获取它们,但我的列表框只有描述

我已经得到了 INSERT 的答案,但无法适应它......除非我错过了一些非常明显的东西......

我的另一个问题是使用什么连接...我尝试使用 machineID = 1 进行内部连接,它返回 tblMachineArea 中的所有行,但具有不同的 machineID,具体取决于我在查询中使用 1 还是 2 .... 没有对我很有意义

编辑:我运行的查询是

SELECT areaID, tblMachineArea.downtimeID, tblDowntime.downtimeDescription, areaDescription
FROM tblDowntime
INNER JOIN tblMachineArea ON tblMachineArea.downtimeID = 1;

图片:(请原谅表名和字段略有不同,所以我已经更新了原件) 在此处输入图像描述

任何帮助,将不胜感激

4

1 回答 1

1

您可以避免使用连接并运行两个查询。

首先获取机器的 ID 并将其存储为变量。然后使用该变量来获取您需要的信息。

此外,您提到的链接不使用 prep`red 语句,如果可以提高安全性,最好将其用作策略。

这是我注册用户的 PHP 函数,你可以看到准备好的语句是如何构造的。

//function for registering a new user and adding their details to the database
public function register($username, $password, $email){

$time       = time();
$ip         = $_SERVER['REMOTE_ADDR'];
$emailCode = sha1($username + microtime());
$password   = sha1($password);

//prepare statement and bind values
$query  = $this->db->prepare("INSERT INTO `users` (`username`, `password`, `email`, `ip`, `time`, `emailCode`) VALUES (?, ?, ?, ?, ?, ?) ");

$query->bindValue(1, $username);
$query->bindValue(2, $password);
$query->bindValue(3, $email);
$query->bindValue(4, $ip);
$query->bindValue(5, $time);
$query->bindValue(6, $emailCode);

try{
    $query->execute();

    //function stuff here removed to save space

}catch(PDOException $e){
    die($e->getMessage());
}   
 }//end register function
于 2013-07-17T08:54:19.413 回答