2016-11-23 50 views
0

我想使用,如果查找查詢條件我不能這樣做,任何人都可以建議我。我用mongo數據庫使用php-我如何使用,如果條件與查找查詢

<?php 
    $realtime = date("2016-09-22 12:55:24"); 
    $mongotime = New DateTime($realtime); 
    $mt = $mongotime->getTimeStamp(); 
    var_dump($mt); 
    //database Connection 
    $server= mongodb://localhost:27017"; 
    $c = new Mongo($server); 
    $db = $c->dbname; 
    echo "Database selected"; 

    //collection selection 
    $collection = $db->collection; 
    echo "Collection selected"; 
    $cursor = $collection->find(); 
    //If Condition 
    if (($realtime-timestamp)<=5) { 
    if (channel<=11) { 
     if (channel>=36) { 
     echo 「dual band」; 
     } 
    } 
    if (channel>=36) { 
     if (channel<=11) { 
     echo 「dual band」; 
     } 
    } else { 
     echo 「Single band」; 
    } 
    foreach ($cursor as $doc) { 
     var_dump($doc); 
    } 
    } 
?> 
+2

$ channel/channel even set ...哪裏?你不能在php中使用'if(channel)',你將不得不使用'if($ channel)',即一個美元符號來給變量名加前綴。 – Stuart

+0

頻道是我的數據庫中的列,我需要檢查頻道的數量是否小於11或大於36.我使用$,值是用戶定義的。 –

回答

0

在PHP中,我們使用一般fetch_array()查詢例如,選擇*表ID = 1
那麼結果將ID = 1和值。上面在你的代碼中提到查詢數據庫連接和數據庫連接看起來像php活動數據庫操作使用codeigniter php框架。需要把結果的查詢,然後把你如上所述。

+0

我與mongo db連接因此,在mongo中選擇查詢的地方,我們需要使用find。直到連接部分和收集選擇它正常工作。我能夠獲取整個或特定部分的數據庫,但是當我使用如果條件我無法獲取。 –

0

我認爲有一組簡單的操作可以用來弄清楚這裏發生了什麼。

Debug your PHP

同時,試試這個

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

$mt = strtotime("2016-09-22 12:55:24"); 
var_dump($mt); 

//database Connection 
$server= mongodb://localhost:27017"; 
$c = new Mongo($server); 
$db = $c->dbname; 
echo "Database selected"; 

//collection selection 
$collection = $db->collection; 
echo "Collection selected"; 
$cursor = $collection->find(); 

if (empty($cursor)) die('cursor is empty, we found nothing :('); 
// hmm, what did we find? what is it's structure? 
var_dump($cursor); 


// Loop over cursor in collection that you found 
foreach ($cursor as $doc) { 

    //If Condition where you are focused on $doc (current member of cursor) 
    if (($mt - $doc['timestamp'])<=5) { 
    if ($doc['channel'] <= 11) { 
     if ($doc['channel'] >= 36) { 
     echo 「dual band」; 
     } 
    } 
    if ($doc['channel'] >= 36) { 
     if ($doc['channel'] <= 11) { 
     echo 「dual band」; 
     } 
    } else { 
     echo 「Single band」; 
    } 
    } 
} 
+0

timestamp是數據庫中的一個列表。所以我在這裏做的是我把數據和轉換成unix格式,然後比較這個日期與我在數據庫中的日期,如果差異小於或等於5,那麼我檢查通道數據。所以我選擇收集的部分它正常工作,沒有條件也我能夠獲取數據,但如果使用條件,如果工作不正常。 –

+0

查看我的更新回答 – WEBjuju