2014-10-29 2 views
0

Я пытаюсь автоматически исключить записи в моем блоге с отрицательными голосами (< 0). Ниже приведен код, который я использую, но он не исключает, продолжает показывать блоги с отрицательными голосами. (На государственной системе в настоящее время, так что не может ответить, пока позже, но, спасибо за помощь!)Вложение If Statement for Foreach

$id = $_GET['id']; // get initial query from index 

      $table = 'txt'; 
      $item = 'vt_' .$table.($_GET['id']); 

      $db = new PDO('mysql:host=localhost;dbname=db;charset=utf8', 'user', 'pass'); 

$sql = $db->query('SELECT * from txt ORDER BY ID DESC LIMIT 10 OFFSET '.$browse); 


$stmt = $db->prepare('SELECT vote FROM voting where item = ?'); 
($stmt->execute(array($item))); 
($vrow = $stmt->fetch(PDO::FETCH_ASSOC)); 

      foreach ($sql as $row) { 
      if ($vrow['vote'] < 0){ 
       echo "<b>Update:</b><br>"; 
       echo "<font color = 'red'><i>", "This Update,", "</i></font>", "<br>"; 
       echo "By: ", ($row['username']), "<br>"; 
       echo "At: ", ($row['timestamp']), "<br>"; 
       echo "<font color = 'red'><i>Has been</i> <b>Voted Out</b></font>", "<br>"; 
       echo "<span class='loginnotreq'>", "<b>", ($row['edited']), "</b>", "&nbsp;", "&nbsp;", "<span 

class='loginreq'>", "<b>", ($row['locked']), "</b>", "</span>", "</span>"; 
       echo "&nbsp;", "&nbsp;"; 
       if($row['locked'] !='locked'){ 
       echo "&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

&nbsp;&nbsp;<a href ='edit-post-login.php?pid=".$row['id']."&login=true&edit=true' method='post' id ='form-id' 

data-ajax='false' '><b><span class = 'neutral'>edit post</span></b></a>";} 

       echo "&nbsp;", "&nbsp;"; 


       echo "<div class='vot_updown2' id=" . 'vt_' .$table.($row['id']). "></div><br>";    
       } 
       else { 
       echo "<b>Update:</b><br>"; 
       echo ($row['message']), "<br>"; 
       echo "By: ", ($row['username']), "<br>"; 
       echo "At: ", ($row['timestamp']), "<br>";    
       echo "<span class='loginnotreq'>", "<b>", ($row['edited']), "</b>", "&nbsp;", "&nbsp;", "<span 

class='loginreq'>", "<b>", ($row['locked']), "</b>", "</span>", "</span>"; 
       echo "&nbsp;", "&nbsp;"; 
       if($row['locked'] !='locked'){ 
       echo "&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

&nbsp;&nbsp;<a href ='edit-post-login.php?pid=".$row['id']."&login=true&edit=true' method='post' id ='form-id' 

data-ajax='false' '><b><span class = 'neutral'>edit post</span></b></a>";} 

       echo "&nbsp;", "&nbsp;"; 


       echo "<div class='vot_updown2' id=" . 'vt_' .$table.($row['id']). "></div><br>"; 
       } 

       } 

ответ

0

простейшими ответа (без копирования и вставки весь код):

foreach($row as $post) { 
    if($post['rating'] >= 0) { 
    //do something 
    } 
} 
1

Вы может просто изменить ваш запрос возвращает только строки с голосов, равным или более нуля:

Например:

SELECT vote FROM voting where item = ? and vote >= 0 

Таким образом, вам не понадобится условие в вашем цикле. Вам понадобится раздел, который имеет дело с голосами больше или равно нулю.

0

Синтаксический значение для INT как, когда речь идет из БД, как правило, в виде строки :

if ((int)$vrow['vote'] < 0){ ...