Maison > Article > développement back-end > Comment s'assurer que les données statistiques en php sont correctes
L'exemple de cet article décrit la fonction de données statistiques implémentée par PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Les statistiques consistent à intégrer des données de base.
En utilisant SQL, il existe un groupe par fonction, une fonction de comptage, un ordre par fonction, etc.
sql effectuera une analyse statistique sur les données collectées.
Dans des circonstances normales, les données obtenues après le traitement SQL doivent être organisées via la logique PHP.
Affichage à la réception dans un certain format. (Apprentissage recommandé : Programmation PHP du débutant à compétent)
sont généralement affichés sous forme de tableaux, ce qui est aussi la notion de structure de données.
En regardant cette image, la structure de base est probablement
{nombre de lignes en ligne, nombre total de commandes émises, nombre total d'approbations, moyenne totale par personne, taux d'approbation total , {(numéro de siège 1, numéro de travail 1, nombre de commandes émises 1, nombre d'expéditions 1, taux d'approbation des commandes 1), (Agent 2, numéro de travail 2, nombre de commandes 2, nombre d'expéditions 2, taux d'approbation des commandes 2 )}}
Si vous utilisez PHP pour afficher la structure ci-dessus, elle sera facile à gérer.
Tout d'abord, obtenez les données de traitement initiales via SQL
Ne sous-estimez pas ces données de traitement initiales si elles sont bien traitées, ce sera très pratique.
SELECT a.user,count(order_id) as subcount,b.passcount,c.full_name from vicidial_order a LEFT JOIN (SELECT user,count(order_id) as passcount from vicidial_order where time > UNIX_TIMESTAMP('2015-11-7') and user_group = 'TeamOne' and verifysta = 'Y' GROUP BY user ) b on a.user = b.user LEFT JOIN vicidial_users c on a.user = c.user where time > UNIX_TIMESTAMP('2015-11-7') and a.user_group = 'TeamOne' GROUP BY a.user ;
Idée SQL, classez la table de commande et classez-la par utilisateur.
Obtenez le nombre total de soumissions de commandes count() pour chaque personne ce jour-là.
Obtenez également le nombre total de commandes approuvées pour chaque personne et filtrez par où.
Ensuite, associez et interrogez d'autres données associées.
Avec ces données de base, d'autres données connexes peuvent être publiées.
Traitez l'acquisition via php, et les variables doivent être clairement nommées, ce qui est également utile pour lire le code.
$select_sql = "SELECT a.user,count(order_id) as subcount,b.passcount,c.full_name from vicidial_order a LEFT JOIN (SELECT user,count(order_id) as passcount from vicidial_order where time > UNIX_TIMESTAMP('".$today."') and user_group = '".$user_group."' and verifysta = 'Y' GROUP BY user ) b on a.user = b.user LEFT JOIN vicidial_users c on a.user = c.user where time > UNIX_TIMESTAMP('".$today."') and a.user_group = '".$user_group."' GROUP BY a.user "; $rows = mysqli_query( $db_conn, $select_sql ); $row_counts_list = mysqli_num_rows( $rows ); if ( $row_counts_list != 0 ) { $i = 0; while($rs = mysqli_fetch_assoc( $rows )) // mysqli_fetch_assoc 获取键值数据 mysqli_fetch_field 获取一条数据 mysqli_fetch_fields 获取多组数据 mysqli_fetch_row { $outData['list'][$i]['user'] = $rs['user']; $outData['list'][$i]['full_name'] = $rs['full_name']; $outData['list'][$i]['subcount'] = $rs['subcount']; $outData['list'][$i]['passcount'] = $rs['passcount']; $outData['list'][$i]['passrate'] = round(($rs['passcount']/$rs['subcount'])*100)."%"; $outData['all_subcount'] += $rs['subcount']; $outData['all_passcount'] += $rs['passcount']; $i++; } $outData['all_passrate'] = round(($outData['all_passcount']/$outData['all_subcount'])*100)."%"; $outData['online_count'] = $row_counts_list; $outData['average_subcount'] = round($outData['all_subcount']/$outData['online_count'],1); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!