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 :

Update PHP / requête SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Update PHP / requête SQL
    Bonjour,

    J'ai un souci d'update de données via un formulaire, les modifications ne sont pas prises en compte, et je n'ai aucune erreur qui s'affiche.
    Je précise que je suis débutante, désolé d'avance si je ne saisis pas tout !

    J'ai donc testé avec deux requêtes différentes , une préparée, puis une "simple" (en me disant que j'avais peut être mal écrite la préparée), et rien ne change, ni dans l'affichage des données sur mon écran, ni dans ma base de données.

    Voici mon code :
    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
    function updateReservationVl($db, $dateDebutModif, $heureDebutResVl, $dateFinModif, $heureFinResVl, $lieuModif, $idUtModif, $idVehiculeModif, $statut, $idResVl){
     
        $sql = "UPDATE resavl SET       dateDebutModif = :dateDebutModif,
                                        heureDebutResVl = :heureDebutResVl,
                                        dateFinModif = :dateFinModif,
                                        heureFinResVl = :heureFinResVl,
                                        lieuModif = :lieuModif,
                                        idUtModif = :idUtModif,
                                        idVehiculeModif = :idVehiculeModif,
                                        statut = :statut,
                WHERE idResVl = :idResVl
                                        ";
     
        $req = $db->prepare($sql);
        $req->bindValue(':dateDebutModif',$dateDebutModif,PDO::PARAM_STR);
        $req->bindValue(':heureDebutResVl',$heureDebutResVl,PDO::PARAM_STR);
        $req->bindValue(':dateFinModif',$dateFinModif,PDO::PARAM_STR);
        $req->bindValue(':heureFinResVl',$heureFinResVl,PDO::PARAM_STR);
        $req->bindValue(':lieuModif',$lieuModif,PDO::PARAM_STR);
        $req->bindValue(':idUtModif',$idUtModif,PDO::PARAM_STR);
        $req->bindValue(':idVehiculeModif',$idVehiculeModif,PDO::PARAM_INT);
        $req->bindValue(':idResVl',$idResVl,PDO::PARAM_INT);
        $req->bindValue(':statut',$statut,PDO::PARAM_STR);
        $req->execute();
    }
     
     
    function updateReservationVlBis($db, $dateDebutModif, $heureDebutResVl, $dateFinModif, $heureFinResVl, $lieuModif, $idUtModif, $idVehiculeModif, $statut, $idResVl)
    {
     
        $sql = "UPDATE resavl SET dateDebutModif = $dateDebutModif,
                                        heureDebutResVl = $heureDebutResVl,
                                        dateFinModif = $dateFinModif,
                                        heureFinResVl = $heureFinResVl,
                                        lieuModif = $lieuModif,
                                        idUtModif = $idUtModif,
                                        idVehiculeModif = $idVehiculeModif,
                                        statut = $statut,
                WHERE idResVl = $idResVl
                                        ";
     
        $db->query($sql);
    }
    (mes requêtes, la préparée et la normale)

    et voici où je fais appel à la fonction update :

    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
    if(isset($_GET['id'])) {
     
        if (isset($_POST['dateDebutResVl'])) {
            updateReservationVl($db,
                $_POST['dateDebutResVl'],
                $_POST['heureDebutResVl'],
                $_POST['dateFinResVl'],
                $_POST['heureFinResVl'],
                $_POST['motifResVl'],
                $_POST['idUtResVl'],
                $_POST['numImmatResVl'],
                $_POST['statut'],
                $_GET['id']);
     
          header('location:readResaVl.php');
        }
    }
    si quelqu'un voit mon erreur, car je bloque sur ça depuis une bonne heure déjà!
    par avance merci,

    Kacahuette

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    As-tu activé l'affichage des erreurs (PDO et PHP)
    Poste voir l'initialisation de $db.
    idUtModif est traité comme string, t'es sûre ?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Salut !

    pour l'affichage des erreurs oui normalement c'est activé, quand j'en ai j'ai de gros encadrés orange ^^

    voici la connexion à ma $db

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // connexion à la base de données
    $db = new PDO('mysql:host=localhost;dbname=resa64;charset=utf8','root','');
    et pour l'idUtModif tu as raison, erreur de ma part c'est un INT, j'ai modifié (mais ça n'a rien changé ça ne fonctionne toujours pas ^^)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                                        statut = :statut,
                WHERE ....
    Il y a une virgule en trop (dans les 2 fonctions).

    CONSEIL : utilise la gestion d'erreurs PDO avec try catch. (à ne pas confondre avec la gestion d'erreurs PHP )

    Il faut penser à ajouter à la connexion PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $bd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour!

    Merci pour ce conseil, en effet avec l'affichage des erreurs PDO l'affichage est plus parlant et plus précis, j'ai donc pu trouver d'où venait mon erreur!

    (j'avais bêtement utilisé des noms de champs incorrects dans ma requête préparée...)

    Ma modification s'effectue maintenant bien en bdd, mais niveau affichage, ça me supprime les lignes que je modifie, je dois avoir une incompatibilité avec mes fonctions d'affichage!

    Mais mon sujet principal est résolu, merci beaucoup =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] HTML checkbox - Récupération PHP - Requête SQL
    Par Arn_no dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 31/07/2014, 12h34
  2. [SQL] Concaténer des requêtes SQL en PHP
    Par brotelle dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/04/2006, 19h53
  3. [MySQL] php probleme de requête sql
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 03/04/2006, 23h52
  4. [SQL] Traitement de plusieurs requêtes .SQL dans un script PHP?
    Par M4x dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/03/2006, 19h59
  5. Access - Requête SQL - UPDATE
    Par tchoo83 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 19/12/2005, 15h48

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