salut à tous je sais ma question est stupide, mais je n'ai pas pu résoudre le problème
en effet j'ai dans mes données postes les informations suivantes:

array(
    'Note' => array(
        'sequences_id' => '1',
        'filieres_id' => '18',
        'matieres_id' => 'Informatique'
    ),
    'noteobtenu0' => '7844',
    'noteobtenu1' => '4541',
    'noteobtenu2' => '5211',
    'noteobtenu3' => '2311',
    'noteobtenu4' => '21122',
    'noteobtenu5' => '565'
)

j'aimerai les sauvegarde en un cout dans ma table note(id,sequences_id,filieres_id,matieres_id,noteobtenu)
en effet chaque ligne doit avoir une note, exemple
(1,1,18,Informatique,7844),(2,1,18,Informatique,4541),(3,1,18,Informatique,5211) ainsi de ssuite
je ne sais pas si quelqu'un voit de quoi je veut parler

6 réponses


Bonjour,

Je n'ai pas bien compris ton problème, mais tu veux arriver à ce résultat ? (avec les ID en plus, mais elles seront ajoutées automatiquement)

array (size=6)
    0 => 
      array (size=4)
        'sequences_id' => string '1' (length=1)
        'filieres_id' => string '18' (length=2)
        'matieres_id' => string 'Informatique' (length=12)
        'noteobtenu' => string '7844' (length=4)
    1 => 
      array (size=4)
        'sequences_id' => string '1' (length=1)
        'filieres_id' => string '18' (length=2)
        'matieres_id' => string 'Informatique' (length=12)
        'noteobtenu' => string '4541' (length=4)
    2 => 
      array (size=4)
        'sequences_id' => string '1' (length=1)
        'filieres_id' => string '18' (length=2)
        'matieres_id' => string 'Informatique' (length=12)
        'noteobtenu' => string '5211' (length=4)
    3 => 
      array (size=4)
        'sequences_id' => string '1' (length=1)
        'filieres_id' => string '18' (length=2)
        'matieres_id' => string 'Informatique' (length=12)
        'noteobtenu' => string '2311' (length=4)
    4 => 
      array (size=4)
        'sequences_id' => string '1' (length=1)
        'filieres_id' => string '18' (length=2)
        'matieres_id' => string 'Informatique' (length=12)
        'noteobtenu' => string '21122' (length=5)
    5 => 
      array (size=4)
        'sequences_id' => string '1' (length=1)
        'filieres_id' => string '18' (length=2)
        'matieres_id' => string 'Informatique' (length=12)
        'noteobtenu' => string '565' (length=3)

Si oui, voilà le code qui le permet :

<?php
      $data = [
          'Note' => [
              'sequences_id' => '1',
              'filieres_id' => '18',
              'matieres_id' => 'Informatique'
          ],
          'noteobtenu0' => '7844',
          'noteobtenu1' => '4541',
          'noteobtenu2' => '5211',
          'noteobtenu3' => '2311',
          'noteobtenu4' => '21122',
          'noteobtenu5' => '565'
      ];

      $results = [];

      foreach($data as $key => $note){
          if($key != 'Note'){
              $data['Note']['noteobtenu'] = $note;
              $results[] = $data['Note'];
          }
      }

      // var_dump($results);

En espérant avoir résolu ton problème,
Arkantos.

romses
Auteur

Merci Akantos tu es un genie t'a tout compris d'un coup, et bien si tu étais ds mon pays on prendrais une bierre (hiiiiii juste pour rigolé ) merci

De rien, ravi d'avoir pu t'aider !
A bientôt,

Arkantos

romses
Auteur

ayant modifier mon form j'obteins ceci qui est plus comprehensible

array(
    'Note' => array(
        'sequences_id' => '1',
        'filieres_id' => '18',
        'matieres_id' => 'Informatique',
        (int) 52 => array(
            'noteobtenu' => '4'
        ),
        (int) 55 => array(
            'noteobtenu' => '1'
        ),
        (int) 51 => array(
            'noteobtenu' => '3'
        ),
        (int) 53 => array(
            'noteobtenu' => '2'
        ),
        (int) 56 => array(
            'noteobtenu' => '1'
        ),
        (int) 54 => array(
            'noteobtenu' => '0'
        )
    )
)

dans le helpers j'ai ceci :

<?php   

                            echo $this->Form->input('Note.' . $idstudent .'.noteobtenu', array('label' => '','class'=>'form-control classmatiere noteeleve ','onkeyup' => 'verif(this);','type' => 'text','required' => true));

                 ?> 

du coup je pense être proche du but selon la procédure de Arkantos, mais y'a une autre pour plus ganger en temps?

Re,
En soi je pense que pour arriver au résultat voulu, la méthode proposée plus haut et la plus simple à mettre en place.
Niveau temps, il ne devrait pas y avoir de soucis tu sais, à moins que tu doivent enregistrer les notes de 10000 élèves d'une traite. ;)

romses
Auteur

merci Arkantos, mais avec ce code je serai obligé de sauvegarder ligne par ligne parcontre moi je veus utiliser saveMany pour tous les sauvegarder en fesant ceci:

    $var = array('sequences_id','filieres_id','matieres_id');
            foreach ($noteall as $key => $value) {
                $i=0;
                if(!(in_array($key, $var)))
                {

                    $donne['Note'][$i]['students_id'] = $key;
                    $donne['Note'][$i]['notestudent'] = $value;
                    $donne['Note'][$i]['sequences_id'] = $noteall['sequences_id'];
                    $donne['Note'][$i]['filieres_id'] = $noteall['filieres_id'];
                    $donne['Note'][$i]['matieres_id'] = $noteall['matieres_id'];

                    debug($donne);

                }

            }

je parviens à avoir les listes possibles mais pas sous forme de tableau indicé comment mettre sous la forme de tableau numeroté?