【发布时间】: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 导致我的值在我的数组中找到。 :)