从SQL数据库请求变量列和变量值

时间:2016-08-15 20:59:55

标签: php mysql

我是一个血腥的初学者,如果有人可以帮我处理我的代码,我会非常高兴。 我有一个SQL数据库,其中包含可变数量的字符串和包含数字的列,所有列都以逗号分隔。 现在,我想通过使用html-form和php读出数据。 每个用户都可以决定自己,要读出哪些信息,这意味着没有必填字段。结果应该是符合所有要求标准的水果。 这是适用的代码。

enter code here

    <?php
    include("../files/zugriff.inc.php");

    if (isset($_POST["submit"])) {

     $sent = $_POST['sent'];
     $daten = array();
     $fruits = $_POST["fruits "];
     $vegetables = $_POST["vegetables"];
     $country = $_POST["country"];
     $season = $_POST["season"];
     $diameter = $_POST["diameter"];
     $color = $_POST["color"];


     if(!empty($fruits)) {
        $daten['fruits'] = $fruits;
    }
     if(!empty($vegetables)) {
        $daten['vegetables'] = $vegetables;
    }
    if(!empty($country)) {
        $daten['country'] = $country;
    }
    if(!empty($season)) {
        $daten['season'] = $season;
    }
    if(!empty($diameter)) {
        $daten['diameter'] = $diameter;
    }
    if(!empty($color)) {
        $daten['color '] = $color;
    }


        foreach ($daten as $key => $value) {
       $spalten[] = $key;
       $werte[] = "'$value'";
       }

    echo "<b>Results:</b><br><br>";

    $sql = "SELECT * FROM fruitdatabase WHERE (" . implode(", ",   
    $spalten) . ") = (" . implode(", ", $werte) . ")";

    echo "<table>";
    echo "<tr><th>Names</th></tr>";

    $result = mysqli_query($db, $sql);

    while ($row = mysqli_fetch_assoc($result)) {

    echo "<tr><td>$row[name]</td></tr>";

     }
     echo "</table>";
    }

    mysqli_close($db);
    ?>

然而,问题是,当一个字段中的逗号分隔的值不同时,找不到请求的值。这只适用于字段中只有一个值的情况。所以我尝试按如下方式更改我的代码:

    foreach ($daten as $key => $value) {
       $spalten[] = $key;
       $werte[] = "'%$value%'";
       }

    echo "<b>Results:</b><br><br>";

    $sql = "SELECT * FROM fruitdatabase WHERE (" . implode(", ", 
    $spalten) . ") LIKE (" . implode(", ", $werte) . ")";

现在,找到以逗号分隔的单个单词。但是,不再需要组合不同的请求,这意味着我只能搜索一个标准,而不是更多。

我认为数组元素的快捷方式一定存在问题。

非常感谢! 格里

0 个答案:

没有答案