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 :

Verifier présence BDD, afficher numéro et modifier si besoin [MySQL]


Sujet :

PHP & Base de données

Vue hybride

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut Verifier présence BDD, afficher numéro et modifier si besoin
    Bonjour à tous,

    Je n'arrive pas à mettre en place ma commande mysql pour une vérification de présence dans la base de donnée ensuite afficher cette donnée et si besoin la modifier

    Voici mon tout petit 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
     
    $fixe='0123456789';
     
     
    $con=mysqli_connect("localhost","id","mdp","clients")or die("Impossible de se connecter");
     
    mysqli_select_db($con,"clients") or die("Impossible de se connecter à la BDD clients montceau");
     
     
    $verifpresence = mysqli_query($con,"SELECT clients FROM identite WHERE Fixe=$fixe'") or die ('marche pas');	
     
    if {' le client à un numéro de téléphone est il toujours d actualité ? Si oui il passe au remplissage de son adresse '}
     
    else
     
    { le client n as pas de numéro de téléphone ou celui ci doit être mit à jour il rempli le formulaire }

    Je vous explique,

    Si le client est déja présent dans la BDD il à rempli un numéro de téléphone mais on lui demande si il est toujours à jour

    Si il est toujours à jour il passe à la saisi d'adresse
    Si non, il saisi son nouveau numéro de téléphone puis à la saisi d'adresse

    Je sais qu'on doit faire un select Nom, Prénom et numéro de téléphone pour vérifier si c'est la bonne personne c'est surtout le if et le else que je ne sais pas mettre en place

    Si vous pouvez à m'aiguiller sur la mise en place de cette requête

    Merci d'avance

  2. #2
    Membre chevronné Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Par défaut
    Bonjour,

    Déjà il y a plusieurs chose à revoir dans ton code, dans un premier temps pour ton if et ton else c'est des () et n'ont pas des {} qu'il faut utiliser.

    Je pense que ton code doit afficher des messages d'erreur ici et là. Ensuite ton else il faut revoir ta syntaxe pour afficher du texte il faut par exemple faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'le client n as pas de numéro de téléphone ou celui ci doit être mit à jour il rempli le formulaire';
    Idem pour ton if.

    Pour le soucis de ta requête il y a une coquille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $verifpresence = mysqli_query($con,"SELECT clients FROM identite WHERE Fixe=$fixe'") or die ('marche pas');

    A la fin de ta requête "Fixe=$fixe'" tu as un ' de trop qui doit renvoyer une erreur mysql, autre chose pense à regarder du côté de mysqli_prepare() pour améliorer la sécurité de ton application car là tu as une potentiellement une injection SQL.

    @+

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ce que tu veux vérifier c'est si un client donné a un numéro de téléphone renseigné ou si un téléphone donné est déjà utilisé par un client ?

    Dans le 1er cas, il faut que tu récupères les informations de ce client et que tu testes la valeur du champ Fixe.
    Dans le 2e, il faut que tu recherches tous les clients qui utilisent ce numéro de téléphone.

    Dans tous les cas, ton client doit avoir un identifiant unique dans ta base, que ce soit un numéro de client (du genre numéro auto-généré) ou une combinaison d'informations du genre nom+prénom+date de naissance (pour gérer les homonymes).


    Citation Envoyé par Inazo Voir le message
    ton else il faut revoir ta syntaxe pour afficher du texte il faut par exemple faire :
    Idem pour ton if.
    Je pense que Funky a juste mis du texte pour indiquer ce qu'il voudrait ce que ça fasse à quel endroit et non du code
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut
    Bonjour à vous deux,

    Alors si un client vient sur la borne de commande il insère sa carte vitale, celle-ci est lu.

    Je récupère Nom,Prénom, Date de naissance et son numéro de sécu'. Ils sont automatiquement inséré la BDD même sans numéro de téléphone

    J'affiche ensuite les éléments sur une page

    verification.php

    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
    <?php
    include 'donnee.php';
    //session_start();
     
    echo "Bonjour merci de vérifier vos infomations ci dessous: ";echo "<br>";
     
     
    echo "<br>";
    echo "Votre nom : ";
    echo $nom; 
    echo "<br>";
    echo "Votre Prénom : ";
    echo $prenom;
    echo "<br>";
    echo "Votre date de naissance : ";
    echo $date;
    echo "<br>";
    echo "Votre numéro sécurité sociale : ";
    echo $numero;
    echo "<br>";
     
    $file = 'Fichier_ok.xml';
    $newfile = 'clients/Fichier_client.xml';
     
    if (!copy($file, $newfile)) {
     echo "La copie du fichier $file n'a pas réussi...\n";
    }
     
    echo "scanner votre prescription médical";
    ?>
     
    <html>
     
            <form method="link" action="test.php">
                <input type="submit" name="valider" value="Valider"/>
            </form>
     
    </html>
    Lorsque le client valide je dois vérifier si il dispose d'un numéro de téléphone

    Si oui = Est-il toujours à jour donc la on fait un update sinon il aura le choix de laisser la case vide si il à toujours le même
    Si non = Il entre son numéro

    J'ai avancé un peu sur mon code :

    test.php

    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
     <?php
    //session_start();
    include 'donnee.php';
     
    $con=mysqli_connect("localhost","","mdp","clients_montceau")or die("Impossible de se connecter");
     
    mysqli_select_db($con,"clients_montceau") or die("Impossible de se connecter à la BDD clients montceau");
     
     
    $query = "SELECT clients_montceau FROM identite WHERE nom='$nom' and prenom='$prenom' and Fixe='$fixe'" or die ('marche pas $query');						       
     
    $result = mysqli_query($con,"SELECT * FROM identite WHERE nom='$nom' and prenom='$prenom' and Fixe='$fixe'") or die ('marche pas $result');
    $id = mysqli_fetch_row($result);
    //var_dump ($id);
    if ($id)
    	{
     
    	$miseajour = 'mise a jour!';
    			include 'majtel.php';
    			exit();
     
    	}
    else
    	{
    		$telephone = 'telephone';
    		include 'telephone.php';
    		exit();
    	}
    	exit();
    ?>
    Ne pas prendre en compte ma variable $fixe celle-ci ne fonctionne pas

    Maintenant ou je bloque mais je continue de me creuser la tête c'est comment afficher le numéro de téléphone qui est dans la base de donnée et l'envoyer sur la page pour mettre à jour son numéro ou si il n'y a pas de numéro l'envoyer sur le formulaire pour mettre son numéro de téléphone

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut
    J'ai avancé sur mon code pouvez-vous me dire si cela est "propre" car étant novice ça doit pas l'etre

    Ma page de test.php

    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
     <?php
    //session_start();
    include 'donnee.php';
     
    $con=mysqli_connect("localhost","root","Supp0rt123","clients_montceau")or die("Impossible de se connecter");
     
    mysqli_select_db($con,"clients_montceau") or die("Impossible de se connecter à la BDD clients montceau");
     
     
    $query = "SELECT clients_montceau FROM identite WHERE nom='$nom' and prenom='$prenom' and Fixe" or die ('marche pas $query');						       
     
    $result = mysqli_query($con,"SELECT * FROM identite WHERE nom='$nom' and prenom='$prenom' and Fixe") or die ('marche pas $result');
    $id = mysqli_fetch_row($result);
     
    if ($id)
    	{
     
    	$miseajour = 'mise a jour!';
    			include 'majtel.php';
    			exit();
     
    	}
    else 
    	{
    		$telephone = 'telephone';
    		include 'telephone.php';
    		exit();
    	}
    	exit();
     
     
     
     
     
    ?>
    Ma page de majtel.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req = "SELECT Fixe FROM identite WHERE (Nom = '$nom' and Prenom = '$prenom' and Fixe IS NOT NULL) ";
    $res = $con->query($req);
    if($data = mysqli_fetch_assoc($res))
    Mon select pour afficher la valeur Fixe de ma BDD m'affiche une valeur vide alors que j'ai bien un numéro de téléphone

    Nom : Capture.PNG
