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

Requêtes MySQL Discussion :

[MySQL]Substr dans une requête


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut [MySQL]Substr dans une requête
    Bonjour.

    Est-il possible de mettre un substr dans une clause where.
    Je m'explique : J'ai une liste déroulante qui contient les départements.
    Dans une table j'ai des adresses avec le code postal.

    Donc est ce je que peux lancer une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = mysql_query('SELECT * FROM ma_table WHERE substr(codepostal,0,2) = '$_POST['ma_liste'],$connexion);
    pour récupérer seulement les adresses qui correspondent au département sélectionné.

    Merci

  2. #2
    Membre chevronné Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Par défaut
    Bonjour,

    MySql possède la fonction MID(str,pos,len) qui fait la même chose que substr()

  3. #3
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    OK mais ça marche pas quand même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (!empty($_POST['depart'])){
    //	$sql = mysql_query('Select * FROM r2sreseaux WHERE substr(code_postal,0,2) = '.$_POST['depart'],$connexion);
    	$sql = mysql_query('Select * FROM r2sreseaux WHERE mid(code_postal,0,2) = '.$_POST['depart'],$connexion);
    	$nbl = mysql_num_rows($sql);
    	for ($i = 0; $i < $nbl; $i++)
    	{
    	   $dep  = mysql_result($sql,$i,"code_postal");
    	   echo "<p align=center> $dep";
    	}
    }
    Dans ma liste je sélectionne département = 67 et j'ai 2 enregistrements dans ma table

  4. #4
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    Ben rebonjour.

    Donc mon problème n'a pas de solution sauf à faire le substring dans la boucle!!
    C'est ce que j'ai fait mais bon.... je croyais qu'on pouvait utiliser substring dans une clause where.

  5. #5
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    le mid ou substring commence le comptage a partir de 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .....
    $sql = mysql_query('Select * FROM r2sreseaux WHERE mid(code_postal,1,2) = '.$_POST['depart'],$connexion);	
    ......

  6. #6
    Membre éclairé Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Par défaut
    Salut,
    Je te propose une autre Solution que le substr, le LIKE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql = mysql_query('SELECT * FROM ma_table WHERE codepostal LIKE  '".$_POST['ma_liste']."%');

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

Discussions similaires

  1. [MySQL] problème mysql : apostrophe dans une requête
    Par stars333 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 31/03/2010, 10h18
  2. Réponses: 4
    Dernier message: 04/10/2006, 15h55
  3. [MySQL] Erreur dans une requête avec jointures
    Par bobic dans le forum Langage SQL
    Réponses: 17
    Dernier message: 03/08/2006, 13h04
  4. erreur mysql-fetch_array dans une boucle While
    Par carmen256 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/04/2006, 17h15
  5. comment rajouter un caractère " ' " dans une requê
    Par GDVL dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 30/07/2004, 16h58

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