[RESOLU] Remplir un tableau au fur et à mesure

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Remplir un tableau au fur et à mesure

Re: Remplir un tableau au fur et à mesure

par @rthur » 24 juin 2015, 20:17

*Edit* (je supposes que comme je n'ai pas de compte, je ne peux pas modifier mon message précédent xD)
Tout à fait ! N'hésites pas à te créer un compte, c'est gratuit et on n'envoie aucun spam ;-)

Re: Remplir un tableau au fur et à mesure

par Invité » 24 juin 2015, 10:09

*Edit* (je supposes que comme je n'ai pas de compte, je ne peux pas modifier mon message précédent xD), je n'ai rien dit pour l'id 0, c'est juste que j'avais oublier d'enlever mon initialisation plus tôt ^^, tous est en ordre, merci beaucoup pour ton aide

Re: Remplir un tableau au fur et à mesure

par Invité » 24 juin 2015, 10:05

Salut, je comprends mieux ce que tu voulais dire :o, je n'avais pas pensé à utiliser un index ^^' vu qu'au final je voulais un tableau avec plus de 2 valeurs par lignes, mais en faite ça ne sera même pas dérangeant .. merci beaucoup (et non, "pers.idPersonne" ne marcherait pas car cela précise dans quelle table il faut prendre la valeur, mais elle n'est pas comprise quand on essayes de la récupérer en php)

par contre, il y à juste un truc que je ne comprends pas, il me rajoute comme première valeur un id "0" avec comme valeur "array", et je crois que quand je tentes de l'afficher il m'affiche cette erreur "Array to string conversion", alors que ma table n'a pas d'idPersonne qui a pour valeur 0

Re: Remplir un tableau au fur et à mesure

par Saian » 23 juin 2015, 17:19

L'intérêt d'indexer le tableau sur l'id est justement de ne pas avoir à boucler dessus puisque tu peux accéder au bon index grâce à l'id.
$personnes = array();
while($reqTravailler = mysqli_fetch_array($resultTravailler, MYSQLI_ASSOC))
{
	/* initialise l'index s'il n'existe pas */
	if(!isset($personnes[$reqTravailler["idPersonne"]]))
		$personnes[$reqTravailler["idPersonne"]] = 0;
		
	/* ajoute les heures */
	$personnes[$reqTravailler["idPersonne"]]+= $reqTravailler["nbHeuresNPV"] + $reqTravailler["nbHeuresOT"];
}
Si tu as encore une erreur c'est probablement que l'index idPersonne n'existe pas et dans ce cas ne serait ce pas plutôt $reqTravailler["pers.idPersonne"] conformément à la déclaration du SELECT ?

Re: Remplir un tableau au fur et à mesure

par Invité » 23 juin 2015, 16:59

Salut, j'ai essayé de faire ce que tu m'as dis, mais, pour je ne sais quelle raison, il me met la même erreur, mais cette fois sur l'instruction "$tableauBDD[$i][1] += $reqTravailler["nbHeuresNPV"] + $reqTravailler["nbHeuresOT"];"..
for($i = 0; $i<count($tableauBDD);$i++)
			{
				if(isset($tableauBDD[$reqTravailler['idPersonne']]))
				{
					$tableauBDD[$i][1] += $reqTravailler["nbHeuresNPV"] + $reqTravailler["nbHeuresOT"];
				}
				else
				{
					$tableauBDD[count($tableauBDD)][0] =  $reqTravailler["idPersonne"];
					$tableauBDD[count($tableauBDD)][1] = $reqTravailler["nbHeuresNPV"] + $reqTravailler["nbHeuresOT"];
				}
			}
Soit je comprends mal la nature de l'erreur, soit j'ai mal codé ton idée, mais je ne vois pas comment il peut me dire que $tableauBDD[$i][1] n'est pas défini alors qu'il est forcément passer avant par "$tableauBDD[count($tableauBDD)][1] = $reqTravailler["nbHeuresNPV"] + $reqTravailler["nbHeuresOT"];" et à donc forcément une valeur ..

Re: Remplir un tableau au fur et à mesure

par Saian » 23 juin 2015, 16:10

Salut, le code me parait un peu complexe au regard de ce que tu souhaites faire.
Pourquoi ne pas indexer le tableau que tu remplis dans le while sur l'id en question ? ainsi il te suffira de faire un simple if(isset($tableauBDD[$reqTravailler['idPersonne']])) pour savoir si tu as déjà traité l'id.

Remplir un tableau au fur et à mesure

par Invité » 23 juin 2015, 15:58

Bonjour, voici mon problème, j'essayes de remplir un tableau au fur et à mesure, je veux à chaque fois comparer chaque ligne du tableau pour savoir s'il l'une de ces lignes contient l'id d'une des occurrences récupérées par ma requête, et, dans le cas contraire, ajouter une nouvelle ligne à ce tableau, or, il me met à chaque fois des problèmes d'undefined offset alors que j'ai initialiser la première valeur du tableau.. je ne comprends pas ^^', il me mets 3 undefined offset
$tableauBDD = array();
    $tableauBDD[0][0] = "";
    $queryTravailler = 'Select pers.idPersonne, t.nbHeuresNPV, t.nbHeuresOT
    From travailler t, personne pers, dateJ d
    WHERE pers.idPersonne = t.idPersonne
    AND t.dateJ = d.dateJ
    AND pers.codeSecteur = '.$codeSecteur.'
    AND d.dateJ between "'.$dateBddDebut.'" AND (SELECT ADDDATE("'.$dateBddDebut.'", INTERVAL 7 DAY));';
 
    $resultTravailler = mysqli_query($link, $queryTravailler);
    while($reqTravailler = mysqli_fetch_array($resultTravailler, MYSQLI_ASSOC))
    {
        $j=0;
        $m="m";
        foreach($tableauBDD as $tab)
        {
             
                if($tab[0] == $reqTravailler["idPersonne"])
                {
                    $m = $j;
                }
            $j++;
        }
             
         
        if($m != "m")
        {
            $tableauBDD[$m][1] += $reqTravailler["nbHeuresNPV"] + $reqTravailler["nbHeuresOT"];
        }
        else
        {
            $tableauBDD[count($tableauBDD)][0] =  $reqTravailler["idPersonne"];
            $tableauBDD[count($tableauBDD)][1] = $reqTravailler["nbHeuresNPV"] + $reqTravailler["nbHeuresOT"];
        }
    }
3 undefined offset au niveau de l'instruction "if($tab[0] == $reqTravailler["idPersonne"])"



Merci d'avance pour votre aide :)