Affichages : 1076
Taille : 7,7 Ko

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut
    Alors j'ai avancé donc je n'ai plus les problèmes ci dessus

    Mais ou je coince maintenant c'est :

    Si le client ne change pas de numéro il ne faut pas que mon update efface son téléphone et la actuellement c'est ce qui se passe... Il faut qu'il garde l'ancienne valeur donc le numéro qui est toujours en cours et présent dans la BDD

    Voici mes updates mais aucun ne fonctionne comme je le souhaite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $con->query("UPDATE identite SET Fixe ='$_POST[nouv_tel_fixe]' WHERE nom='$nom'");
    $con->query("UPDATE identite SET Fixe = '$_POST[nouv_tel_fixe]' WHERE (coalesce(Fixe) <> '$test]' )nom='$nom'");
    $con->query("UPDATE identite SET Fixe = CASE WHEN Fixe= '$_POST[nouv_tel_fixe]' or Fixe IS NULL THEN '$test'END, WHERE nom='$nom'");

  7. #7
    Invité
    Invité(e)
    Par défaut
    D'un poit de vue "CONCEPTION" :
    Citation Envoyé par Funky89 Voir le message
    Si le client est déja présent dans la BDD il à rempli un numéro de téléphone mais on lui demande si il est toujours à jour...

    ...on doit faire un select Nom, Prénom et numéro de téléphone pour vérifier si c'est la bonne personne...
    QUESTION : comment sais-tu de c'est bien LA BONNE PERSONNE qui indique les nom, prénom... ?
    Si il suffit de remplir les nom, prénom dans un formulaire (accessible par n'importe qui), N'IMPORTE QUI peut le faire, et modifier les infos d'AUTRES PERSONNES !

    => Généralement, pour qu'un "client" puisse modifier SES PROPRES informations (et personne d'autre), il doit se connecter à "son compte" avec un login et un mot de passe.

    Quid de cette étape ?

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

Discussions similaires

  1. Afficher numéro de ligne sur Eclipse
    Par tit_oune dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 24/10/2011, 14h03
  2. Donnée affichée dans liste modifiable
    Par puppusse79 dans le forum Access
    Réponses: 9
    Dernier message: 13/12/2006, 15h31
  3. [ADO.Net][VB.NET 2.0] Pourquoi ma bdd n'est pas modifiée ?
    Par olivier57b dans le forum Accès aux données
    Réponses: 5
    Dernier message: 30/04/2006, 21h51
  4. [IDE][VS2003]Comment afficher numéros de lignes du code?
    Par Alexj51 dans le forum Visual Studio
    Réponses: 2
    Dernier message: 01/03/2006, 10h42
  5. [JRadioButton] Afficher l'icône modifiée
    Par l'obstiné dans le forum Composants
    Réponses: 2
    Dernier message: 24/08/2004, 14h10

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