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

Langage PHP Discussion :

tester un enregistrement dans une bdd [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut tester un enregistrement dans une bdd
    bonjour
    je crée un site xhtml, css çà va, mais je débute en php. je souhaiterai tester l'envoi d'un formulaire avec une table msql. voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <td><form name="form2" method="post" action="">
                      <label>
                      <input type="text" name="promo" id="promo">
                      </label>
                      <label>
                      <input type="submit" name="button" id="button" value="Envoyer">
                      </label>
                    </form> </td>
    le visiteur entre son code promotionnel et le programme que je doit réaliser doit vérifier si ce code existe dans la table promo.
    si le code rentré est correct, on continue
    sinon : mention d'un message d'erreur
    avec la fonction if et else je suis un peut perdu
    avez-vous une idée? Merci

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Apparemment, tu testes le formulaire sur ta meme page donc il faut que tu testes l'existence du code promo sur cette meme page egalement via php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    if(isset($_POST['promo'])){
     
    $resultat = mysql_query('SELECT * FROM promo WHERE code_promo=\''.mysql_real_escape_string($_POST['promo']).'\' LIMIT 1');
     
    if(mysql_num_rows($resultat) == 1){
    // tu rediriges vers ta page suivantes
    }else{
    // erreur : le code a pas été trouvé
    }
     
     
    }

  3. #3
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    malheureusement j'ai une erreur ici
    if(mysql_num_rows($resultat) == 1){

    le code entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     <?php    if(isset($_POST['promo'])){
     
    $resultat = mysql_query('SELECT * FROM promo WHERE code_promo=\''.mysql_real_escape_string($_POST['promo']).'\' LIMIT 1');
     
    if(mysql_num_rows($resultat) == 1){
    header("Location: fiche_promo.php");// tu rediriges vers ta page suivantes
    }else{
        echo "le code n'apas été trouvé !";// erreur : le code a pas été trouvé
    }
     
     
    }
      ?>

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Cela veut probablement dire que ta requete a eu une erreur. Il faut que tu remplaces code_promo de la requete par ton champs en base

    et place aussi un mysql_error() a la fin de ta requete afin de voir les erreurs générées :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $resultat = mysql_query('SELECT * FROM promo WHERE code_promo=\''.mysql_real_escape_string($_POST['promo']).'\' LIMIT 1') or die(mysql_error());

  5. #5
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    erreur maintenant ici:
    header("Location: index.php");// tu rediriges vers ta page suivantes

    le code entier:
    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
    <?php if(isset($_POST['promo'])){
     
    $resultat = mysql_query('SELECT * FROM promo WHERE promo=\''.mysql_real_escape_string($_POST['promo']).'\' LIMIT 1') or die(mysql_error());
     
     
    if(mysql_num_rows($resultat) == 1){
    header("Location: index.php");// tu rediriges vers ta page suivantes
     
    }else{ 
    echo "le code n'a pas été trouvé !";// erreur : le code a pas été trouvé
    }
     
     
    }
     ?>

  6. #6
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    Merci Madfrix,
    çà fonctionne, je mettais cette fonction après la structure html.
    néanmoins j'ai un problème avec le message d'erreur :
    echo "le code n'a pas été trouvé !"
    il sort en dehors de ma page , comment le faire apparaître dans la page html à un endroit précis.
    Merci encore

  7. #7
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    il faut que tu stockes l'info dans une variable $erreur et que tu l'ecrives dans ton html à l'endroit ou tu veux :


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
     
    <?php
    if(isset($erreur)){
       echo '<div id="erreur">'.$erreur.'</div>';
    }
    ?>
     
    ...

  8. #8
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    merci de ta réponse, je plane un peut, j'ai compris le principe mais c'est le code?
    Comment tu stockes l'info dans une variable $erreur ? à ce niveau
    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
    <?php if(isset($_POST['promo'])){
     
    $resultat = mysql_query('SELECT * FROM promo WHERE promo=\''.mysql_real_escape_string($_POST['promo']).'\' LIMIT 1') or die(mysql_error());
     
     
    if(mysql_num_rows($resultat) == 1){
    header("Location: index.php");// tu rediriges vers ta page suivantes
     
    }else{ 
    echo "le code n'a pas été trouvé !";// erreur : le code a pas été trouvé
    }
     
     
    }
     ?>
    le message d'erreur apparaîtra en dessous du formulaire

  9. #9
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php if(isset($_POST['promo'])){
     
    $resultat = mysql_query('SELECT * FROM promo WHERE promo=\''.mysql_real_escape_string($_POST['promo']).'\' LIMIT 1') or die(mysql_error());
     
     
    if(mysql_num_rows($resultat) == 1){
         header("Location: index.php");
    }else{ 
         $erreur = "le code n'a pas été trouvé !";
    }
     
    }
     ?>

    et donc ensuite dans ton HTML, tu testes l'existence de la variable $erreur comme je t'ai montré au dessus

  10. #10
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    voilà
    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
    ?>
    <?php if(isset($_POST['promo'])){
     
    $resultat = mysql_query('SELECT * FROM promo WHERE promo=\''.mysql_real_escape_string($_POST['promo']).'\' LIMIT 1') or die(mysql_error());
     
     
    if(mysql_num_rows($resultat) == 1){
    header("Location: panier.php");// tu rediriges vers ta page suivantes
     
    }else{ 
    $erreur='le code est erroné';// erreur : le code a pas été trouvé
    }
     
     
    } 
     
     ?>
    avec ton code dans la partie html ou je désire çà fonctionne
    Merci encore c'est très sympa de ta part et bon week-end je progresse , je progresse

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

Discussions similaires

  1. [WD10] Récupérer le num d'enregistrement dans une BDD HF
    Par lepirate dans le forum WinDev
    Réponses: 7
    Dernier message: 11/07/2009, 18h59
  2. [WD10] Connaitre le numéro d'enregistrement dans une BDD HF ?
    Par lepirate dans le forum WinDev
    Réponses: 3
    Dernier message: 27/06/2009, 19h33
  3. Incrémenter une lettre pour enregistrement dans une bdd
    Par baggie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2008, 17h26
  4. Réponses: 2
    Dernier message: 17/04/2007, 12h44
  5. [C#] Supprimer un enregistrement dans une BDD
    Par Filippo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/07/2006, 13h02

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