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 :

concaténation au niveau de clause where [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é Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Par défaut concaténation au niveau de clause where
    Bonjour tout le monde,

    j'ai un petit problème au niveau d'une requête... je veux concaténer 3 champ au niveau de clause where comme suit:
    le 1er c'est le valeur retourner par une liste de champs d'une table1
    le 2eme c'est le valeur retourner par une liste des opérations (like, in, 'between', <, >, =,...)
    et le 3eme ce zone de texte saisit par l'user pour terminer la condition
    alors la clause where devient comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $where = $liste1 . $cond . $carct ;
    le pbme ici que le pgme retourne que les 3 vbles sont indéfinies

    sachant que l'user peut choisir n'importe quel champs pour la recherche.

    HELP ME PLEASE!!!!!

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Slt,

    Est-ce qu'on pourrait avoir plus de code notamment la récupération des paramètres puisque c'est ce qui pose problème ?

    A première vue il faudrait aussi ajouter des espaces entre chaque chaîne que tu concatènes mais ça sera après.

  3. #3
    Membre confirmé Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Par défaut
    Merci bien pour votre réponse,
    voici le code:
    la 1ere liste:

    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
    <select name="champ">
       <option> --- </option>
     <?php  
    include 'Connexionbd.php';
    $req= "SHOW COLUMNS FROM article";
    $sqll = mysql_query ($req);
    if (!$sqll) {
       echo "Erreur DB, impossible de lister les champs\n";
       echo 'Erreur MySQL : ' . mysql_error();
       exit;
    }
    while ($row = mysql_fetch_row($sqll)) {?>
       <option> <?php echo $row[0]; ?> </option>
    <?php }
    	?>
     </select>
    la 2eme liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <select name="cond" size="1" id="cond">
            <option>like</option>
            <option>in</option>
            <option>between</option>
            <option>&lt;=</option>
            <option>&gt;=</option>
            <option>=</option>
            <option>!=</option>
            <option>&lt;</option>
            <option>&gt;</option>
          </select>
    la zone de texte et la requête:

    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
      <label>
          <input type="text" name="carct" id="carct" />
          </label>
          <?php
     
     //connection au serveur
    $connect = mysql_connect( "localhost", "root", "" ) or die('erreur de connexion');
     
      //sélection de la base de données:
    $db  = mysql_select_db( "gestion_stock" ) or die('base introuvable');
      //requête de selection
      $where = $liste1 . $cond . $carct ;
     
     $aff='select  * 
          from article
    	  where' .$liste1 . $cond . $carct.'order by' .$liste1 ; 
     
    $reqt=mysql_query($aff) or die ('erreur sql'.$reqt.'<br>'.mysql_error());
    $num = mysql_num_rows($reqt);
    echo ('Il y a '.$num.'enregistrement(s) dans la table article');
     ?>

  4. #4
    Membre chevronné
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Par défaut
    Salut !

    Je t'invite à lire le tutoriel pour les débutants pressés et notamment la partie sur les formulaires. Il faut en effet que tu utilises les variables $_POST...

    A++

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    +1 avec djayp

    Vite fait sinon il faudrait savoir comment sont organisés tes fichiers : les 3 bouts de code sont dans un même fichier ou sont séparés ? Peut-on avoir tout le code de ton formulaire ?
    Et comme je disais tu as des soucis d'espace dans la construction de ta requête, là tout va être collé tu vas te retrouver avec quelque chose comme wherechampliketotoorder donc ça va pas le faire.

  6. #6
    Membre confirmé Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Par défaut
    les 3 bouts de code sont dans un même pagecàd même formulaire

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

Discussions similaires

  1. concaténer un champ avec sa condition dans la clause where
    Par zineb_cerisette dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/01/2012, 15h10
  2. Clause where au niveau de la macrotisation
    Par SASMetrics dans le forum Macro
    Réponses: 0
    Dernier message: 29/01/2010, 18h37
  3. [Vxi] Utilité de la clause Where au niveau Objet
    Par doc malkovich dans le forum Designer
    Réponses: 1
    Dernier message: 29/09/2009, 11h56
  4. probleme avec le caractere 'Z' dans ma clause WHERE
    Par dibox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/04/2004, 12h21
  5. [ character en simple cote ] clause Where
    Par hocinema dans le forum DB2
    Réponses: 3
    Dernier message: 20/02/2004, 10h17

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