我是一个血腥的初学者,如果有人可以帮我处理我的代码,我会非常高兴。 我有一个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) . ")";
现在,找到以逗号分隔的单个单词。但是,不再需要组合不同的请求,这意味着我只能搜索一个标准,而不是更多。
我认为数组元素的快捷方式一定存在问题。
非常感谢! 格里