2013-02-14 122 views
0

我有一个选择框,其中选项值作为查询的变量。使用like语句与%

<option value="1">Monday</option> 

我们感兴趣的查询的部分是这样的:

AND phpvms_schedules.daysofweek LIKE '%{$day}%'"; 

LIKE '%{$day}%'是期权价值所作的可变。基本上,它指定一个给定的日期并检查option value存在daysofweekdb_schedules表中。 但是,我想添加更多的数字到选项值,基本上搜索表中的所有日程表。

<option value="1234560">All Days</option> 

如果我这样做,我只是没有结果。

我该如何做这项工作?

回答

2

查询前补充一点:

if ($day == 1234560) 
    $day = ''; 

这将使WHERE LIKE '%%'和将返回所有工作日。

+0

谢谢,很好地工作,但是“所有Days'选项的预期输出是输出所有的时间表,虽然它只有那些确切的价值'1234560'。我怎样才能做到这一点? – zzwyb89 2013-02-14 15:05:09

+0

您的数据库设计可能会有很大改进。考虑使用JOIN以及连接到仅包含一周的模式的额外数据库。那么你可以有7行满周的情况下,你根本不必使用LIKE。 – 2013-02-14 17:43:57

0

你可以像“1”,“2”,值“3”,然后进行查询

AND phpvms_schedules.daysofweek In (%{$day}%) 
+2

你不会在'IN'中使用'%'。 – 2013-02-14 15:07:11