如何查看数据库中的结果是不是与我在数组中的值匹配
Posted
技术标签:
【中文标题】如何查看数据库中的结果是不是与我在数组中的值匹配【英文标题】:How to see if a result from the database matches my values in the array如何查看数据库中的结果是否与我在数组中的值匹配 【发布时间】:2014-07-03 19:00:38 【问题描述】:大家好,一段时间以来,我一直在努力解决这个问题。我想要实现的是从我的数据库中获取一些数据,将其存储在一个变量中并将其与存储在我的数组中的值进行比较。
问题是它不断返回错误的输出。从下面的 SQL
查询中,mysql_result $total_cat
返回值 16
。存储此值后,代码将输出echo "this value is in the array";
,但它不起作用。
我哪里错了?
这是我的代码
创建一个数组来存储我的值
$lunchbox = array(12,13,14,16,20,24,33,32);
设置我的 SQL 数据库查询
$query = mysql_query("SELECT * FROM table WHERE id = '$the_persons_id'");
获取我的结果并将其存储在变量中
$total_cat = mysql_result($query,0,"category_id");
清理我的结果
$total_cat = str_replace("|", " ", $total_cat);
检查我的 sql 结果是否与我存储在数组中的任何结果匹配
if (in_array($total_cat, $lunchbox))
echo "this value is in the array";
else
echo "this value is not in the array";
【问题讨论】:
您的意思是说表中只有一列的查询参数值为 16?很好奇,因为我看到你在做select *
category_id 在数据库中的样子如何?您的“清理”让我假设,它可能看起来像 1|2|16 ...因此,您实际上会通过“清理”它来生成“1 2 16”,它不在数组中...
旁注:$total_cat = str_replace("|", " ", $total_cat);
您正在将|
替换为空格,并且您的数组不包含任何空格。在这样做时,您需要使用$total_cat = str_replace("|", "", $total_cat);
或使用trim()
。
表格中有不止一列,但我只是在测试我在屏幕上显示的第一个值
找到了答案,感谢您的帮助。我需要做的就是使用 php 函数 substr 所以它看起来像这样 $total_cat = substr($total_cat, 1);
echo "$total_cat";
并且结果将显示为 16 使我的最终结果评估为 true 导致我的值在我的数组中找到。 :)
【参考方案1】:
我找到了答案。
这是我的代码:
创建一个数组来存储我的值
$lunchbox = array(12,13,14,16,20,24,33,32);
设置我的 SQL 数据库查询
$query = mysql_query("SELECT * FROM table WHERE id = '$the_persons_id'");
获取我的结果并将其存储在变量中
$total_cat = mysql_result($query,0,"category_id");
清理我的结果
$total_cat = str_replace("|", " ", $total_cat);
这将输出为9 16
现在我们运行 php 函数 substr 来删除字符串的第一部分。
$total_cat = substr($total_cat, 1);
这将为我们提供16
的输出
现在我们检查我的 SQL 结果是否与我存储在数组中的任何结果匹配
if (in_array($total_cat, $lunchbox))
echo "this value is in the array";
else
echo "this value is not in the array";
它做了什么,现在我的 IF
语句计算为 TRUE
并且代码已完成。
感谢所有帮助团队。
快乐编码:)
【讨论】:
如果是解决方案,请接受您的答案。 :)以上是关于如何查看数据库中的结果是不是与我在数组中的值匹配的主要内容,如果未能解决你的问题,请参考以下文章