Valeur par défaut à 0 pour un array
Résolu/Fermé
DARLAIVE
-
15 oct. 2015 à 12:40
DARLAIVE Messages postés 653 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 5 septembre 2016 - 15 oct. 2015 à 14:53
DARLAIVE Messages postés 653 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 5 septembre 2016 - 15 oct. 2015 à 14:53
A voir également:
- Valeur par défaut à 0 pour un array
- Windows 11 clic droit afficher plus d'options par défaut - Guide
- Comment faire un 0 barré sur telephone ✓ - Forum Windows
- Remettre a 0 un pc - Guide
- Google page d'accueil par défaut - Guide
- Remettre iphone a 0 - Guide
3 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
15 oct. 2015 à 12:49
15 oct. 2015 à 12:49
Salut,
Une solution simple serait juste de tester l'existence du mois dans le tableau des résultats à l'affichage.
Peux tu nous montrer le code d'affichage du tableau html afin de pouvoir t'aider plus facilement ?
Bonne journée,
Une solution simple serait juste de tester l'existence du mois dans le tableau des résultats à l'affichage.
Peux tu nous montrer le code d'affichage du tableau html afin de pouvoir t'aider plus facilement ?
Bonne journée,
J'avais commencer à faire un truc comme ça pour les années qui ne commence pas en Janvier :
Sauf que ça marche pas.
Pour information je commence à l'année 2012 jusqu'à 2015 et il n'y à que l'année 2012 qui ne commence pas à Janvier et en plus il manque 1 mois (Octobre) (pour ça aussi que mon code plante).
Les années de 2013 à 2014 commencent en Janvier et ce terminent en Décembre et enfin l'année 2015 commencent en Janvier et n'est pas encore fini (logique). Normalement les autres devrait être pareil (on commencent en Janvier et on attend que l'année ce termine et du coup on aura des 0 en attendant Décembre et les valeurs quand le mois sera fini).
$declare2 = array(); for ($i = 0; $i < 12; $i++) { $declare2[$i] = 0; } if($declare[0][0] > 1){ // si le tableau ne commence pas en Janvier $firstIndex = $declare[0][0]; // on récup le 1er mois du tableau declare // on insére le reste des valeurs dans l'ordre (on passe d'un tableau 2 dimensions à 1 avec // seulement les valeurs par mois pour l'année sur laquelle on fait la requête) for($i1 = $firstIndex ; $i1 < 12; $i1++){ // du 1er mois du tableau jusqu'à decembre for ($i2 = 0; $i2 < $i1; $i2++){ // on insére les valeurs du mois dans declare 2 // on commence à insérer les valeurs à partir du 1er mois de declare // le 1er mois de declare == l'index ou on doit commencer à insérer dans déclare2 $declare2[$i1] = $declare[$i2][1]; } } print_r($declare2); }
Sauf que ça marche pas.
Pour information je commence à l'année 2012 jusqu'à 2015 et il n'y à que l'année 2012 qui ne commence pas à Janvier et en plus il manque 1 mois (Octobre) (pour ça aussi que mon code plante).
Les années de 2013 à 2014 commencent en Janvier et ce terminent en Décembre et enfin l'année 2015 commencent en Janvier et n'est pas encore fini (logique). Normalement les autres devrait être pareil (on commencent en Janvier et on attend que l'année ce termine et du coup on aura des 0 en attendant Décembre et les valeurs quand le mois sera fini).
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
Modifié par Pitet le 15/10/2015 à 14:26
Modifié par Pitet le 15/10/2015 à 14:26
Voici un exemple de construction de ton tableau html à partir du résultat de la requête sql :
Tu peux tester ce code avec 3 résultats différents (il suffit de commenter/décommenter les premières lignes) :
- un résultat contenant tous les mois
- un résultat commencant en Mars
- un résultat commencant en Mars et finissant Octobre
<?php $results = array(array('1', '100'), array('2', '200'), array('3', '300'), array('4', '400'), array('5', '500'), array('6', '600'), array('7', '700'), array('8', '800'), array('9', '900'), array('10', '1000'), array('11', '1100'), array('12', '1200')); // $results = array(array('3', '300'), array('4', '400'), array('5', '500'), array('6', '600'), array('7', '700'), array('8', '800'), array('9', '900'), array('10', '1000'), array('11', '1100'), array('12', '1200')); // $results = array(array('3', '300'), array('4', '400'), array('5', '500'), array('6', '600'), array('7', '700'), array('8', '800'), array('9', '900'), array('10', '1000')); ?> <table class="exemple"> <thead> <tr> <th>Janvier</th> <th>Février</th> <th>Mars</th> <th>Avril</th> <th>Mai</th> <th>Juin</th> <th>Juillet</th> <th>Août</th> <th>Septembre</th> <th>Octobre</th> <th>Novembre</th> <th>Décembre</th> </tr> </thead> <tbody> <tr> <?php for ($i = 0; $i < 12; $i++) { $value = 0; foreach ($results as $result) { if ($result[0] == $i + 1) { $value = $result[1]; } } echo '<td>' . $value . '</td>'; } ?> </tr> </tbody> </table>
Tu peux tester ce code avec 3 résultats différents (il suffit de commenter/décommenter les premières lignes) :
- un résultat contenant tous les mois
- un résultat commencant en Mars
- un résultat commencant en Mars et finissant Octobre
DARLAIVE
Messages postés
653
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
5 septembre 2016
164
15 oct. 2015 à 14:53
15 oct. 2015 à 14:53
T'es un as Pitet, ça fonctionne nickel, j'ai remplacé $results par mon tableau et j'ai inclus l'affichage dans mon tableau et aucun soucis, pas d'erreur, les données sont dans l'ordre et j'ai 0 quand j'ai pas de valeurs.
J'était parti dans des trucs compliqué alors que c'était simple.
Merci encore.
J'était parti dans des trucs compliqué alors que c'était simple.
Merci encore.
15 oct. 2015 à 13:00
<script>
$(document).ready(function () {
$('#example').DataTable({ //example étant l'id dans <table>
"paging": false, // je désactive la découpe en plusieurs page
"ordering": true, // j'active le tris
"info": false, // je désactive la ligne qui affiche le nb de ligne tu tab
"searching": false, // je désactive le moteur de recherche du tableau
columnDefs: [
{type: 'date-eu', targets: 5}, // je définis la colonne 5 de type date
{bSortable: false, targets: 0} // je désactive le tri sur la colonne des titres
]
});
});
</script>
Pour le moment j'affiche rien à part des données bidon en dur (c'était pour tester le tableau et voir la longueur qu'il aura).
La j'ai tester des trucs pour insérer les valeurs dans mon deuxième array et j'affiche le tableau avec print_r() pour voir son architecture.
Sauf que du coup j'ai des erreurs d'index avec ce que j'ai tester.