一个很长而且可能很简单的问题,但我的大脑被炸了,我目前无法处理这个逻辑。
不幸的是,我必须使用一个数据库。用户 #1 提供有关公司、组件以及最后要回答的问题的信息。然后它将这些数据转储到数据库中。与其将它们存储在 1 个表或定义明确的关系表中,不如将它们存储在几乎没有关系的单独表中。
现在的问题,如何检索这些问题
所以用户#2 必须回答这些问题。用户 #2 提供了公司名称,然后我必须查询它的 id(它是自动递增的,并且仅与组件和问题有关),然后提供我必须再次查询 id 的组件的名称(它是自动递增的,并且仅与问题有关)。然后我必须用给定的组件和公司 ID 查询所有问题(因为显然它是唯一明确的唯一标识符)。那么,准备好自杀了吗?伟大的!让我们看看代码!
注意说 !!!<-- 在循环完成后超出范围的行
<?php
require_once 'connect.php';
//$company_name = $_POST['company_name'];
$company_name = 'Some Company';
$company_id_query = "SELECT * FROM company_mast WHERE company_name = '".$company_name."'";
if ($query_run = mysql_query($company_id_query)) {
if (mysql_num_rows($query_run) == NULL) {
echo ('No results found');
} else {
while ($query_row = mysql_fetch_assoc($query_run)) {
$company_id = $query_row['id'];
echo ('company id: '.$company_id); // !!!<-- goes out of scope after the loop is finished
}
}
}
$component_name = 'Some Component';
$component_id_query = "SELECT * FROM component_mast WHERE component_name = '".$component_name."' AND company_id = '".$company_id."'";
if ($query_run = mysql_query($component_id_query)) {
if (mysql_num_rows($query_run) == NULL) {
echo ('No results found');
} else {
while ($query_row = mysql_fetch_assoc($query_run)) {
$component_id = $query_row['id'];
echo ('component id: '.$component_id);
}
}
}
$questions = '';
?>
对于那些阅读了所有这些的人,谢谢。现在我的问题显然是对组件 ID 的第二次查询将永远无法工作,因为来自公司 ID 的原始结果已经超出范围。但是我很烂,PHP
我不知道另一种方法来获得所说的查询结果。
所以最大的问题是,我如何获取该结果并将其存储以使其不会超出范围?
保留所有死亡威胁,感谢您的任何回答……尤其是那些不需要我使用这种荒谬逻辑的人。
事后诸葛亮
一份Join
声明能解决所有这些问题吗?