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 :

Formulaire a requete sql condition


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant en alternance
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Par défaut Formulaire a requete sql condition
    Bonjour à tous,

    J'ai un petit soucis .

    j'ai un formulaire de recherche en HTML disposant de plusieurs champs (10champs).

    je voudrais savoir comment construire ma requête si par exemple j'ai 9 champs de rempli ou juste 1 champs par exemple.

    requete select (valeur post qui ont été saisies)
    from table

  2. #2
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Tu passe par des isset et tu concatène avec ce qui a été saisi

  3. #3
    Membre confirmé
    Homme Profil pro
    Etudiant en alternance
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Par défaut
    Merci de ta réponse EIN-LESER
    mais en fesant des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if isset $mavariable
    {
    requete $mavariable 
    }
    je devrais faire cette étape 10 fois c'est bien ça?

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $requete="select from matable where";
     
    if(isset($_POST['mavariable1']))
    {
        $requete=$requete."champ1=".$_POST['mavariable1'];
    }
    Plus tôt comme sa pour le nombre d'inputs a vérifier (10 je crois pour toi)
    De cette manière il te concaténera dans ta requête que les champs choisi.

  5. #5
    Membre confirmé
    Homme Profil pro
    Etudiant en alternance
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Par défaut
    Si je fais de cette facon sa marchera également ?
    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
     
     <?php
    // On commence par récupérer les champs
    if(isset($_POST['datedeb']))      $datedeb=$_POST['datedeb'];
    else      $datedeb="";
     
    if(isset($_POST['datedfin']))      $datedfin=$_POST['datedfin'];
    else      $datedfin="";
     
    if(isset($_POST['application']))      $application=$_POST['application'];
    else      $application="";
     
    if(isset($_POST['motsclefs']))      $motsclefs=$_POST['motsclefs'];
    else      $motsclefs="";
     
     
           // connexion à la base
    $db = mysql_connect('localhost', 'login', 'password')  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
     
        mysql_select_db('nom_de_la_base',$db)  or die('Erreur de selection '.mysql_error());
     
        // on écrit la requête sql
        $sql = "select $datedeb,$datedfin,$application,$motsclefs from ma_table where condition";
     
        // on insère les informations du formulaire dans la table
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
     
        mysql_close();  // on ferme la connexion
        } 
    ?>

  6. #6
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    en le faisant comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "select $datedeb,$datedfin,$application,$motsclefs from ma_table where condition";
    tu aura des erreurs si tout n'est pas saisi car ta requette resembrera a sa si lapersonne n'a pas saisi $datefin par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'select "madatedebut","","monaplication","motsclefs" from ma_table where condition';
    Il serait plus simple de faire ta concaténation a fur et a mesure.

  7. #7
    Membre confirmé
    Homme Profil pro
    Etudiant en alternance
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Par défaut
    Merci pour ta réponse EIN-LESER j'ai bien compris le principe je te remercie encore

  8. #8
    Membre confirmé
    Homme Profil pro
    Etudiant en alternance
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Par défaut
    j'ai refais le code je sais pas si c'est la meilleures solus mais sa marche bien
    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
     
    <?php
    // connexion à la base
    //$db = mysql_connect('localhost', 'login', 'password')  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
     
      //  mysql_select_db('nom_de_la_base',$db)  or die('Erreur de selection '.mysql_error());
     
    // on écrit la requête sql
    $sql = "select ";
    $virgule=",";
    //on concatene ce qui doit l'etre
    if(!empty($_POST['datedeb']))
    {
     
    	if((!empty($_POST['datefin'])) or (!empty($_POST['application'])) or (!empty($_POST['motsclefs'])))
    	{
    		$sql = $sql.$_POST['datedeb'].$virgule;	
    	}
    	else
    	{
    		$sql = $sql.$_POST['datedeb'];	
    	}
    }
     
     
    if(!empty($_POST['datefin']))
    {
     
    	if((!empty($_POST['application']))or(!empty($_POST['motsclefs'])))
    	{
    		$sql = $sql.$_POST['datefin'].$virgule;	
    	}
    	else
    	{
    		$sql = $sql.$_POST['datefin'];
    	}	
    }
     
     
    if(!empty($_POST['application'])) 
    {
     
    	if((!empty($_POST['motsclefs']) ))
    	{
    		$sql = $sql.$_POST['application'].$virgule;	
    	}
    	else
    	{
    		$sql = $sql.$_POST['application'];	
    	}
     
    }
     
     
    if(!empty($_POST['motsclefs']))
    {
    		$sql = $sql.$_POST['motsclefs'];	
    }
     
     
     
    echo $sql = $sql." from ma_table where condition";
     
     /*
        // on insère les informations du formulaire dans la table
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
     
        mysql_close();  // on ferme la connexion
        } */
    ?>

  9. #9
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Que cela functionne est le plus important dans un premier temps
    Apres quand on veut optimiser un code on peut toujours trouver mieux mais tan que tu ne bouffe pas trop de ressources serveur et ou machine par un non-sens ou une erreur de méthode c'est pas très grave.

  10. #10
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    par exemple tu peux donner un nom numérique de 1 a 10 a tes champs et les récupérer apres isset avec une boucle bouclant 10 fois par exemple
    Comme dit il existe pas une seule maniere de coder

  11. #11
    Membre confirmé
    Homme Profil pro
    Etudiant en alternance
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Par défaut
    en tout cas je te remercie de ton aide et de ton temps

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

Discussions similaires

  1. Aide sur requete SQL + Conditions
    Par Elbozo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 16/09/2010, 10h13
  2. Problème avec un sous formulaire et requetes SQL
    Par louzz dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 15/01/2010, 14h22
  3. Requete SQL > condition BO
    Par Julien59 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 11/06/2008, 16h36
  4. ouvrir un formulaire avec requete SQL
    Par leskev dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 05/03/2007, 09h11
  5. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25

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