Php 如何对给定任务使用while条件?
我正在使用日期获取用户详细信息Php 如何对给定任务使用while条件?,php,mysql,sql,Php,Mysql,Sql,我正在使用日期获取用户详细信息 if(date("d")==1) { $time = "m"; } if(date("l")=="Friday") { $time = "w"; } $time = "d"; $sql=mysql_query("select user from table_users where $reprt=".$time ."); while($row=mysql_fetch_Array($sql) { $sql==mysql_query("s
if(date("d")==1) {
$time = "m";
}
if(date("l")=="Friday") {
$time = "w";
}
$time = "d";
$sql=mysql_query("select user from table_users where $reprt=".$time .");
while($row=mysql_fetch_Array($sql) {
$sql==mysql_query("select * from table_register where $user="$row[0]");
}
这里,当dated==1时,我想选择同时使用d和m的语句,这是怎么可能的。假设您有一个字符串。命名为S。您还拥有一个字符串 查询=从表中选择*寄存器,其中 你要做的是
query = "select * from table_register where "
if(date("d")==1){
s = "$report_frequency = \"m\" OR $report_frequency = \"d\" ";
}
elseif(date("l")=="Friday"){
s = "$report_frequency = \"m\" ";
}
else{
s = "$report_frequency = \"d\" ";
}
query = query.s;
$sql=mysql_query(query);
...
换句话说,在使用$time=d的代码中使用字符串动态构造查询字符串;在IFs之外,因此您将始终拥有$time=d,因此将代码替换为:
if(date("d")==1){
$time = "m or $reprt='d'";
}
if(date("l")=="Friday"){
$time = "w";
}
$sql=mysql_query("select user from table_users where $reprt=".$time);
while($row=mysql_fetch_Array($sql){
$sql=mysql_query("select * from table_register where $user='$row[0]'");
}
让我们看看我是否做对了。。。如果我理解正确,您应该只在一个查询中执行此操作 select*from table_register,其中$user在select user from table_users中,其中$reprt=.$time 将是一个比您设置的查询更好的查询。。。仍然不是最好的,但至少只有一个查询 对于实际问题,您应该将代码更改为以下内容
if(date("d")==1)
{
$time = "m";
}
if(date("l")=="Friday")
{
$time = "w";
}
if($time == "m") // this is when you want to also search for d right?
{
//we do what I suggested earlier with a slight change
mysql_query("select * from table_register where $user in (select user from table_users where $reprt=".$time." OR $reprt=d)");
}
else
{
//we do what I suggested earlier
mysql_query("select * from table_register where $user in (select user from table_users where $reprt=".$time.")");
}
希望这会有所帮助。那么,当日期==1时,您希望report_frequency有两个值?我希望这不是PHP文件中的实际代码,因为它确实有很多语法错误,因为这不是从您实际尝试的代码中复制和粘贴的-这不会运行,正如@Stardev所说。问问题时请小心。@riz-很高兴你得到了答案,但最好也感谢帮助你的人,并适当地回答其他答案和评论。人们已经尽力帮助您,所以您应该回过头来:。您从OP复制了三个语法错误-两个缺少的分号和一个不正确的==。这是伪代码吗?PHP中的变量需要一个美元前缀,因此,这种响应是相当误导的。我刚刚编辑了问题中的代码。我应该多花点时间回答。。。很抱歉