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