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 :

PDO Mysql affiche echo [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
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2018
    Messages : 17
    Par défaut PDO Mysql affiche echo
    Bonjour,

    J'ai un code PDO Mysql pour ajouter des datas d'une base dans une autre en vérifiant une condition si le code existe déjà.
    Mon code fonctionne bien, cependant, je n'arrive pas à mettre un simple ECHO pour dire par exemple "enregistrement effectué".
    Dans mon code, la requête fonctionne et ajoute bien en base mais dès que je mets mon ECHO, il me l'affiche directement en texte
    dans la page sans avoir cliqué sur mon bouton submit.

    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
    <?php
    //Connexion bdd
    try {
        $handler = new PDO('mysql:host=localhost:3307;dbname=tests','root', '');
        $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e){
        exit($e->getMessage());
    }
     
    $codebar = isset($_POST['barcode']) ? $_POST['barcode'] : NULL;
     
    //Verification 
     
    if(!isset($error)){
    //check en base
    $sthandler = $handler->prepare("SELECT * FROM table2 WHERE conso_UpdateQty = 0 AND conso_Barcod=:barcode");
    $sthandler->bindParam(':barcode', $codebar);
    $sthandler->execute();
     
    if($sthandler->rowCount() > 0){
        echo "<center><font color='black'><b>! Code déjà scanné ! </font><br />";
    	header("Refresh: 2; URL=urlretour.php");
    } else {
     //insert en base
        $sql = 'insert into etc...';
        $query = $handler->prepare($sql);
        $query->execute(array(':barcode' => $codebar));
    // si echo ici , il s'affiche directement dans la page
    // echo "<center><font color='black'><b>! Code déjà scanné ! </font><br />";
    	    }
    }else{
        echo "erreur d'insertion, réessayez ".$error;
        exit();
    }
    ?>
    Ensuite mon HTML du formulaire.
    Merci de votre aide.
    Cordialement.

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

    Quel "bouton submit" ?

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2018
    Messages : 17
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,

    Quel "bouton submit" ?
    Dans mon code HTML, allez je mets tout voir LIGNE 82

    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    <?php
    //Connexion bdd
    try {
        $handler = new PDO('mysql:host=localhost:3307;dbname=tests','root', '');
        $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e){
        exit($e->getMessage());
    }
     
    $codebar = isset($_POST['barcode']) ? $_POST['barcode'] : NULL;
     
    //Verification 
     
    if(!isset($error)){
    //check en base
    $sthandler = $handler->prepare("SELECT * FROM table2 WHERE conso_UpdateQty = 0 AND conso_Barcod=:barcode");
    $sthandler->bindParam(':barcode', $codebar);
    $sthandler->execute();
     
    if($sthandler->rowCount() > 0){
        echo "<center><font color='black'><b>! Code déjà scanné ! </font><br />";
    	header("Refresh: 2; URL=urlretour.php");
    } else {
     //insert en base
        $sql = 'insert into etc...';
        $query = $handler->prepare($sql);
        $query->execute(array(':barcode' => $codebar));
    // si echo ici , il s'affiche directement dans la page
    // echo "<center><font color='black'><b>! Code déjà scanné ! </font><br />";
    	    }
    }else{
        echo "erreur d'insertion, réessayez ".$error;
        exit();
    }
    ?>
    // Ensuite mon HTML du formulaire.
    <!DOCTYPE html>
    <html>
        <head>
    	  <link rel="icon" type="image/png" href="favicon.ico" />
    	 <style>
    	 @import url(https://fonts.googleapis.com/css?family=Roboto:400,300,600,400italic);
     
    html, body {
    	height: 100%;
    	margin: 0; padding: 0;
      font-family: "Roboto", Helvetica, Arial, sans-serif;
      font-size: 16px;
      line-height: 20px;
      color: #777;
      background: #ff0084; /* Old browsers */
      background: -moz-linear-gradient(top, #ff0084 0%, #ff0084 100%); /* FF3.6-15 */
      background: -webkit-linear-gradient(top, #ff0084 0%,#ff0084 100%); /* Chrome10-25,Safari5.1-6 */
      background: linear-gradient(to bottom, #ff0084 0%,#ff0084 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff0084', endColorstr='#ff0084',GradientType=0 ); /* IE6-9 */
     
    }
    body {
    	display : table;
    	width: 100%;
    }
    footer {
    	display : table-row;
    	height: 100px; 
    	font-size: 8px;
        font-color: #FFF;
    }
    </style>
            <title>TEST</title>
    		  <meta charset="utf-8" />
    		  <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://unpkg.com/purecss@1.0.0/build/pure-min.css" integrity="sha384-nn4HPE8lTHyVtfCBi5yW9d20FjT8BJwUXyWZT9InLYax14RDjBj46LmSztkmNP9w" crossorigin="anonymous">
        </head>
        <body>
     
      <center>
      <form action="monfichier.php" method="POST" class="pure-form pure-form-stacked">
        <fieldset>
            <label for="barcode"><font color="white">Scannez le code barre</font></label>
            <input type="text" id="barcode" name="barcode" placeholder="Code barres" autofocus="focus"><br />
            <button type="submit" name="insert" class="pure-button button-xlarge pure-button-primary">CONSOMMER</button>
    	</fieldset>
    </form>
    </body>
       <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>
        $(function() {$('[autofocus]').focus()});
    </script>
    </html>

  4. #4
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 583
    Par défaut
    Bonjour,

    Tu appelles le même fichier pour l'ajout?

    Dans ton code tu execute sans vérifier que le formulaire a était envoyé.

    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
    $codebar = isset($_POST['barcode']) ? $_POST['barcode'] : NULL;
     
    //Verification 
    // si mon formulaire a était envoyé (nom du bouton submit) et si la donnée est renseigné(sinon aucun intéret) alors j'execute mon code
     if(!empty($_POST['insert']) && !empty($codebar))
    {
    // initialise ta connexion pdo ici
    if(!isset($error)){
    //check en base
    $sthandler = $handler->prepare("SELECT * FROM table2 WHERE conso_UpdateQty = 0 AND conso_Barcod=:barcode");
    $sthandler->bindParam(':barcode', $codebar);
    $sthandler->execute();
     
    if($sthandler->rowCount() > 0){
        echo "<center><font color='black'><b>! Code déjà scanné ! </font><br />";
    	header("Refresh: 2; URL=urlretour.php");
    } else {
     //insert en base
        $sql = 'insert into etc...';
        $query = $handler->prepare($sql);
        $query->execute(array(':barcode' => $codebar));
    // si echo ici , il s'affiche directement dans la page
    // echo "<center><font color='black'><b>! Code déjà scanné ! </font><br />";
    	    }
    }else{
        echo "erreur d'insertion, réessayez ".$error;
        exit();
    }
    }

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2018
    Messages : 17
    Par défaut
    Oui, effectivement, j'ai un seul fichier php qui contient mon code php + html (formulaire), j'emploie la méthode post.
    On peut utiliser un php + un html, mais mis à part rallonger un peu le temps de traitement et le flux, je vois pas l'intérêt.
    Je le faisais avant en Mysqli, j'avais mon formulaire en html qui appelait mon php et quand le code ajouté, je faisais un header("Refresh: 2; URL=monfichier.html")

  6. #6
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut
    Bonsoir, sépare ton code html (formulaire) de ton fichier php(traitement), ça t'épargne de ce genre de soucis. Ça permet une bonne lisibilité du code. Présentement tu ne sais pas là où ça coincé.

    Cordialement.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/10/2008, 09h08
  2. [PHP-JS] Afficher echo après X secondes
    Par @lexx dans le forum Langage
    Réponses: 7
    Dernier message: 19/08/2006, 16h25
  3. [MySQL] afficher les enregistrements apres 24h
    Par arti2004 dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/06/2006, 15h16
  4. MYSQL affiche page blanche !
    Par alex007 dans le forum Requêtes
    Réponses: 3
    Dernier message: 11/03/2006, 15h30
  5. pdo mysql
    Par zenzo dans le forum Requêtes
    Réponses: 11
    Dernier message: 09/03/2006, 00h01

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