2015-06-02 4 views
0

Как подсчитать количество строк, где мой идентификатор расположен в одном из fileds и что поле JSON объект:Как подсчитать количество строк, JSON

{ 
    "Monday":{"1":"15","2":"27","3":"74","4":"47","5":"42","6":"53"}, 
    "Tuesday":{"1":"11","2":"28","3":"68","4":"48","5":"43","6":"82"}, 
    "Wednesday":{"1":"13","2":"29","3":"69","4":"49","5":"44","6":"54"}, 
    "Thursday":{"1":"14","2":"30","3":"70","4":"50","5":"45","6":"55"}, 
    "Friday":[] 
} 


$getMenus = $db->next_record($db->query("SELECT COUNT(*) as total, product_menu_meals FROM product_menus WHERE 1")); 

$getMeals = (json_decode($getMenus['product_menu_meals'], true)); 
if(in_array($mainMeal['meal_id'], array_filter($getMeals['Monday'])) || 
in_array($mainMeal['meal_id'], array_filter($getMeals['Tuesday'])) || 
in_array($mainMeal['meal_id'], array_filter($getMeals['Wednesday'])) || 
in_array($mainMeal['meal_id'], array_filter($getMeals['Thursday'])) || 
in_array($mainMeal['meal_id'], array_filter($getMeals['Friday']))){echo $getMenus['total'];}; 

Пример моего ID = 15, и я могу см., что в первой группе в понедельник я вижу 15, это означает, что есть 1 строка с этим значением. Теперь у меня есть 200 строк, и только в 150 строк, у меня есть ID = 15, так что я хотел бы считать и номер дисплея 150


> <?php 
>      $getMenus = $db->next_record($db->query("SELECT COUNT(*) as total, product_menu_meals FROM product_menus WHERE 1")); 
>      
>      $getMeals = (json_decode($getMenus['product_menu_meals'], true)); 
>      
>      if(in_array($mainMeal['meal_id'], array_filter($getMeals['Monday'])) || 
>      in_array($mainMeal['meal_id'], array_filter($getMeals['Tuesday'])) || 
>      in_array($mainMeal['meal_id'], array_filter($getMeals['Wednesday'])) || 
>      in_array($mainMeal['meal_id'], array_filter($getMeals['Thursday'])) || 
>      in_array($mainMeal['meal_id'], array_filter($getMeals['Friday']))){echo $getMenus['total'];}; 
>     ?> Menus 
+2

Можете ли вы объяснить это немного больше или было бы здорово, если вы можете опубликовать больше кода, я имею в виду, откуда вы получите это жало и т. д. –

+0

У меня есть таблица в MySQL с полями, 1 из полей получило json-объект, указанный выше для каждой строки. Теперь я хотел бы подсчитать количество строк, которые есть, пусть говорят, что номер 15 в объекте json –

+0

кажется сложным :) Postgress легко, но не в MySQL! –

ответ

0
<?php 
         $MenusArray = array(); 
         $arrayMenus = array(); 

         $codeQuery = $db->query("SELECT * FROM product_menus;"); 
         $codeQuery2 = "SELECT COUNT(*) as total FROM product_menus WHERE"; 
         $i = 0; 
         while($followingdata = $db->next_record($codeQuery)){ 

         $arrayMenus[] = (json_decode($followingdata['product_menu_meals'], true)); 

         if(in_array($mainMeal['meal_id'], array_filter($arrayMenus[$i]['Monday']))){$codeQuery2 .= " product_menu_id = '".$followingdata['product_menu_id']."' OR";} 
         if(in_array($mainMeal['meal_id'], array_filter($arrayMenus[$i]['Tuesday']))){$codeQuery2 .= " product_menu_id = '".$followingdata['product_menu_id']."' OR";} 
         if(in_array($mainMeal['meal_id'], array_filter($arrayMenus[$i]['Wednesday']))){$codeQuery2 .= " product_menu_id = '".$followingdata['product_menu_id']."' OR";} 
         if(in_array($mainMeal['meal_id'], array_filter($arrayMenus[$i]['Thursday']))){$codeQuery2 .= " product_menu_id = '".$followingdata['product_menu_id']."' OR";} 
         if(in_array($mainMeal['meal_id'], array_filter($arrayMenus[$i]['Friday']))){$codeQuery2 .= " product_menu_id = '".$followingdata['product_menu_id']."' OR";} 

         $i++; 
         } 
         $codeQuery2 = substr($codeQuery2,0,-2); 

         $queryMenus = $db->next_record($db->query($codeQuery2)); 

         echo $queryMenus['total']; 

?> Menus 
+0

Исправлено мной! –

Смежные вопросы