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 :

Requête sur plage de varchar [MySQL]


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
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Par défaut Requête sur plage de varchar
    Bonjour,

    Je n'arrive pas à mettre en place ma requête permettant d'afficher les enregistrements contenus entre 2 valeurs de varchar.

    Je m'explique :

    Mon catalogue contient des références définies en varchar(15)

    Je souhaiterai réussir à afficher toutes les références contenues entre ma référence min et ma référence max.

    La requête actuelle marche à condition que la référence ne contienne que des valeurs numériques. dès qu'on a une caractère alphabétique ou un autre signe (comme le "/" par exemple) la requête ne fonctionne plus.

    Voici ma requête actuelle :

    SELECT DISTINCT reference, designation, marque, type, conditionnement, prix
    FROM catalogue
    WHERE reference BETWEEN $Refmoins AND $Refplus
    ORDER BY reference
    Quelqu'un aurait-il une solution ne demandant aucune modification sur le contenu de la table?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    quelle est la logique de l’incrémentation ?

  3. #3
    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
    Si ce sont des chaines, il faut des guillemets.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Par défaut
    quelle est la logique de l’incrémentation ?
    Incrémentation ?

    Euh... je suis pas sûr de te suivre...

    Si ce sont des chaines, il faut des guillemets.
    Je dois être un peu rouillé... comment je rajoute les guillemets dans ma requête?

    $refmoins et $refplus sont des variables fixées grâce à des input text plus haut dans le code...

    [EDIT]

    J'ai finalement opté pour rajouter les " avant et après mes variables en les concaténant dans le code php.

    J'ai donc utilisé pour déclarer mes variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (isset($_POST['Refmoins']) && isset($_POST['Refplus']))
    {
    $Refmoins = $_POST['Refmoins'];
    $Refplus = $_POST['Refplus'];
    $RefmoinsGuillemets = '"'.$_POST['Refmoins'].'"';
    $RefplusGuillemets = '"'.$_POST['Refplus'].'"';
    }
    else{
    $Refmoins =1;
    $Refplus =1;
    }

  5. #5
    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
    Il est plus simple de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "..... WHERE reference BETWEEN '" . $Refmoins . "' AND '" . $Refplus . '";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Par défaut Ne fonctionne pas
    Ceci ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE reference BETWEEN '" . $Refmoins . "' AND '" . $Refplus . '";

    Je pense qu'il doit s'agir d'un problème de syntaxe pour ajouter les "...

    Je continue à chercher...

    C'est vrai que la solution serait mieux que d'utiliser des variables intermédiares

    [EDIT]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query="
    SELECT DISTINCT reference, designation, marque, type, conditionnement, prix 
    FROM catalogue
    WHERE reference BETWEEN '".$Refmoins."' AND '".$Refplus."'";

  7. #7
    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
    WHERE reference BETWEEN '" . $Refmoins . "' AND '" . $Refplus . "'";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Requête sur plusieurs plages de dates
    Par Paninak dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/12/2012, 15h57
  2. [AC-2010] Requête sur une plage de date au format texte
    Par shakapouet dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/07/2012, 16h05
  3. Réponses: 2
    Dernier message: 19/10/2010, 08h20
  4. Requête sur une plage de date
    Par altecad dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/05/2007, 15h11
  5. requête sur l'année d'une date
    Par jo77 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/07/2003, 09h28

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