Подсчитать общее количество строк из нескольких таблиц, созданных Codeigniter -> list_tables () - PullRequest
0 голосов
/ 04 марта 2020

Требуется подсчет общего количества строк, сгенерированных из Codeigniter list_tables

$sqlx = $this->db->list_tables();
foreach ($sqlx as $table) { 
$counteachrow = $this->db->count_all($table);
echo $table; | echo $counteachrow; }

//Result for each table
| Name | Count |
-----------------
| TblA |  25   |
| TblB |  25   |
| TblC |  20   |
----------------
Total = 70 //Expected value

Как получить Total = 70 из приведенного выше кода, большое спасибо

Ответы [ 4 ]

0 голосов
/ 04 марта 2020

Надеюсь, что это поможет num_rows () функция

    $result = $this->db->get('TABLE_NAME'); 
    echo $result->num_rows(); // To count result 
    print_r($result->result()); // To get total data 
0 голосов
/ 04 марта 2020
$sqlx = $this->db->list_tables();
$html = "<table>
         <tr>
             <th>Table Name</th>
             <th>Rows</th>
         </tr>";

$finalCount = 0;
foreach ($sqlx as $table) {                 
   $counteachrow = $this->db->count_all($table);                    
   $html .= "<tr>
                 <td>".$table."</td>
                 <td>".$counteachrow."</td>
             </tr>";  
   $finalCount += $counteachrow;
}
$html .= "</table><br/>";
echo $html;
echo "Total = ".$finalCount."<br/>";
exit;
0 голосов
/ 04 марта 2020

вы можете сделать это двумя способами: сначала просто кодируйте, как показано ниже:

$tables =  $this->db->list_tables();  // given all table from data base
$counted_data = 0;

   foreach ($tables as $key => $value) {
       $val =  $this->db->count_all($value);  // count all data from related table
       $counted_data += $val;  // add to total count
   }

echo $counted_data;  // desire reult you want

Надеюсь, это было полезно для вас.

0 голосов
/ 04 марта 2020

Вы можете использовать этот запрос

выбрать SUM (table_rows) в качестве 'Count' из information_schema.tables

где table_schema = 'MyDb' И TABLE_NAME IN ('table1', ... )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...