Suppresion de champs dans une table liée
Hors ligneTyween Le 24/04/2020 à 11:24 Profil de Tyween Configuration de Tyween

Bonjour,

Je souhaite supprimé un champs dans une table qui est liée voici mon code :


$bdd->beginTransaction();

$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$requete = "DELETE FROM `albums_p` WHERE id=?";

$reponse = $bdd->prepare($requete);

$reponse->execute(array($_GET['id']));

$bdd->commit();

echo '<p class="alert alert-success"><i class="fas fa-check-circle"></i> Tout c\'est bien passé l\'album a bien été supprimé, Féliciations !!!</p>';

echo '<p><a href="albums.php?action=ajouter" class="btn btn-success ajout"><i class="fas fa-plus"></i> ajouter un albums</a> <a href="albums.php" class="btn btn-light"><i class="fas fa-list-ol"></i> retour liste</a></p>';


J'ai le message suivant qui apparait :

Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`cdos93_v2`.`photos`, CONSTRAINT `photos_ibfk_1` FOREIGN KEY (`id_th`) REFERENCES `albums_p` (`id_th`)) in C:\wamp64\www\cdos93_v2\regent\albums.php on line 167


j'ai bien compris que le problème venait du faite que ma table soit liée, mais comment faire pour pouvoir sur le le champs en question sans impacter l'autre table,


D'avance merci de vos retours,


Hors ligneAnthony Le 26/04/2020 à 09:11 Profil de Anthony Configuration de Anthony

Fou du volant

Hello,

Peux-tu nous montrer la structure de ta table "photos" je pense qu'il y a un souci avec la définition de la clé étrangère qui te provoque cette erreur. Tu dois sûrement avoir des photos dans ton album et le souci viendrait de là. Si tu as la possibilité, essaie de faire un test de suppression d'un album qui ne contient pas de photos, tu ne devrais pas avoir d'erreur.

--

Hors ligneTyween Le 27/04/2020 à 09:30 Profil de Tyween Configuration de Tyween

Bonjour,

Tout d'abords, merci d'avoir pris le temps de me répondre.

Concernant cette table elle est liés à 2 autres (thèmes et photos) voici les structures des 3 tables liées :

Thèmes :

Nom Type Interclassement Attributs Null Valeur par défaut Commentaires Extra
1 int(10) Non Aucun(e)
2 varchar(250) utf8_general_ci Non Aucun(e)
3 varchar(250) utf8_general_ci Non Aucun(e)
IndexDocumentation
Nom de l'indexTypeUniqueCompresséColonneCardinalitéInterclassementNullCommentaire
PRIMARYBTREEOuiNonidt3ANon
idBTREENonNonidt3ANon

Albums :

# Nom Type Interclassement Attributs Null Valeur par défaut Commentaires Extra
1 int(10) Non Aucun(e) AUTO_INCREMENT
2 varchar(250) utf8_general_ci Non Aucun(e)
3 varchar(100) utf8_general_ci Non Aucun(e)
4 varchar(250) utf8_general_ci Non Aucun(e)
5 int(10) Non Aucun(e)
IndexDocumentation
Nom de l'indexTypeUniqueCompresséColonneCardinalitéInterclassementNullCommentaire
PRIMARYBTREEOuiNonida2ANon
id_thBTREENonNonid_th1ANon

Photos :

# Nom Type Interclassement Attributs Null Valeur par défaut Commentaires Extra
1 int(10) Non Aucun(e) AUTO_INCREMENT
2 varchar(250) utf8_general_ci Non Aucun(e)
3 int(10) Non Aucun(e)
IndexDocumentation
Nom de l'indexTypeUniqueCompresséColonneCardinalitéInterclassementNullCommentaire
PRIMARYBTREEOuiNonidp230ANon
id_alb_pBTREENonNonid_alb_p3ANon


J'ai testé la suppression sur un album qui ne contient pas de photos mais qui est rattaché à un album.

Pour information depuis l'envoi du post j'ai modifié le nom du champ id en ida.

J'ai lu sur plusieurs par pages, qu'il faut supprimer le lien avant de vouloir supprimer, mais comment on fait ?

Dans l'attente de vous lire,


Hors ligneAnthony Le 28/04/2020 à 21:16 Profil de Anthony Configuration de Anthony

Fou du volant

Pourriez-vous envoyer la structure complète des tables y compris les clés étrangères ? Dans PHPMyAdmin cela se fait en cliquant sur le lien "Vue relationnelle".

--

Hors ligneTyween Le 29/04/2020 à 09:38 Profil de Tyween Configuration de Tyween

Bonjour,

Voila les clés étrangères :

Thèmes :

Actions Propriétés de la contrainte Colonne Contrainte de clé étrangère (INNODB)
Base de données Table Colonne

ON DELETE

ON UPDATE

+ Ajouter une colonne
+ Ajouter une contrainte
IndexDocumentation
ActionNom de l'indexTypeUniqueCompresséColonneCardinalitéInterclassementNullCommentaire
Éditer Éditer Supprimer Supprimer PRIMARYBTREEOuiNonidt3ANon
Éditer Éditer Supprimer Supprimer idBTREENonNonidt3ANon
Créer un index sur colonnes


Albums :

Actions Propriétés de la contrainte Colonne Contrainte de clé étrangère (INNODB)
Base de données Table Colonne
Supprimer Supprimer

ON DELETE

ON UPDATE

+ Ajouter une colonne

ON DELETE

ON UPDATE

+ Ajouter une colonne
+ Ajouter une contrainte
IndexDocumentation
ActionNom de l'indexTypeUniqueCompresséColonneCardinalitéInterclassementNullCommentaire
Éditer Éditer Supprimer Supprimer PRIMARYBTREEOuiNonida4ANon
Éditer Éditer Supprimer Supprimer id_thBTREENonNonid_th2ANon

Photos :

Actions Propriétés de la contrainte Colonne Contrainte de clé étrangère (INNODB)
Base de données Table Colonne
Supprimer Supprimer

ON DELETE

ON UPDATE

+ Ajouter une colonne

ON DELETE

ON UPDATE

+ Ajouter une colonne
+ Ajouter une contrainte
IndexDocumentation
ActionNom de l'indexTypeUniqueCompresséColonneCardinalitéInterclassementNullCommentaire
Éditer Éditer Supprimer Supprimer PRIMARYBTREEOuiNonidp230ANon
Éditer Éditer Supprimer Supprimer id_alb_pBTREENonNonid_alb_p3ANon

Merci de votre aide


Hors ligneAnthony Le 03/05/2020 à 09:58 Profil de Anthony Configuration de Anthony

Fou du volant

Hello,

Le copier-coller est illisible, serait-il possible d'avoir une capture d'écran à la place d'un copier-coller ?

--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels