IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

suppression d'une ligne table bd, ondeletecascade


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut suppression d'une ligne table bd, ondeletecascade
    bonjour a tous,
    j'ai deux tables (publication et commentaire) le idPub clé primaire de publication est un clé etrag dans commentaire, lorsque je supprime une ligne de la publication, phpmyadmin me retourne une erreur la suivante
    #1451 - Cannot delete or update a parent row: a foreign key constraint fails (`reseau`.`commentaire`, CONSTRAINT `commentaire_ibfk_2` FOREIGN KEY (`idpub`) REFERENCES `pub` (`idpub`))
    je pense que le prob est au niveau de ondeleteCascade non?

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    C'est au niveau de ton schéma, tu ne peux pas supprimer une valeur qui a encore une référence en activité. Quand tu supprimes tes tables il faut le faire dans un certain ordre, c'est pareil pour tes données. C'est la contrainte d'intégrité référentielle qui te génére ton erreur. Il faut que tu supprimes tous les commentaires liés à ta publication avant de la supprimer.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Mais si l'utilisateur veut supprimer SA publication independament des commentaires des autres, il devient alors comme administrateur!
    Comment peut on resoudre le probleme

  4. #4
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    En fait ce que t'explique XxArchangexX c'est que pour supprimer la publication tu doit d'abord supprimer tous les commentaires qui y sont rattaché.

    Citation Envoyé par programmatrice
    Mais si l'utilisateur veut supprimer SA publication independament des commentaires des autres
    Cela n'a aucun intérêt de supprimer une publication mais de garder les commentaires
    Si les commentaires sont en réponse à une publication ils n'ont alors plus lieux d'être !

  5. #5
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Oui justement,
    Merci c'est plus claire maintenant
    A+

  6. #6
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Pardon je travailles avec l'affichage des publications des utilisateurs, je veux lorsque je clique sur la zone auprés de la publication (enfait c'est une image) une petite icone comme un crois s'affiche à droite de la pub pour supprimer la publication!
    j'ai reussi a afficher les pub mais pour les supprimer je sais pas comment proceder?
    Merci pour votre aide

  7. #7
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Choix 1 :
    Quand l'utilisateur clique sur la croix tu fais d'abord un delete from commentaire where idpub = l'idDeLaPubli (passer pas un value de l'image de la croix par exemple). Puis tu supprimes la publication delete from publication where idpub = l'idDeLaPubli.

    Choix 2

    Tu stockes en base une colonne pub_Active : un integer 0 non actif 1 actif par exemple.

    dans ton code quand tu vas chercher tes publications pour les afficher tu rajoutes un where pub_active = 1

    et quand l'utilisateur clique sur la croix sa fais un update de pub_Active à 0.

    et l’administrateur peut faire le ménage de temps en temps sans que l'utilisateur ne soit gêné par les contraintes.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  8. #8
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Merci je vois bien
    mais je cherche autre chose c'est l'affichage de l'icone (croix) elle meme ?
    ça peut etre comment, suite a un evenement qui est le mouseover sur la publication, je n'arrive pas a l'afficher pour terminer la partie de suppression?
    Si vous avez une idée comment ca ce passe merci de m'avoir donner, je pense que c'est q chose genre ajax, jquery ...

  9. #9
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    D'accord je viens de relire, excuse moi j'avais mal interprété. Donc oui au clique de la souris tu peux faire du javascript, tu fais un OnMouseOver ou OnMouseClick et tu appels une fonction javascript est dedans tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    elementHTML = document.getElementById('ZoneouMettreLimage');
    elementHTML.innerHTML = '<img src="croix.jpg">';
    Et dans la page web tu fais une petite zone <div name='imgcroix'></div>

    Quand l'utilisateur passe sur ta publication sa va insérer une image de croix dans la zone div que tu places à côté de la publication. Bien sur tu peux faire un OnMouseMove ou tu appels la fonction retireCroix

    cela répond mieux à ta question?
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  10. #10
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    oui C'est ça merci bien
    mais pouvez vous m'expliquer mieux le code ou le mettre et c'est quoi cette 'ZoneouMettreLimage' (coordonnées ou autres)..

  11. #11
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    sa fait longtemps que j'ai pas fais de php.

    fichier javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function AfficheImageCroix(ind)
    {
    	var obj = document.getElementById('BaliseImg'+ind); 
    	obj.innerHTML ="<img src='Croix.jpg' />";
    }
     
    function RetireImageCroix(ind)
    {
    	var obj = document.getElementById('BaliseImg'+ind); 
    	obj.innerHTML = '';
    }
    fichier Php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div onMouseOver="AfficheImageCroix(1);"> Publication 1 </div>
    <div name='BaliseImg1' id='BaliseImg1'style="margin-left: la distance depuis le cote gauche "></div>
     
    <div onMouseOver="AfficheImageCroix(2);"> Publication 2 </div>
    <div name='BaliseImg2' id='BaliseImg2'style="margin-left: la distance depuis le cote gauche "></div>
    et tu as ce petit code pour chaque publication comme sa, seul la publication survolée aura l'image de la croix
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  12. #12
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    ok Merci
    je vais essayé ça et je vous ferai un retour tres bientt
    mais le margin-left a peu pres c'est combien?
    A+

  13. #13
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Bojour, Voici j'ai integré le code que vous m'avez donné dans mon programme et ç n'a pas marché du tous, c'est quoi l'erreur SVP?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <script>
    					 function AfficheImageCroix(ind)
    {
    	var obj = document.getElementById('BaliseImg'+ind); 
    	obj.innerHTML ="<img src='../images/croix.jpg' />";
    }
    
    					 </script>
                             
      <?php
        echo "vous avez ".$nbP." publication(s)<br>";
        if($nbP>0)
        {
            while ($Valeur=$resultatpub->fetch())
            {
    			//echo "<div  class=\"my-contacts fleft\">";
                echo "<div onMouseOver=\"AfficheImageCroix()\"><h3><img src=../userImage/".$Valeur['img_Pr']." height=100 width=150 title=".$Valeur['desc_Fr']."></h3><h4>Produit:".$Valeur['nom_Fr']." </h4><h5>".$Valeur['date']." </h5></div><p id=go>--------";
    echo "<div name=BaliseImg1 id=BaliseImg style=margin-left:4;></div>";
    }

  14. #14
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    Citation Envoyé par programmatrice
    Voici j'ai integré le code que vous m'avez donné dans mon programme et ç n'a pas marché du tous, c'est quoi l'erreur SVP?
    Sans vouloir paraître méchant, nous sommes pour la plupart (tous ?) professionnel dans le monde de l'informatique. Je viens répondre aux questions de ce forum sur mon temps de travail, j'estime que ce n'est pas du "temps perdu" puisque lorsque j'aurai un problème je serrai ravis qu'une personne face de même pour moi.

    Par contre dire simplement "sa marche pas" et balancer son code sa ne donne pas envie d'aider, mais même si on décide d'être gentil cela prend alors énormément de temps. Où alors on ne trouve pas de problème du tout

    Est-ce que tu as un message d'erreur ?

    Est-ce le rendu qui ne te satisfait pas du tout ? (croix mal placé, le clic sur la croix ne fonctionne pas, ...)


    Tu as ces lignes qui sont incorrect, problème de guillemet il faudrait que tu revoie les bases :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "<div onMouseOver=\"AfficheImageCroix()\"><h3><img src=../userImage/".$Valeur['img_Pr']." height=100 width=150 title=".$Valeur['desc_Fr']."></h3><h4>Produit:".$Valeur['nom_Fr']." </h4><h5>".$Valeur['date']." </h5></div><p id=go>--------";
    echo "<div name=BaliseImg1 id=BaliseImg style=margin-left:4;></div>";
    Il te manque les guillemets pour le nom, l'id et le style :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '<div onMouseOver="AfficheImageCroix()"><h3><img src="../userImage/' . $Valeur['img_Pr'] . '" height=100 width=150 title="' . $Valeur['desc_Fr'] . '"></h3><h4>Produit:' . $Valeur['nom_Fr'] . ' </h4><h5>' . $Valeur['date'] . ' </h5></div><p id=go>--------';
    echo '<div name="BaliseImg1" id="BaliseImg" style="margin-left: 4;"></div>';

    Pour les echo plutôt que d'utiliser des " pour écrire une chaîne de caractère je te conseil d'utiliser les '.

    La prochaine fois envoie nous les messages d'erreur aussi s'il te plait

  15. #15
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Non ce n'est plus un message d'erreur mais le mouseover ne fonctionne pas c'est a dire au niveau de l'execution comme si j'ai rien ajouté!
    l'image est bien placé dans mon repertoire!
    Je pense qu'un parametre manque ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onMouseOver=\"AfficheImageCroix()\"
    si jamais il y'en a d'autres!
    non?

  16. #16
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    Tu aurais normalement du avoir un message d'erreur. A savoir que le serveur n'affiche pas les erreurs JavaScript, ce qui est logique puisqu'il ne traite pas du tout ces portions de code.

    Si tu utilise Firefox télécharge le module "FireBug" active le et va dans l'onglet "Console".
    Si tu est sous Chrome un simple "Ctrl + Shift + i" puis l'onglet "Console".

    Il te manque effectivement un paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function AfficheImageCroix(ind){...}
    onMouseOver="AfficheImageCroix(==>ind<==);"

  17. #17
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    Effectivement,si tu utilises l'attribut dans la fonction il faut le rajouter, c'est surtout le ";" qui manque à la fin de la fonction "fonction();" qui génére l'erreur je pense.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  18. #18
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    ok mais je mets quoi comme ind? le nom de l'image?

  19. #19
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    Citation Envoyé par XxArchangexX Voir le message
    sa fait longtemps que j'ai pas fais de php.

    fichier javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function AfficheImageCroix(ind)
    {
    	var obj = document.getElementById('BaliseImg'+ind); 
    	obj.innerHTML ="<img src='Croix.jpg' />";
    }
     
    function RetireImageCroix(ind)
    {
    	var obj = document.getElementById('BaliseImg'+ind); 
    	obj.innerHTML = '';
    }
    fichier Php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div onMouseOver="AfficheImageCroix(1);"> Publication 1 </div>
    <div name='BaliseImg1' id='BaliseImg1'style="margin-left: la distance depuis le cote gauche "></div>
     
    <div onMouseOver="AfficheImageCroix(2);"> Publication 2 </div>
    <div name='BaliseImg2' id='BaliseImg2'style="margin-left: la distance depuis le cote gauche "></div>
    et tu as ce petit code pour chaque publication comme sa, seul la publication survolée aura l'image de la croix
    Il faut que tu mettre en paramètre l'id de la div qui doit avoir la croix.

  20. #20
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Le probleme que je n'est pas une seule publication image, dans le code que j'ai ecrit ci dessus il y'a une boucle for pour afficher mes images donc il fallait envoyé un indice qui est unique pour la publication

Discussions similaires

  1. suppression d'une ligne dans une table
    Par Sagee dans le forum Débuter
    Réponses: 5
    Dernier message: 08/05/2012, 11h12
  2. Réponses: 3
    Dernier message: 17/12/2011, 13h51
  3. [MySQL] Suppression d'une ligne d'une table sql
    Par valvalval dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/06/2008, 10h10
  4. Réponses: 6
    Dernier message: 13/12/2007, 09h14
  5. Réponses: 3
    Dernier message: 19/09/2005, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo