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

PHP & Base de données Discussion :

Sauvegarde ajout nouveau module + gestion de l'ordre PHP


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Points : 50
    Points
    50
    Par défaut Sauvegarde ajout nouveau module + gestion de l'ordre PHP
    Bonjour à tous,

    J'ai un souci au niveau de la sauvegarde de mes modules.
    En effet, j'ai un système qui permet l'ajout d'un nouveau module et modification de la position des modules (par glisser-déposer).
    Mon système est constitué de 3 étapes :
    - 1 : Ajout nouveau module et sauvegarder.
    - 2 : Mise à jour de la position des modules.
    - 3 : Ajout nouveau module et gestion d'ordre des modules en même et sauvegarde.

    Mon problème est que je n'arrive pas à faire ma sauvegarde. Je récupère bien mes données via la console mais je ne les enregistre pas ni les mettre à jour pour le cas de la gestion d'ordre des modules. Merci pour votre aide.

    Voici mon code dans le fichier jsfiddle pour ce qui est côté : HTML + CSS + JS :https://jsfiddle.net/mecano/fe7fjzd2/


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    // include connection file
        require_once('db.php');
     
        if (isset($_POST['datas'])){
            $datas = json_decode($_POST['datas']);
            var_dump($datas);
     
            function update_module($id,$rang){
                $sql = "UPDATE test_newsletter SET position = :rang WHERE id = :id";
                $datas = array(":id"=>$id, ":rang"=>$rang);
                return queryExec($sql,$datas);
            }
            function insert_module($text,$img,$rang,$datatype){
                $sql = "INSERT INTO test_newsletter (texte, image, position, datatype) VALUES (:texte, :img, :rang, :type)";
                $datas = array(":texte"=>$text, ":img"=>$img, ":rang"=>$rang, ":type"=>$datatype);
                return queryExec($sql,$datas);
            }
     
            function queryExec($sql,$datas){
                global $db;
                try {
                    $req = $db->prepare($sql);
                    $res = $req->execute($datas);
                    $result = array(
                        'status'=> $res,
                        'msg'=>'Module enregistré avec success !',
                        'debug'=>array("requete"=>$sql, "datas"=>$datas)
                    );
                } catch (Exception $e) {
                    //erreur dans la requete
                    $result = array(
                        'status'=>false,
                        'msg'=>'Erreur ! '.$e->getMessage(),
                        'debug'=>array("requete"=>$sql, "datas"=>$datas)
                    );
                }
                return $result;
            }
     
            foreach ($datas as $val) {
                $id = !empty($val->id) ? $val->id : NULL;
                $rang = isset($val->rang) ? $val->rang : "";
                $text = isset($val->text) ? $val->text : "";
                $img = isset($val->img) ? $val->img : "";
                $datatype = isset($val->datatype) ? $val->datatype : "";
     
                $debug_count = 0;
                if ($id && $rang) {
                    $debug_count += 1;
                    $msg = update_module($id,$rang);
                } else if ($text && $img && $rang && $datatype) {
                    $debug_count += 100;
                    $msg = insert_module($text,$img,$rang,$datatype);
                } else if ($id && $text && $img && $rang && $datatype) {
                    $debug_count += 10000;
                    $msg = update_module($id,$rang);
                    $msg = insert_module($text,$img,$rang,$datatype);
                } else {    
                    $debug_count += 100000;
                    $msg = array( 'status'=>false,
                        'msg'=>"Erreur ! Echec de mise à jour !",
                        'debug'=>$_POST
                    );
                }
            }
        }
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    // Partie affichage de mes modules 
    
        // Contenu de la table `newsletter`
        INSERT INTO `test_newsletter` (`id`, `texte`, `image`, `position`, `datatype`) VALUES
        (1, 'NULL', 'http://zupimages.net/up/17/32/bgot.jpg', '4', 'images'),
        (2, 'Oportunum est, ut arbitror, explanare nunc causam, quae ad exitium praecipitem.', 'http://zupimages.net/up/17/32/bgot.jpg', 
        '5', 'texte-image'),
        (3, 'Oportunum est, ut arbitror, explanare nunc causam, quae ad exitium praecipitem.', 'NULL', '6', 'textes');
    
        <div id="bloc_2">
                <?php foreach ($rows as $row) { 
                    switch ($row['datatype']) {    
                        case "images":
                ?>
                    <div id="div_1" class="drag-drop" data-id="<?=$row['id'];?>" data-position="<?=$row['position'];?>" data-type="images">
                        <img src="<?=$row['image'];?>" width="120" height="70">
                        <img src="<?=$row['image_2'];?>" width="120" height="70">
                    </div>
                <?php
                            break;
                        case "texte-image":
                ?> 
                    <div id="div_2" class="drag-drop" data-id="<?=$row['id'];?>" data-position="<?=$row['position'];?>" data-type="texte-image">
                        <div class="size-paragraphe margin-elt"><?=$row['texte'];?></div>
                        <div><img src="<?=$row['image'];?>" width="50" height="50"></div>
                    </div>
                <?php
                            break;
                        case "image-texte":
                ?> 
                    <div id="div_2" class="drag-drop" data-id="<?=$row['id'];?>" data-position="<?=$row['position'];?>" data-type="image-texte">
                        <div class="margin-elt float-elt"><img src="<?=$row['image'];?>" width="50" height="50"></div>
                        <div class="size-paragraphe"><?=$row['texte'];?></div>
                    </div>
                <?php
                            break;
                        case "textes":
                ?>    
                    <div id="div_3" class="drag-drop" data-id="<?=$row['id'];?>" data-position="<?=$row['position'];?>" data-type="textes">
                        <p class="size-paragraphe"><?=$row['texte'];?></p>
                        <p class="size-paragraphe"><?=$row['texte'];?></p>
                    </div>
                <?php
                            break;
                        default: 
                            echo '';
                      }    
                } ?>    
                </div>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu as fait un peu de debugage tu devrais quand même avoir cerné un peu plus le problème.

    Tu dis que "la sauvegarde" ne se fait pas ; je suppose que tu parles de l'insertion.
    Si c'est bien ça, est-ce que la fonction insert_module() est bien appellée ?
    Si oui, est-ce que la requête fonctionne etc.
    Si non, que valent les paramètres de la condition If juste au dessus etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Points : 50
    Points
    50
    Par défaut
    Re @sabotage,

    Merci d'avoir pris le temps de me répondre.
    Pour répondre à tes questions :
    - Oui je parle bien de l'insertion et de la mise à jour
    - Pour ma requête elle fonctionne bien car je l'ai déjà tester voir mais pour ce qui est de la fonction elle n'est pas appelée logiquement
    - Les paramètres de la condition If correspondent aux valeurs des modules que je récupère via ma requête ajax dans le lien jsfiddle que j'ai mis ci-dessous : https://jsfiddle.net/mecano/w43w5tnq/1/

    Soit :
    - $id qui correspond à la valeur de l'attribut data-id
    - $rang qui correspond à la valeur de l'attribut data-position
    - $text qui correspond au texte d'un module ajouté
    - $img qui correspond à l'image d'un module ajouté
    - $datatype qui correspond à la valeur de l'attribut data-type

    Pour la mise à jour je n'ai besoin que de : $id, $rang mais l'insertion j'ai besoin que de : $text, $img, $rang, $datatype. Si je fais la mise à jour en même temps que l'insertion j'aurais besoin de toutes les variables.

    Merci
    Cdlt,

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu ne rentres pas dans ton IF c'est qu'une de tes valeurs n'est pas bonne.
    Il faut les contrôler.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Points : 50
    Points
    50
    Par défaut
    Est-ce que le problème n'est pas lié au fait que je passe l'ID quelque soit le cas ?

    Je pense que le problème est de ce côté JS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ordre.push({
            id: my.data("id" ),
            rang: my.data('position'),
            datatype: my.data('type'),
            img: img,
            text: text
        });
    Si je l'enlève à ce niveau je n'aurais pas d'ID pour la mise à jour.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Franchement plutôt que de faire des suppositions, il vaut mieux regarder directement ce que ce passe dans l'execution, tu auras la réponse.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [V8] Ajouter le menu "Articles" dans un nouveau module
    Par othman3535 dans le forum Odoo (ex-OpenERP)
    Réponses: 6
    Dernier message: 22/01/2015, 11h32
  2. ajouter un nouveau module || modéle à NS3
    Par mimi-imene-91 dans le forum Débuter
    Réponses: 0
    Dernier message: 02/03/2013, 10h54
  3. Ajout d'un nouveau module a une application silverlight
    Par olivier.beaud dans le forum Silverlight
    Réponses: 7
    Dernier message: 24/08/2011, 15h54
  4. [Release] Nouveau module : Gestion de vidéos
    Par Baptiste Wicht dans le forum Collections
    Réponses: 0
    Dernier message: 28/03/2009, 16h42

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