Bonjour j'essaie de faire un update/insert de donnée à l'intérieur d'un foreach mais après le premier update le script s'arrete, je n'ai pas ce problème si je ne fait que des inserts, il semblerait que le script bloque après le premier update.

[b][/b]
[b]L'objectif du script:[/b]
Récupérer la liste des utilisateurs dans une autre base de donnée.(Geronimo/ressource)
Mettre à jour la base de donnée utilisée par l'application sous cakePHP.(Fournitures/users)

Si l'utilisateur n'existe pas on le crée
S'il existe on update l'ensemble des champs

Merci pour votre aide

[b]Code[/b]
<?php

class GeronimosController extends AppController {

public $uses = array('Geronimo','User');

function index(){

    /*Récupération de la liste des ressources de Geronimo*/
    $d['ressources'] = $this->Geronimo->find('all',array(
                                                'fields'=>array(
                                                            'rce_id',
                                                            'rce_trigramme',
                                                            'rce_email',
                                                            'rce_prenom',
                                                            'rce_nom',
                                                            'rce_ressource_authkey',
                                                            'rce_isadmin_fourniture',
                                                            'rce_code_alliance'),
                                                'limit' => 6
                            ));
    /*Pour chaque utilisateur de la base Geronimo on verifie si celui-ci existe dans la table users de l'application fourniture
    -si l'utilisateur existe on l'update
    -si l'utilisateur n existe pas on le crée

    */

    foreach($d['ressources'] as $k => $v){
        $v = current($v);

        /*On récupère l utilisateur avec le même RCE_ID*/
        $user = false;
        $user = $this->User->find('first',array(
                                                'conditions'=>array('geronimo_rce_id'=>$v['rce_id']),
                                                'recursive' =>-1
                                                ));

        $this->User->create(false);
        if($v['rce_isadmin_fourniture'] == 1){$group =  '10';}else{ $group = '9';}

        /*L utilisateur existe nous faisons un update*/
        if($user){
            echo "update";

        $this->User->read(null,$user['User']['id']);

        $data_update = array();

            $data_update['id']  = $user['User']['id'];
            $data_update['password']  = '';
            $data_update['username']  = $v['rce_id'];
            $data_update['code_alliance']  = $v['rce_code_alliance'];
            $data_update['authkey']  = $v['rce_ressource_authkey'];
            $data_update['email']  = $v['rce_email'];
            $data_update['trigramme']  = $v['rce_trigramme'];
            $data_update['prenom']  = $v['rce_prenom'];
            $data_update['group_id']  = $group;
                $data_update['nom']  = $v['rce_nom'];

            $this->User->save($data_update,array('validate'=>false));

        }else{
            $data = array();
            $data['User']['geronimo_rce_id']  = $v['rce_id'];
            $data['User']['username']  = $v['rce_id'];
            $data['User']['password']  = '';
            $data['User']['code_alliance']  = $v['rce_code_alliance'];
            $data['User']['authkey']  = $v['rce_ressource_authkey'];
            $data['User']['email']  = $v['rce_email'];
            $data['User']['trigramme']  = $v['rce_trigramme'];
            $data['User']['prenom']  = $v['rce_prenom'];
            $data['User']['group_id']  = $group;
            $data['User']['nom']  = $v['rce_nom'];

            $this->User->save($data);

        }//Fin du else

    }//Fin du foreach

}

}
?>

[b]Table users (CakePHP)[/b]

CREATE TABLE IF NOT EXISTS users (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) DEFAULT NULL,
password char(40) DEFAULT NULL,
group_id int(11) DEFAULT NULL,
created datetime DEFAULT NULL,
modified datetime DEFAULT NULL,
email varchar(255) DEFAULT NULL,
authkey varchar(255) DEFAULT NULL,
code_alliance varchar(255) DEFAULT NULL,
prenom varchar(255) DEFAULT NULL,
nom varchar(255) DEFAULT NULL,
geronimo_rce_id varchar(255) DEFAULT NULL,
trigramme varchar(255) DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY username (username)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=109 ;

[b]Table ressource[/b]
CREATE TABLE IF NOT EXISTS ressource (
RCE_ID int(11) NOT NULL AUTO_INCREMENT,
RCE_TRIGRAMME varchar(3) NOT NULL,
RCE_NOM varchar(40) NOT NULL,
RCE_PRENOM varchar(40) NOT NULL,
RCE_EMAIL varchar(100) NOT NULL,
RCE_TELEPHONE varchar(14) DEFAULT NULL,
RCE_DATE_DEBUT datetime NOT NULL,
RCE_DATE_FIN datetime NOT NULL,
RCE_CODE_ALLIANCE varchar(8) NOT NULL,
RCE_RESSOURCE_AUTHKEY varchar(100) NOT NULL,
RCE_ISADMIN_CRHEBDO int(1) NOT NULL,
RCE_ISADMIN_IMPUTATION int(1) NOT NULL,
RCE_ISADMIN_FOURNITURE int(1) NOT NULL,
RCE_ISADMIN_RESERVATION int(1) NOT NULL,
PRIMARY KEY (RCE_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=323 ;

Aucune réponse