Gestion côté server du formulaire input/phone avec les données des matrices, pb de duplication des catégories en BDD

This commit is contained in:
xdrm-brackets 2016-05-09 14:12:02 +02:00
parent 08a4e6c595
commit d514c290df
2 changed files with 43 additions and 12 deletions

View File

@ -108,15 +108,39 @@
/* (2) Relation de type _SMS_ */ /* (2) Relation de type _SMS_ */
if( in_array('SMS', $relations) ){ if( in_array('SMS', $relations) ){
$call_rel_request = new Repo('subject/link', array( $subject_id, $closest_id[$contact], '_SMS_' )); $sms_rel_request = new Repo('subject/link', array( $subject_id, $closest_id[$contact], '_SMS_' ));
$call_rel_response = $call_rel_request->answer(); $sms_rel_response = $sms_rel_request->answer();
// Si erreur de création de relation // Si erreur de création de relation
if( $call_rel_response === false ) if( $sms_rel_response === false )
return array( 'ModuleError' => ManagerError::ModuleError ); return array( 'ModuleError' => ManagerError::ModuleError );
} }
}
/* [5] Ajout des relations de la matrice
=========================================================*/
// Pour chacun des top 10*2 plus proches
foreach($closest as $A=>$rels){
// Pour chaque relation avec le contact actuel (s'il y en a)
if( isset($matrice[$A]) && is_array($matrice[$A]) ){
foreach($matrice[$A] as $B){
$relation_request = new Repo('subject/link', array( $A, $B, null ));
$relation_response = $relation_request->answer();
// Si erreur de création de relation
return array( 'ModuleError' => $relation_response );
if( $relation_response === false )
return array( 'ModuleError' => ManagerError::ModuleError );
}
}
} }

View File

@ -192,20 +192,22 @@
=========================================================*/ =========================================================*/
$checkInput = Database::check('id', $A); $checkInput = Database::check('id', $A);
$checkInput = $checkInput && Database::check('id', $B); $checkInput = $checkInput && Database::check('id', $B);
$checkInput = $checkInput && Database::check('varchar(3,40)', $category); $checkInput = $checkInput && ( Database::check('varchar(0,40)', $category) || is_null($category) );
// Si erreur de type de paramètre, on retourne FALSE // Si erreur de type de paramètre, on retourne FALSE
if( !$checkInput ) if( !$checkInput )
return false; return false;
$nullCat = is_null($category);
/* [1] On vérifie l'existence de la catégorie /* [1] On vérifie l'existence de la catégorie
=========================================================*/ =========================================================*/
$category_exists_req = Database::getPDO()->prepare("SELECT idCategorie as id $category_exists_req = Database::getPDO()->prepare("SELECT idCategorie as id
FROM categories FROM categories
WHERE intitule = :category WHERE intitule ".
"); ( $nullCat ? "is NULL" : "= :category" )
$cat_ex_status = $category_exists_req->execute( array( ':category' => $category ) ); );
$cat_ex_status = $category_exists_req->execute( ($nullCat) ? null : array( ':category' => $category ) );
// Si erreur de requête -> FALSE // Si erreur de requête -> FALSE
if( $cat_ex_status === false ) if( $cat_ex_status === false )
@ -220,8 +222,10 @@
if( $category_id === null ){ if( $category_id === null ){
$create_category_req = Database::getPDO()->prepare("INSERT INTO categories(idCategorie, intitule) $create_category_req = Database::getPDO()->prepare("INSERT INTO categories(idCategorie, intitule)
VALUES(DEFAULT, :category)"); VALUES(DEFAULT, ".
$create_cat_status = $create_category_req->execute( array( ':category' => $category ) ); ( $nullCat ? "NULL" : ":category" )
.")");
$create_cat_status = $create_category_req->execute( ($nullCat) ? null : array( ':category' => $category ) );
// Si erreur de requête -> FALSE // Si erreur de requête -> FALSE
if( $create_cat_status === false ) if( $create_cat_status === false )
@ -230,8 +234,10 @@
// On récupère l'id de la catégorie // On récupère l'id de la catégorie
$get_category_id = Database::getPDO()->prepare("SELECT idCategorie as id $get_category_id = Database::getPDO()->prepare("SELECT idCategorie as id
FROM categories FROM categories
WHERE intitule = :category"); WHERE intitule ".
$get_cat_status = $get_category_id->execute( array( ':category' => $category ) ); ( $nullCat ? "is NULL" : "= :category" )
);
$get_cat_status = $get_category_id->execute( ($nullCat) ? null : array( ':category' => $category ) );
// Si erreur de requête -> FALSE // Si erreur de requête -> FALSE
if( $get_cat_status === false ) if( $get_cat_status === false )
@ -257,6 +263,8 @@
':category' => $category_id ':category' => $category_id
)); ));
return $B;
// Si erreur de requête -> FALSE // Si erreur de requête -> FALSE
if( $create_rel_status === false ) if( $create_rel_status === false )
return false; return false;
@ -285,7 +293,6 @@
if( $check_relation->fetch() === false ) if( $check_relation->fetch() === false )
return false; return false;
// Si tout s'est bien passé, on retourne TRUE // Si tout s'est bien passé, on retourne TRUE
return true; return true;
} }