我是如此坚持这一点,非常感谢任何帮助。 我有一个带有一些选择选项的表单,我试图让它查询我的数据库中的一些日期行,以查看明天,下周和下个月会面的条目。我已经得到了mysql命令在PHP管理员工作正常但我无法弄清楚如何让他们在我的形式在PHP中工作。我应该补充一点,所选的变量放入一个数组中,我无法弄清楚 where 和如何来编写MYSQL查询。
我想使用的mysql命令是:
**NEXT WEEK**
SELECT start FROM `tablename`
WHERE START = DATE_ADD( CURDATE( ) , INTERVAL( 9 - IF( DAYOFWEEK( CURDATE( ) ) =1, 8, DAYOFWEEK( CURDATE( ) ) ) ) DAY )
**NEXT MONTH**
SELECT start FROM `tablename` WHERE start BETWEEN DATE_SUB(LAST_DAY(DATE_ADD(NOW(), INTERVAL 1 MONTH)),INTERVAL DAY(LAST_DAY(DATE_ADD(NOW(), INTERVAL 1 MONTH)))-1 DAY) AND LAST_DAY(DATE_ADD(NOW(), INTERVAL 1 MONTH))
以下是表格:
<select id="start" name="start" class="form-control">
<option value="" disabled selected>When</option>
<option value="<?php echo date("Y-m-d");?>">Today</option>
<option value="<?php ------what goes here?---------?>">Tomorrow</option>
<option value="<?php-----what goes here?-----------?>">Next Month</option>
</select>
以下是问题代码:
$whereClauses = array();
if (! empty($_GET['start'])) $whereClauses[] ="(start='".mysqli_real_escape_string($connection,$_GET['start'])."'";
答案 0 :(得分:2)
我建议您不要将日期或长字符串作为选择表单的值。调试会变得令人沮丧。相反,请使用简单的密钥,例如:
<select id="start" name="start" class="form-control">
<option value="" disabled selected>When</option>
<option value="today">Today</option>
<option value="tomorrow">Tomorrow</option>
<option value="next_month">Next Month</option>
</select>
现在,您可以在PHP中轻松完成:
$whereClauses = array();
if (!empty($_GET['start']))
if ($_GET['start'] == "today") {
$whereClause[] = "START = CURDATE()";
}
else if ($_GET['start'] == "tomorrow") {
$whereClause[] = "START = DATE_ADD( CURDATE( ) , INTERVAL( 9 - IF( DAYOFWEEK( CURDATE( ) ) =1, 8, DAYOFWEEK( CURDATE( ) ) ) ) DAY )";
}
else if ($_GET['start'] == "next_month") {
$whereClause[] = "start BETWEEN DATE_SUB(LAST_DAY(DATE_ADD(NOW(), INTERVAL 1 MONTH)),INTERVAL DAY(LAST_DAY(DATE_ADD(NOW(), INTERVAL 1 MONTH)))-1 DAY) AND LAST_DAY(DATE_ADD(NOW(), INTERVAL 1 MONTH))";
}