我试图将包含一串水果的变量与存储在mysql数据库中的变量进行比较。我的代码如下所示:
$stored_fruits = mysqli_query($this->con, "SELECT fruits FROM fruit_table"); // uploaded fruits: "Apple Orange Pineapple"
$fruit_array = explode(", ", $fruits); // fruits are searched for and turned into an array: ["Apple", "Strawberry", "Banana"]
for($i = 0; $i < count($fruit_array); $i++) {
if($fruit_array[$i] == substr($stored_fruits)) {
echo "fruit match";
}
}
$fruits
是一串水果,取自用户输入的内容,$stored_fruits
访问数据库中已有的水果串。 $fruits
是一个看起来像["Apple", "Pineapple", "Strawberry"]
的数组。 $stored_fruits
看起来像是:"Strawberry Orange Banana"
。我想将数组中的每个元素与上传的水果进行比较。如果有匹配,我希望它回显匹配。有任何想法吗?感谢。
答案 0 :(得分:0)
您需要获取包含查询结果的行。然后你可以使用explode()
分隔水果,使用空格作为分隔符,并比较两个数组,看看它们是否有任何共同的结果。
$results = mysqli_query($this->con, "SELECT fruits FROM fruit_table");
$row = mysql_fetch_assoc($results);
$stored_fruits = explode(" ", $row['fruits']);
$fruit_array = explode(", ", $fruits);
if (!empty(array_intersect($stored_fruits, $fruit_array))) {
echo "fruit match";
}
但最好将每个水果放在桌子的一个单独的一行中。然后你可以用循环获取所有的水果:
$results = mysqli_query($this->con, "SELECT fruit FROM fruit_table");
$stored_fruits = array();
while ($row = mysql_fetch_assoc($results)) {
$stored_fruits[] = $row['fruit'];
}