2016-03-03 28 views
0
<?php 

$str = get_the_ID(); //this is getting id in wordpress index.php page 
$value = 0; 
$count = 0; 
$sql1 = "SELECT * FROM wphg_mr_rating_item_entry where post_id='" . $str . "'"; 
$result1 = $wpdb->get_results($sql1) or die(mysql_error()); 

foreach ($result1 as $results1) { 
    //if(!empty($results1->rating_item_entry_id)) { 
    if (!$wpdb->show_errors($results1->rating_item_entry_id)) { 

     $sql = "SELECT * FROM wphg_mr_rating_item_entry_value where rating_item_entry_id='" . $results1->rating_item_entry_id . "'"; 
     $result = $wpdb->get_results($sql) or die(mysql_error()); 

     foreach ($result as $results) { 
      $sum = $results->value . "<br/>"; 
      $sum1 = $results->value . "<br/>"; 
      //$sum[]= array_push($sum,$value); 
      //echo count($sum+=$value); 
      //print_r($value); 
      $count+=count($sum1); 
      $value+= $sum; 
     } 
    } else { 

     break; 
    } 
} 


echo $value; 
echo $count; 
$value = $value/$count; 
?> 

當$ str =「this is id」時,我們正在使用根據匹配來獲取數據。 例如:像你有id = 26,其中數據在表中找到這工作正常。 但如果這裏你的帖子ID數據沒有在數據庫中找到一切搞砸了。如何在數據庫中未找到值時斷開循環

請幫助我,我想在這裏當數據庫表中的數據可用時運行成功。但如果數據不符合id循環中斷,並且還繼續下一個id。

thnaks

+0

什麼是var_dump($ result1)的輸出;何時找不到數據? –

+0

只要看看'$ result1'的輸出應該是什麼,並且在'foreach()'之前和'echo'之後放置一個'if()'條件,條件與結果匹配。我猜你會得到一些數組,所以你可以檢查它是否爲空:'if(!empty($ results1)){...}' –

+0

是的,這是越來越數組值如何檢查數組值不等於null –

回答

0
<?php 
$str = get_the_ID() ; 
$value=0; 
$count=0; 
$sql1="SELECT * FROM wphg_mr_rating_item_entry where post_id='".$str."'"; 
    $sql2= $wpdb->get_row($wpdb->prepare("SELECT * FROM wphg_mr_rating_item_entry where post_id= %s",$str)); // take second condition here before reaching to loop and check your condition . 
    //echo $sql1->post_title; 
    if($sql2!=''){ // if value not equal to null then going for this logic working fine for me. 

     $result1 = $wpdb->get_results($sql1) or die(mysql_error()); 
     //var_dump($result1); 
     foreach($result1 as $results1){ 
    //if(!empty($results1->rating_item_entry_id)) { 
    //if(!$wpdb->show_errors($results1->rating_item_entry_id)) { 

     $sql="SELECT * FROM wphg_mr_rating_item_entry_value where rating_item_entry_id='".$results1->rating_item_entry_id."'"; 
     $result = $wpdb->get_results($sql) or die(mysql_error()); 

    foreach($result as $results){ 
     $sum = $results->value."<br/>"; 
     $sum1 = $results->value."<br/>"; 
     //$sum[]= array_push($sum,$value); 
      //echo count($sum+=$value); 
      //print_r($value); 
     $count+=count($sum1); 
      $value+= $sum; 
    //} 
    } 
    } 



    //echo $value; 
//echo $count; 
$value=$value/$count; 
    } 
?> 

這裏採取第二個條件達到循環之前,檢查你的病情。 如果值不等於null,那麼這個邏輯對我來說工作得很好。