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 :

tester les champs pour generer les requetes


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
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 24
    Par défaut tester les champs pour generer les requetes
    Bonjour
    mon probleleme est le suivant :
    je veux tester mes champs lesquels je veux appliquer des requete grace a la fonction requete redige par mes soins, cette fonction va generer des requetes de rechareche dans ma base.
    alors je souhaiterais savoir comment tester ces champs,
    car par exemple si c'est vide je mets quoi a la place
    voici la fonction
    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
     
     function Requete ($champ,$table,$Colonne)
        {
    		global $PrixMini,$PrixMaxi;
    		$TableauChamp=explode(" ",$champ);
    		$NbMotsChamp=sizeof($TableauChamp);
    		$ReqChamp="";
    		/***
    			Sinon, il suffit de créer un compteur dans la boucle ($i++), puis avant la boucle obtenir le nombre total d'élément ( count() ),
    			et dans la boucle faire une comparaison.
    			Si la valeur du compteur == au nombre total => pas de union
    		**/
    		foreach($TableauChamp as $key=>$mot)
    		{
    			$mot=trim($mot);
    			$ReqChampinter="(SELECT * from $table WHERE $Colonne like '%$mot%' AND Prix Between '$PrixMini' AND '$PrixMaxi' LIMIT 30)";
    			$ReqChamp.=$ReqChampinter." UNION ";
     
    		}
    		$ReqChamp = rtrim($ReqChamp, 'UNION ');
    		return $ReqChamp;
     
        }
     
        $RequeteRefESI=Requete($RefESI,"inventaireproduits","RefESI");
        $RequeteRefConstructeur=Requete($RefConstructeur,"inventaireproduits","RefConstructeur");
        $RequeteDescription=Requete($Description,"inventaireproduits","Designation");
     
        $BigRequete=$RequeteRefESI." UNION ".$RequeteRefConstructeur." UNION ".$RequeteDescription." ORDER BY IdProduit ASC";
    	$resultat=  mysql_query($BigRequete);
    et si c'est pas vide je fais les requetes comme d'hab.
    Merci de vos conseils.

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Bonjour

    Regarde ma classe axMySQLObject, elle porte une méthode protégée _generateSelectQuery qui peut, je l'espère t'aider à comprendre le mécanisme de génération dynamique de requêtes pour MySQL.

    Voir https://github.com/bdelespierre/php-...ject.class.php

    Exemple d'usage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // voir tous les produits dont le prix est supérieur à 100 et les trier par prix
    $produits = axMySQLObject::all($pdo, array('price>=' => 100), array('order by' => 'price'), 'produits');
    foreach ($produits as $produit)
      echo "$produit->label - $produit->price";

Discussions similaires

  1. [AC-2013] Gérer un historique de modication pour tous les champs de toutes les tables ?
    Par marot_r dans le forum Modélisation
    Réponses: 2
    Dernier message: 17/03/2015, 17h43
  2. [PROC SQL] Les virgules pour séparer les champs
    Par Kasarja dans le forum Débutez
    Réponses: 1
    Dernier message: 21/07/2014, 17h03
  3. [AC-2010] Requete de comparaison pour tous les champs entres 2 tables
    Par helico57570 dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 03/04/2014, 12h56
  4. Probleme de requete pour remplir les champs d'une table
    Par Jim_Nastiq dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/04/2006, 14h56
  5. Réponses: 1
    Dernier message: 08/02/2006, 17h17

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