2011-02-16 2 views
0
if($_SESSION['periode']){ 

    if($_SESSION['periode'] == 'Today'){ 
    $xdate = time() - (1 * 24 * 60 * 60); 
    $ydate = time(); 
    } 
    if($_SESSION['periode'] == 'Yesterday'){ 
    $xdate = time() - (2 * 24 * 60 * 60); 
    $ydate = time() - (1 * 24 * 60 * 60); 
    } 
    if($_SESSION['periode'] == 'This week'){ 
    $xdate = time() - (7 * 24 * 60 * 60); 
    $ydate = time() - (2 * 24 * 60 * 60); 
    } 
    if($_SESSION['periode'] == 'Older'){ 
    $xdate = 0; 
    $ydate = time() - (7 * 24 * 60 * 60); 
    } 
    else{ 
    $xdate = 0; 
    $ydate = time(); 
    } 
} 
else { 
$xdate = 0; 
$ydate = time(); 
} 

$tweets = mysql_query("SELECT * FROM messages WHERE content LIKE '%$search%' 
AND content LIKE '%$region%' 
AND time BETWEEN $xdate AND $ydate ORDER BY id DESC LIMIT 10"); 

問題点:すべてのメッセージは、$ xdateと$ ydateの間だけでなく、データベースから選択されています。'if statements'のPHP time()がMySqlクエリに渡されませんか?

ただし、私が手動で$ _SESSION ['periode']を定義しない限り、else文でUNIXの期間を記入すると、正しいメッセージがDBから取り出されます。どうしたの??他にこれはちょうど場合は、上記に関連しているので、$ _SESSION [「periode」]は、「古い」ではない場合

答えて

3
if($_SESSION['periode'] == 'Older'){ 
    $xdate = 0; 
    $ydate = time() - (7 * 24 * 60 * 60); 
    } 
else{ 
    $xdate = 0; 
    $ydate = time(); 
    } 

このコードは常に0に(時間の$ ydateを設定)と$ xdateます。 あなたはelseifを使用する必要があるのではなく

コードが

if($_SESSION['periode']){ 

    if($_SESSION['periode'] == 'Today'){ 
    $xdate = time() - (1 * 24 * 60 * 60); 
    $ydate = time(); 
    } 
    elseif($_SESSION['periode'] == 'Yesterday'){ 
    $xdate = time() - (2 * 24 * 60 * 60); 
    $ydate = time() - (1 * 24 * 60 * 60); 
    } 
    elseif($_SESSION['periode'] == 'This week'){ 
    $xdate = time() - (7 * 24 * 60 * 60); 
    $ydate = time() - (2 * 24 * 60 * 60); 
    } 
    elseif($_SESSION['periode'] == 'Older'){ 
    $xdate = 0; 
    $ydate = time() - (7 * 24 * 60 * 60); 
    } 
    else{ 
    $xdate = 0; 
    $ydate = time(); 
    } 
} 
else { 
$xdate = 0; 
$ydate = time(); 
} 
+0

でなければならない場合、私は昨日/今週/コースの古いためelseifを使用する必要があります!うわー、私はそれを見ていない...ありがとう!! –

関連する問題