2015-12-23 29 views
1

只有一個「是」批准時,所有內容都會顯示正常。 (由於管理區域中的代碼,是/否認可是不可能的)。管理員已批准批准後在日期之間顯示圖像

如果在同一日期範圍內有兩個日期,並且行數= 0,則顯示「FILLER IMAGE」。我希望只有YES的批准才能顯示和忽略NO。

我認爲我需要做的是在檢查匹配日期的數據庫後查詢數組是否符合要求,並查看數組是否符合批准。

我可能是錯的,但如果這是正確的,最好如何實施。

感謝

 <?php 



include('mysql_connect.php');{ 

    $location='1'; 

    } 
    { 
$resultSet = $mysqli->query("SELECT * FROM advert WHERE adloc = '$location'"); 


if($resultSet->num_rows > 0){ 
    while($rows = $resultSet->fetch_assoc()) 
    { 
     $id = $rows ['id']; 
     $start = $rows ['start']; 
     $end = $rows ['enddate']; 
     $business = $rows ['business']; 
     $email = $rows ['email']; 
     $tel = $rows ['tel']; 
     $web = $rows ['web']; 
     $advert = $rows ['image']; 

    $Date = date('Y-m-d'); 
    $Date=date('Y-m-d', strtotime($Date));; 
    $DateBegin = date('Y-m-d', strtotime("$start")); 
    $DateEnd = date('Y-m-d', strtotime("$end")); 
} 
} 
if (($Date > $DateBegin) && ($Date < $DateEnd)) 
    { 
$sql = "SELECT * FROM advert WHERE id = $id AND approval = 'Y'"; 
$sth = $mysqli->query($sql); 



if($sth->num_rows == 0){echo "FILLER IMAGE"; 
} 
else 
{ 

$result=mysqli_fetch_array($sth); 
$output= '<img src="data:image/jpeg;base64,'.base64_encode($result['image']).'"/>'; 

    } 
    } 
} 
?> 

<?php 
echo "$output"; 
?> 
+0

你可以在你的SQL查詢中CASE子句中使用BETWEEN條件! – MTroy

+0

你可以編輯你的問題,以便用戶可以理解你的問題。 –

+0

我將@Nouphal.M –

回答

1

其實你錯了,因爲你之間的同時

您可以過濾日期直接取最後一個ID取出,並從您批准的SQL查詢一樣,

使用BETWEEN()運營商和CASE statement

SELECT 
    (CASE WHEN 
    approval = 'Y' and 
    (NOW() BETWEEN start AND enddate) 
     THEN 1 ELSE 0 
) as approved, * 
FROM advert 
WHERE 
    adloc = '$location' 
LIMIT 1 

如果你只需要一個結果,他人的贊同distingished!=「Y」

然後就

SELECT 
* 
FROM advert 
WHERE 
    adloc = '$location' AND 
    (NOW() BETWEEN start AND enddate) AND 
    approval = 'Y' 
LIMIT 1 

這將在批准Y和日期範圍之間返回一個包含1別名字段或0,如果不是爲別人記錄

現在你的代碼,將只包含一個查詢

$query = "query "; 
$smt = $mysqli->query($query); 
if($smt->num_rows > 0) 
{ 
    $result=mysqli_fetch_array($smt); 
    $output= '<img src="data:image/jpeg;base64,'.base64_encode($result['image']).'"/>'; 
}else 
    // not results 
+0

Thanks @MTroy。完全不熟悉這種技術。只是試圖讓我的頭在附近。這應該在我的代碼中使用?我看到有沒有變數的開始和結束? –

+0

你不需要做多個查詢,那麼只需測試num行> 0並獲取圖像,否則你的其他動作(查找更新的代碼) – MTroy

+0

哦,sry,沒有看到你只想要一個結果,然後我更新我的代碼 – MTroy

相關問題