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 :

Faire un update dans mon php [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2023
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2023
    Messages : 21
    Par défaut Faire un update dans mon php
    Ma table
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Avoir create table avoir (
    Codesai int(11) not null,
    Codecam year(4) not null,
    Pu float default null,
    Primary Key(codesai,codecam))

    Lorsque je veux faire une mise a jour sur php celà ne fonctionne pas mais lorsque je le fais
    directement dans mon terminal my sql j' ai un succès.
    Voici le code PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $update=$db->prepare("UPDATE avoir SET codesai=:codesai, codecam=:codecam,pu=:pu where codesai=: codesai and codecam=: codecam");
    $update->bindvalue(':codesai',$saison);
    $update->bindvalue(':codecam',$codecam);
    $update->bindvalue(':pu',$prix);
    Nb:$codecam=campagne,
    Codesai et codecam sont issues d' une relation père père.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Quel est le message d'erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $update=$db->prepare("UPDATE avoir SET codesai=:codesai, codecam=:codecam,pu=:pu where codesai=: codesai and codecam=: codecam");
    Ta requête a 2 problèmes :
    -- Les paramètres nommés sont mal formés => :(espace)nom
    -- On évite de mettre plusieurs fois le même paramètre nommé

    https://www.php.net/pdo.prepare :
    Vous devez inclure un marqueur avec un nom unique pour chaque valeur que vous souhaitez passer dans la requête lorsque vous appelez PDOStatement::execute(). Vous ne pouvez pas utiliser un marqueur avec deux noms identiques dans une requête préparée, à moins que le mode émulation ne soit actif.

    Pour le reste :

    On évite FLOAT pour du monétaire (à cause des approximations induites), utilise plutôt DECIMAL

    Et enfin, es-tu sûr d'avoir réellement besoin de changer les valeurs de ta clef primaire ? L'opération me paraît douteuse

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2023
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2023
    Messages : 21
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $update=$db->prepare("UPDATE avoir SET codesai=:codesai, codecam=:codecam,pu=:pu where codesai=: codesai1 and codecam=: codecam1");
    $update->bindvalue(':codesai',$saison);
    $update->bindvalue(':codecam',$codecam);
    $update->bindvalue(':codesai1',$saison1);
    $update->bindvalue(':codecam1',$codecam1);
    $update->bindvalue(':pu',$prix);
    Lorsque je fais un update du prix j' ai un succès mais lorsque je fais un update du codecam ou codesai j' ai un échec.
    J' ai aucun code d' erreur.
    Je n' ai pas pu mettre la balise de l' éditeur

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Il reste toujours ce point :

    -- Les paramètres nommés sont mal formés => :(espace)nom

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2023
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2023
    Messages : 21
    Par défaut
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $update=$db->prepare("UPDATE avoir SET codesai =:codesai ,codecam=:codecam,pu=:pu  where codesai=:codesai1 and codecam=:codecam1");
    		$update->bindvalue(':codesai',$saison);
    		$update->bindvalue(':codecam',$codecam1);
    		$update->bindvalue(':pu',$prix);
    		$update->bindvalue(':codesai1',$_SESSION['saison']);
    		$update->bindvalue(':codecam1',$_SESSION['codecam']);
    		$update->execute();
    		header('location:prix.php');

    Merci j' ai trouvé une méthode pour le faire :
    1-lorsque j'arrive sur la page update creer les deux variables de session
    2-lorque je réalise l'update, la condition where prend les valeurs des variables de session dans ce cas même si je fais un
    update des trois valeur alors j' ai un succès, par contre, auparavant c'est seulement le prix qui accepte l'update.

    j'ai laisser une pièce jointe si il y' a une autre manière plus optimale, veuillez me le signifier
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. J'arrive pas faire mes windows update
    Par pierrot10 dans le forum Windows XP
    Réponses: 2
    Dernier message: 18/08/2008, 16h02
  2. [SQL-Server] Je n'arrive pas à faire tourner php avec Sql server (2005)
    Par bluecurve dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/03/2006, 18h50
  3. Une requête que je n'arrive pas à faire
    Par Denti-fritz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/12/2005, 13h53
  4. Très débutant : je n'arrive pas à faire fonctionner le JDK
    Par miltonis dans le forum Général Java
    Réponses: 20
    Dernier message: 19/10/2005, 21h20
  5. [RegEx] je n'arrive pas à faire deux regex(s?)
    Par sloshy dans le forum Langage
    Réponses: 5
    Dernier message: 17/10/2005, 16h21

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