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 :

aide sur script parrainage "maison"


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 43
    Par défaut aide sur script parrainage "maison"
    Bonjour à tous et si quelqu'un a la réponse: je suis preneuse car je suis débutante de chez débutante.

    Voila je vous explique :


    Sur le site si l'on est déjà client on peut parrainer un ami, pour cela on remplit un formulaire qui nourrit une table qui s'appelle parrainage. Dans cette table plusieurs champ dont : le champ "filleuil" qui contient le nom de l'ami en question.
    Je précise que ce formulaire marche très bien et remplit bien la table.

    Un peu plus tard l'ami en question décide de profiter des avantages d'avoir été parrainé et souhaite une consultation à prix réduit. Il va pour cela remplir un formulaire on l'on va lui demander son nom entre autre.

    Et j'aimerai trois choses :

    - si son nom correspond à une des entrées du camp filleuil de la table parrainage décrite plus haut, autoriser la validation du formulaire de réservation et donc du coup permettre à la variable insert to d'écrire les informations sur cette personne dans une autre table nommée "reservation parrainage".

    - si cette personne a déjà bénéficié d'une consultation parrainage, ne pas autorisé la validation un formulaire et afficher un message pour lui expliquer.

    Voilà mon problème, que je n'arrive pas à retranscrire en php. Je précise que si j'apprécierai que l'on me donne le bon script c'est aussi pour l'analyser, le comprendre et pouvoir à l'avenir le reproduire sur d'autres formulaires basés sur le même esprit.

    Angélique


    voici le code que j'ai tenté d'écrire mais qui ne marche pas :

    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
    <?php
    $serveur="localhost";//"
    $username="xxxxxxx";//"
    $password="xxxxxxx";//"
    $base="xxxxxxx";
     
    mysql_connect("localhost", "xxxxxxxx", "xxxxxxxxx"); // Connexion à MySQL
    mysql_select_db("xxxxxxxx"); // Sélection de la base 
     
    if( (mysql_select_db($base)==true) && ($sql = "SELECT * FROM `parrainage` WHERE `filleuil`='$id_nom' ") && (
                        $filleuil=$id_nom) 
                           )
     
    {
       $enregistrement = "INSERT INTO reservationparrainage (id_nom,id_prenom,id_datenaissance,id_heurenaissance, id_lieunaissance,id_tel,id_profession,id_mail,id_commentaire,ip,lieu_x,id_joursdisponible1,id_plagehoraire1,id_joursdisponible2,id_plagehoraire2,id_joursdisponible3,id_plagehoraire3,id_moyenpaiement, id_photo1,id_photo2,id_enregistrement,id_retractation)  VALUES ('$id_nom','$id_prenom','$id_datenaissance','$id_heurenaissance','$id_lieunaissance','$id_tel','$id_profession','$id_mail','$id_commentaire','$ip','$lieu_x','$id_joursdisponible1','$id_plagehoraire1','$id_joursdisponible2','$id_plagehoraire2','$id_joursdisponible3','$id_plagehoraire3','$id_moyenpaiement','$id_photo1','$id_photo2','$id_enregistrement','$id_retractation')";    
    mysql_query($enregistrement); 
    }
    elseif ($filleuil!=$id_nom)
    {
        $envoie="parrainage.php";@header("Location: ".$envoie); //redirige le visiteur 
                                      $messerr="Vous n'avez pas été encore parrainé.";
                                    	   } else{ echo  ("");}
     
    mysql_close();
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // on compte le nombre de lignes repondant a la condition
    $sql = "SELECT count(*) FROM parrainage WHERE filleuil='$id_nom'";
    // il faut ensuite executer la requête
    $result = mysql_query($sql);
    // puis lire le resultat 
    $nbre = mysql_result($result, 0);
    if ($nbre != 0) { // si un nom correspond :
    // requete d'insertion
    }
    else { // si aucun nom n'a été trouvé :
        $messerr="Vous n'avez pas été encore parrainé.";
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 43
    Par défaut
    merci pour ta réponse

    j'ai essayé d'insérer dans ton code ce que je pensais être bon, mais cela ne fonctionne pas. Cela n'insère rien, mais de plus cela ne bloque pas le formulaire avec un message d'erreur. L'id_nom n'étant pas bien sur celui d'un filleuil.
    Peux tu me dire pourquoi, comme cela j'apprendrai en plus.

    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
    <?php
    $serveur="localhost";//"ns15.oxito.com";
    $username="xxxxxxxxx";//"xxxxxxxx";//"xxxxxxxxx";xxxxxxxxxx
    $password="xxxxxxxx";//"";xxxxxxx
    $base="xxxxxxxxx";
     
    mysql_connect("localhost", "xxxxxxx", "xxxxxxx"); // Connexion à MySQL
    mysql_select_db("xxxxxxxx"); // Sélection de la base 
     
    $sql = "SELECT count(*) FROM visiteurs WHERE filleuil='$id_nom'";
    // il faut ensuite executer la requête
    $result = mysql_query($sql);
    // puis lire le resultat 
    $nbre = mysql_result($result, 0);
    if ($nbre != 0) { $enregistrement = "INSERT INTO reservationparrainage (id_nom,id_prenom,id_datenaissance,id_heurenaissance, id_lieunaissance,id_tel,id_profession,id_mail,id_commentaire,ip,lieu_x,id_joursdisponible1,id_plagehoraire1,id_joursdisponible2,id_plagehoraire2,id_joursdisponible3,id_plagehoraire3,id_moyenpaiement, id_photo1,id_photo2,id_enregistrement,id_retractation)  VALUES ('$id_nom','$id_prenom','$id_datenaissance','$id_heurenaissance','$id_lieunaissance','$id_tel','$id_profession','$id_mail','$id_commentaire','$ip','$lieu_x','$id_joursdisponible1','$id_plagehoraire1','$id_joursdisponible2','$id_plagehoraire2','$id_joursdisponible3','$id_plagehoraire3','$id_moyenpaiement','$id_photo1','$id_photo2','$id_enregistrement','$id_retractation')";    
    mysql_query($enregistrement); 
    }
    else { // si aucun nom n'a été trouvé :
        $messerr="Vous n'avez pas été encore parrainé.";
    }
     
     
     
    mysql_close();
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour le cas faux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: ".parrainage.php); //redirige le visiteur
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Vous n'avez pas été encore parrainé.";
    Tu ne peux par contre pas à la fois rediriger et afficher un message.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 43
    Par défaut
    Alors si je prends un id_nom qui existe en tant que filleuil, cela m'inscrit dans la bd donc là normal
    Mais si je prends un id_nom qui n'est pas celui d'un filleuil inscrit, il n'inscrit rien dans la BD donc normal, mais il n'affiche rien ni ne redirige rien donc la personne pense que l'envoi du formulaire s'est bien passé!

    Mais grand progrès et je te remercie vivement, je galère depuis 4 jours en essayant tout. A la base je suis graphiste pas programmatrice.

    je te redonne le 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
    <?php
    $serveur="localhost";//"ns15.oxito.com";
    $username="xxxxx";//"xxxxxx";//"xxxxxx";xxxxxxx
    $password="xxxxxxx";//"";St5ZzTIG
    $base="xxxxxxx";
     
    mysql_connect("localhost", "xxxxxx", "xxxxxx"); // Connexion à MySQL
    mysql_select_db("xxxxxxx"); // Sélection de la base 
     
    $sql = "SELECT count(*) FROM visiteurs WHERE filleuil='$id_nom'";
    // il faut ensuite executer la requête
    $result = mysql_query($sql);
    // puis lire le resultat 
    $nbre = mysql_result($result, 0);
    if ($nbre != 0) { $enregistrement = "INSERT INTO reservationparrainage (id_nom,id_prenom,id_datenaissance,id_heurenaissance, id_lieunaissance,id_tel,id_profession,id_mail,id_commentaire,ip,lieu_x,id_joursdisponible1,id_plagehoraire1,id_joursdisponible2,id_plagehoraire2,id_joursdisponible3,id_plagehoraire3,id_moyenpaiement, id_photo1,id_photo2,id_enregistrement,id_retractation)  VALUES ('$id_nom','$id_prenom','$id_datenaissance','$id_heurenaissance','$id_lieunaissance','$id_tel','$id_profession','$id_mail','$id_commentaire','$ip','$lieu_x','$id_joursdisponible1','$id_plagehoraire1','$id_joursdisponible2','$id_plagehoraire2','$id_joursdisponible3','$id_plagehoraire3','$id_moyenpaiement','$id_photo1','$id_photo2','$id_enregistrement','$id_retractation')";    
    mysql_query($enregistrement); 
    }
    else { // si aucun nom n'a été trouvé :
        echo "Vous n'avez pas été encore parrainé.";
    }
     
     
     
    mysql_close();
    ?>

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2008
    Messages : 33
    Par défaut
    Remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($nbre != 0) { $enregistrement = "INSERT INTO reservationparrainage (id_nom,id_prenom,id_datenaissance,id_heurenaissance, id_lieunaissance,id_tel,id_profession,id_mail,id_commentaire,ip,lieu_x,id_joursdisponible1,id_plagehoraire1,id_joursdisponible2,id_plagehoraire2,id_joursdisponible3,id_plagehoraire3,id_moyenpaiement, id_photo1,id_photo2,id_enregistrement,id_retractation)  VALUES ('$id_nom','$id_prenom','$id_datenaissance','$id_heurenaissance','$id_lieunaissance','$id_tel','$id_profession','$id_mail','$id_commentaire','$ip','$lieu_x','$id_joursdisponible1','$id_plagehoraire1','$id_joursdisponible2','$id_plagehoraire2','$id_joursdisponible3','$id_plagehoraire3','$id_moyenpaiement','$id_photo1','$id_photo2','$id_enregistrement','$id_retractation')";
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($nbre != 0) { $enregistrement = "INSERT INTO reservationparrainage (id_nom,id_prenom,id_datenaissance,id_heurenaissance, id_lieunaissance,id_tel,id_profession,id_mail,id_commentaire,ip,lieu_x,id_joursdisponible1,id_plagehoraire1,id_joursdisponible2,id_plagehoraire2,id_joursdisponible3,id_plagehoraire3,id_moyenpaiement, id_photo1,id_photo2,id_enregistrement,id_retractation)  VALUES ($id_nom,$id_prenom,$id_datenaissance,$id_heurenaissance,$id_lieunaissance,$id_tel,$id_profession,$id_mail,$id_commentaire,$ip,$lieu_x,$id_joursdisponible1,$id_plagehoraire1,$id_joursdisponible2,$id_plagehoraire2,$id_joursdisponible3,$id_plagehoraire3,$id_moyenpaiement,$id_photo1,$id_photo2,$id_enregistrement,$id_retractation)";
    ou pour plus de clarté
    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
     
    if ($nbre != 0) {
      $enregistrement = 'INSERT INTO reservationparrainage'
                               . ' ( id_nom, id_prenom, id_datenaissance, '
                               . 'id_heurenaissance, id_lieunaissance, '
                               . 'id_tel,id_profession, id_mail, '
                               . 'id_commentaire, ip,lieu_x, '
                               . 'id_joursdisponible1, id_plagehoraire1, '
                               . 'id_joursdisponible2, id_plagehoraire2, '
                               . 'id_joursdisponible3, id_plagehoraire3, '
                               . 'id_moyenpaiement, id_photo1,id_photo2, '
                               . 'id_enregistrement, id_retractation)'
                               . ' VALUES ('" . $id_nom . '","' . $id_prenom . '","'
                               . $id_datenaissance . '","' . $id_heurenaissance . '","'
                               . $id_lieunaissance . '","' . $id_tel . '","'
                               . $id_profession . '","' . $id_mail . '","'
                               . $id_commentaire . '","' . $ip . '","'
                               . $lieu_x . '","' . $id_joursdisponible1 . '","'
                               . $id_plagehoraire1 . '","' . $id_joursdisponible2 . '","'
                               . $id_plagehoraire2 . '","'
                               . $id_joursdisponible3 . '","' . $id_plagehoraire3 . '","'
                               . $id_moyenpaiement . '","' . $id_photo1 . '","'
                               . $id_photo2 . '","' . $id_enregistrement . '","'
                               . $retractation . '")';
    En tout cas en voilà une grosse requête, peut-être serait-il mieux de la décomposer en plusieurs parties ?

    EDIT du 19/09/08 -> j'ai rectifié le dernier code, il n'était pas bon

Discussions similaires

  1. [Oracle 9.2] Aide sur script SQL
    Par fmoriet dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/02/2006, 08h25
  2. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59

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