2015-12-23 33 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

相关问题