首页 > 解决方案 > 如何根据用户输入从多个表的单个列中获取所有行?

问题描述

我正在构建一个流程选择应用程序,我什至不确定我的方法是否正确(我是新手,对不起!)。我有一个带有 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) 匹配的一列,以创建一个新数组,以便我可以在计算中使用这些值来评分/排名那个进程类型。

感谢任何帮助。谢谢!

标签: phpmysql

解决方案


我做的!它既不漂亮也不简洁也不优雅……但它确实有效。谢谢@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


推荐阅读