php - 如何根据用户输入从多个表的单个列中获取所有行?
问题描述
我正在构建一个流程选择应用程序,我什至不确定我的方法是否正确(我是新手,对不起!)。我有一个带有 5 个输入参数的表单,使用单选按钮(选择 1-10)。
我为每个存储进程名称的参数设置了 5 个表,并将字段设置为 1 - 10 以对应于用户输入......其中一个看起来像这样:
我希望将用户输入的每个参数(1-10)存储为会话变量,以输出到数组以供进一步计算。
我有以下代码从表单中设置会话变量,并仅返回与仅来自一个参数的用户输入匹配的那些记录:
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "selectionapp";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if (isset($_POST['Submit'])) {
$_SESSION['temperature'] = $_POST['temperature'];
$_SESSION['partSize'] = $_POST['partSize'];
$_SESSION['volume'] = $_POST['volume'];
$_SESSION['stiffness'] = $_POST['stiffness'];
$_SESSION['weight'] = $_POST['weight'];
}
echo $_SESSION['temperature'];
echo $_SESSION['partSize'];
echo $_SESSION['volume'];
echo $_SESSION['stiffness'];
echo $_SESSION['weight'];
$result = mysqli_query($conn, "SELECT * FROM processes WHERE temperature LIKE '%{$_SESSION['temperature']}%'");
$row = mysqli_fetch_assoc($result);
echo "<table border='1'>";
while ($row = mysqli_fetch_assoc($result)) {
echo '<tr>';
echo '<td>' . $row['score'] .'</td>';
echo "<td>" . $row['type'] . "</td>";
echo "<td>" . $row['temperature'] . "</td>";
echo "<td>" . $row['partSize'] . "</td>";
echo "<td>" . $row['volume'] . "</td>";
echo "<td>" . $row['stiffness'] . "</td>";
echo "<td>" . $row['weight'] . "</td>";
echo "<td>" . $row['tool'] . "</td>";
echo "<td>" . $row['paint'] . "</td>";
echo "<td>" . $row['notes'] . "</td>";
echo '<tr/>';
}
echo '</table>';
?>
<?php
// close connection
mysqli_close($conn);
?>
除了,我认为我真正需要的是从 5 个表中的每一个中获取与用户输入 (1-10) 匹配的一列,以创建一个新数组,以便我可以在计算中使用这些值来评分/排名那个进程类型。
感谢任何帮助。谢谢!
解决方案
我做的!它既不漂亮也不简洁也不优雅……但它确实有效。谢谢@RonnieOosting!虽然我没有走阵列路线,但您帮助我指出了正确的方向。
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "selectionapp";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if (isset($_POST['Submit'])) {
$_SESSION['temperature'] = $_POST['temperature'];
$_SESSION['partSize'] = $_POST['partSize'];
$_SESSION['volume'] = $_POST['volume'];
$_SESSION['stiffness'] = $_POST['stiffness'];
$_SESSION['weight'] = $_POST['weight'];
}
echo $_SESSION['temperature'];
echo $_SESSION['partSize'];
echo $_SESSION['volume'];
echo $_SESSION['stiffness'];
echo $_SESSION['weight'];
if ($result_temp = mysqli_query($conn, "SELECT * FROM temperature WHERE '%{$_POST['temperature']}%' LIKE '%{$_SESSION['temperature']}%'"));
echo "<table border='1'>";
echo '<tr>';
echo "<td>" . 'Process Type' . "</td>";
echo "<td>" . 'Temperature Score' . "</td>";
echo '<tr/>';
while ($row = mysqli_fetch_assoc($result_temp)) {
echo '<tr>';
echo "<td>" . $row['type'] . "</td>";
echo "<td>" . $row[$_SESSION['temperature']] * 10 . "</td>";
echo '<tr/>';
}
echo '</table>';
$result_size = mysqli_query($conn, "SELECT * FROM partSize WHERE '%{$_POST['partSize']}%' LIKE '%{$_SESSION['partSize']}%'");
//$row = mysqli_fetch_assoc($result);
echo "<table border='1'>";
echo '<tr>';
echo "<td>" . 'Process Type' . "</td>";
echo "<td>" . 'Part Size Score' . "</td>";
echo '<tr/>';
while ($row = mysqli_fetch_assoc($result_size)) {
echo '<tr>';
echo "<td>" . $row['type'] . "</td>";
echo "<td>" . $row[$_SESSION['partSize']] . "</td>";
echo '<tr/>';
}
echo '</table>';
$result_vol = mysqli_query($conn, "SELECT * FROM volume WHERE '%{$_POST['volume']}%' LIKE '%{$_SESSION['volume']}%'");
//$row = mysqli_fetch_assoc($result);
echo "<table border='1'>";
echo '<tr>';
echo "<td>" . 'Process Type' . "</td>";
echo "<td>" . 'Volume Score' . "</td>";
echo '<tr/>';
while ($row = mysqli_fetch_assoc($result_vol)) {
echo '<tr>';
echo "<td>" . $row['type'] . "</td>";
echo "<td>" . $row[$_SESSION['volume']] . "</td>";
echo '<tr/>';
}
echo '</table>';
$result_stiff = mysqli_query($conn, "SELECT * FROM stiffness WHERE '%{$_POST['stiffness']}%' LIKE '%{$_SESSION['stiffness']}%'");
//$row = mysqli_fetch_assoc($result);
echo "<table border='1'>";
echo '<tr>';
echo "<td>" . 'Process Type' . "</td>";
echo "<td>" . 'Stiffness Score' . "</td>";
echo '<tr/>';
while ($row = mysqli_fetch_assoc($result_stiff)) {
echo '<tr>';
echo "<td>" . $row['type'] . "</td>";
echo "<td>" . $row[$_SESSION['stiffness']] . "</td>";
echo '<tr/>';
}
echo '</table>';
$result_wght = mysqli_query($conn, "SELECT * FROM weight WHERE '%{$_POST['weight']}%' LIKE '%{$_SESSION['weight']}%'");
//$row = mysqli_fetch_assoc($result);
echo "<table border='1'>";
echo '<tr>';
echo "<td>" . 'Process Type' . "</td>";
echo "<td>" . 'Weight Score' . "</td>";
echo '<tr/>';
while ($row = mysqli_fetch_assoc($result_wght)) {
echo '<tr>';
echo "<td>" . $row['type'] . "</td>";
echo "<td>" . $row[$_SESSION['weight']] . "</td>";
echo '<tr/>';
}
echo '</table>';
echo "<table border='1'>";
echo '<tr>';
echo "<td>" . 'LFI Results' . "</td>";
echo "<td>" . 'Score' . "</td>";
echo '<tr/>';
echo '<tr>';
echo "<td>" . $row['type'] . "</td>";
echo "<td>" . $row[$_SESSION['weight']] . "</td>";
echo '<tr/>';
echo '</table>';
?>
<?php
// close connection
mysqli_close($conn);
?>
这输出:
工艺类型 温度评分 LFI 5 DCPD 5 SMC 10
工艺类型 零件尺寸评分 LFI 0.0 DCPD 0.0 SMC 1.0
工艺类型 体积分数 LFI 0.5 DCPD 0.5 SMC 1.0
工艺类型 刚度评分 LFI 1.0 DCPD 1.0 SMC 1.0
过程类型 权重评分 LFI 1.0 DCPD 1.0 SMC 1.0
推荐阅读
- generics - 如何使通用形式参数别名
- java - 带有 SOAP 的 InvocationTargetException
- javascript - JavaScript:向元素添加了 EventListener - 但是当我点击它时,目标是一个嵌套元素
- visual-foxpro - 我可以使用表达式生成器将 SQL 查询结果返回给变量吗?
- python - 遍历 ndarray 类型的 pandas 列
- reactjs - React js端口转发不适用于DNS
- for-loop - 如何在Stata中使用条件语句遍历文件夹?
- c++ - 通过右键单击完成多边形的绘制,但显示一个菜单
- javascript - 如何对 JavaScript 中的每一行进行小计?
- google-cloud-platform - 是否可以使用 google GCP API Gateway 将 IP 白名单列入白名单?