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 :

Probleme requete update avec variable.


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Probleme requete update avec variable.
    Bien que j ai cherché sur le Forum et repris mon code dèja deux fois.
    je me trouve coincé avec cette requête quelqu'un pourrait il la vérifier et m'éguiller un peu .

    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
     
    <?php
    // Connexion 
    -----------------------------------------------------------------------    
        // Insertion 
       $req = $bdd->prepare('UPDATE tournois SET genre = :genre, roomlive = :roomlive, buyin = :buyin, participant = :participant, classement = :classement, gains = :gains WHERE datation = :datation');
    $req->execute(array(
    					'genre' => $genre,
    					'roomlive' => $roomlive,
    					'buyin' => $buyin,
    					'participant' => $participant,
    					'classement' => $classement,
    					'gains' => $gains,
    					'datation' => $datation
    					));
     
    header('Location: index.php');
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    ?>
    Aucun message d'erreur mais la BD ne s'update pas .
    Merci de votre oeil exterieur

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    il manque les ":" partout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       $req = $bdd->prepare('UPDATE tournois SET genre = :genre, roomlive = :roomlive, buyin = :buyin, participant = :participant, classement = :classement, gains = :gains WHERE datation = :datation');
    $req->execute(array(
    					':genre' => $genre,
    					':roomlive' => $roomlive,
    					':buyin' => $buyin,
    					':participant' => $participant,
    					':classement' => $classement,
    					':gains' => $gains,
    					':datation' => $datation
    					));
    => PDO::prepare (Exemple #1)
    => PDOStatement::execute (Exemple #2)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Donc j ai corrigé cette erreur, en faite sur mon code en ligne j avais deja corigé.

    Mais j ai toujours le mm probleme puisque pas Up sur ma base de donnée.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $req = $bdd->prepare('UPDATE tournois SET genre = :genre, roomlive = :roomlive, buyin = :buyin, participant = :participant, classement = :classement, gains = :gains WHERE datation = :datation');
    $req->execute(array(
    					':genre' =>$genre,
    					':roomlive' => $roomlive,
    					':buyin' => $buyin,
    					':participant' => $participant,
    					':classement' => $classement,
    					':gains' => $gains,
    					':datation' => $datation
    					));
    On est bien d'accord que on ne met rien de plus dans la première ligne ?
    Je me demande si mon formulaire de poste envoie bien les donnée je ne sais plus comment verifier ca .
    pour donner une idée mon formulaire recupere mes donnees, les affiches et me permet de modifier via la fonction 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
    <form action="trt_post_update.php" method="post">
    <table id ="nouvelle_entree" >
    <tr>
    		<td><input id="datation" name="datation" type="" value="<?php echo $donnees['datation']; ?>"/></td>
    		</table>
     
    <?php	
        }
     
        $reponse->closeCursor(); // Termine le traitement de la requête
     
    }
    catch(Exception $e)
    {
        // En cas d'erreur précédemment, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
    }
     
     
    ?>
    </form>
    cela parrait il bon ?

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Points : 229
    Points
    229
    Par défaut
    Salut, personnellement j'utilise une technique très basique.
    Je au dessus de mon "prepare", je déclare une variable $sql contenant le ma requète, dans ton cas

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = 'UPDATE tournois SET genre = :genre, roomlive = :roomlive, buyin = :buyin, participant = :participant, classement = :classement, gains = :gains WHERE datation = :datation'.
     
    $req = $bdd->prepare($sql);

    Et juste en dessous, je var_dump $sql.

    Si j'ai une valeur de retour, c'est que le script n'est pas interrompu avant son exécution, dans ce cas, je vérifie l'ensemble de ma requête.

    En revanche, si rien ne s'affiche, c'est que le script n'atteint pas la requête, soit php rencontre une erreur avant, soit la condition pour atteindre la requête n'est pas remplie.

    Si n'affirme pas que ma méthode est la meilleur, mais elle rempli son rôle qui est de m'afficher visuellement si ma requête est atteinte ou non.

    Si tu as des questions, n'hésites pas.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Avec affichage d'erreur :
    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
    <?php
    // Connexion 
    -----------------------------------------------------------------------    
    try {
    	// UPDATE 
    	$req = $bdd->prepare('UPDATE tournois SET genre = :genre, roomlive = :roomlive, buyin = :buyin, participant = :participant, classement = :classement, gains = :gains WHERE datation = :datation');
    	$req->execute(array(
    			':genre' => $genre,
    			':roomlive' => $roomlive,
    			':buyin' => $buyin,
    			':participant' => $participant,
    			':classement' => $classement,
    			':gains' => $gains,
    			':datation' => $datation
    			));
    	$req->closeCursor();
    	$req 		= NULL;
    } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }
    ?>

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Euhhh

    Pourquoi le type est vide ???

    Text ou autre c ça qui merde peut être
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    il manque les ":" partout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       $req = $bdd->prepare('UPDATE tournois SET genre = :genre, roomlive = :roomlive, buyin = :buyin, participant = :participant, classement = :classement, gains = :gains WHERE datation = :datation');
    $req->execute(array(
    					':genre' => $genre,
    					':roomlive' => $roomlive,
    					':buyin' => $buyin,
    					':participant' => $participant,
    					':classement' => $classement,
    					':gains' => $gains,
    					':datation' => $datation
    					));
    => PDO::prepare (Exemple #1)
    => PDOStatement::execute (Exemple #2)
    pas besion des :

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Avec affichage d'erreur :
    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
    <?php
    // Connexion 
    -----------------------------------------------------------------------    
    try {
    	// UPDATE 
    	$req = $bdd->prepare('UPDATE tournois SET genre = :genre, roomlive = :roomlive, buyin = :buyin, participant = :participant, classement = :classement, gains = :gains WHERE datation = :datation');
    	$req->execute(array(
    			':genre' => $genre,
    			':roomlive' => $roomlive,
    			':buyin' => $buyin,
    			':participant' => $participant,
    			':classement' => $classement,
    			':gains' => $gains,
    			':datation' => $datation
    			));
    	$req->closeCursor();
    	$req 		= NULL;
    } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }
    ?>
    la try ... catch, focntionne uniquement si le mode d'erreur est en exception,
    le closeCursor sert à rien, le $req = NULL, aussi
    c'est pas die mais exit
    de tout façon un exception arrête deja le code en affichant le message

    Il faut activer les erreurs pour les voir
    http://php.net/manual/fr/pdo.error-handling.php

  9. #9
    Invité
    Invité(e)
    Par défaut
    @stealth35 : je te crois volontier, c'est toi le spécialiste.
    Pourtant, je pense avoir bien suivi ce tuto : Comprendre PDO...
    Mais je n'en suis encore qu'au stade "débutant éclairé" (à la bougie) en PDO.
    Tant que ça fonctionne, je suis content.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Fench Voir le message
    Euhhh

    Pourquoi le type est vide ???

    Text ou autre c ça qui merde peut être
    Cela ne viens pas de la mais merci d'avoir jeté un oeil

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    $req= mysql_query ("UPDATE tournois SET genre='$genre', genre='$genre' WHERE datation='$datation'");

    j'essaie d'écrire une requête sans la préparer pensez vous que ça puisse marcher ?
    je l'ai mise en ligne pas de message d 'erreurs mais pas update dans la BDD

Discussions similaires

  1. Requete Update avec caractere à probleme !
    Par glucose71 dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/08/2012, 22h43
  2. MySQL: Probleme d'UPDATE avec sous requete SELECT
    Par simonius dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/11/2007, 14h57
  3. [requete SQL] Probleme requete UPDATE
    Par Shiryu44 dans le forum JDBC
    Réponses: 12
    Dernier message: 10/03/2005, 11h41
  4. probleme requete update
    Par Amandine62 dans le forum ASP
    Réponses: 12
    Dernier message: 27/01/2005, 11h15
  5. [version] Requete Update avec différentes versions de mySQL
    Par regbegpower dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/01/2004, 17h19

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