-3

日付を使用してユーザーの詳細を取得しています

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]");
}

ここで、(date("d")==1)dとmの両方を使用してステートメントを選択したい場合、それはどのように可能ですか。

4

3 に答える 3

0

あなたが文字列を持っているとしましょう。S という名前を付けます。また、string query = "select * from table_register where " もあります。

あなたがしなければならないことは

 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);
    ...

つまり、Strings を使用してクエリ文字列を動的に構築します。

于 2012-06-05T17:53:02.510 に答える
0

$time = "d";IF の外で使用しているコードでは、常に が$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]'");
}
于 2012-06-05T17:53:11.107 に答える
0

これが正しいかどうか見てみましょう...私が正しく理解している場合、これは1つのクエリでのみ行う必要があります

select * from table_register where $user in (select user from table_users where $reprt=".$time)

設定したものよりもはるかに優れたクエリになります...それでも最高ではありませんが、少なくとも1つのクエリのみです。

実際の質問に対しては、コードを次のように変更するだけです

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.")");
}

お役に立てれば。

于 2012-06-05T17:56:30.607 に答える