Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何对给定任务使用while条件?_Php_Mysql_Sql - Fatal编程技术网

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中的变量需要一个美元前缀,因此,这种响应是相当误导的。我刚刚编辑了问题中的代码。我应该多花点时间回答。。。很抱歉