1. #1
    Membre à l'essai
    Inscrit en
    juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 26
    Points : 20
    Points
    20

    Par défaut fonctions qui convertit les chaînes de caractères en entier

    Bonjour a tous et a toutes

    Je voulais juste savoir s'il existait une fonctions qui pourrait me permettre de convertir une chaine de caractère en entier .

    le resultat de ma requete etant une chaine de caractère ,je voudrais la convertir en entier afin de pouvoir la trier comme je le veux

    la requete est la suivante :

    SELECT * FROM compagnies ORDER BY effectif DESC (effectif étant le nombre de salaries et effectif est un varchar)

    Ma requete me permet de faire le trie des salarie des compagnies avec un trie descroissante seulement le IC c'est que comme c'est un VARCHAR
    782 est plus que 72500 et c'est pas vraiment ce que je veux

    Avec cette fonction je pourrais avoir une résultat un peu plus cohérent

    Si quelqu'un connait la réponse alors qu'il le dise

    A pluche

  2. #2
    Membre averti Avatar de Hug0_76
    Profil pro
    Inscrit en
    août 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 292
    Points : 332
    Points
    332

    Par défaut

    Salut,

    voila la fonction :

    8.135.15 intval() Retourne la valeur numérique entière équivalent d'une variable
    [ Exemples avec intval ] PHP 3, PHP 4, PHP 5

    int intval ( mixed var , int base )

    intval retourne la valeur numérique entière ( entier ) de la variable var , en convertissant la valeur dans la base spécifiée (par défaut en base 10).

    var
    La valeur scalaire à être convertie en entier

    base
    La base pour la conversion (par défaut, la base vaut 10)

    Une valeur de type entier de var en cas de succès ou 0 en cas d'échec. Les tableaux et les objets vides retournent 0, les tableaux et les objets non vides retournent 1.

    La valeur maximale dépend du système. Les systèmes à 32 bits ont une valeur entière signée maximale de -2147483648 à 2147483647. Alors par exemple sur un système semblable, intval('1000000000000') retournera 2147483647. La valeur entière signée maximale pour un système à 64 bits est 9223372036854775807.

    Les chaînes de caractères retournent la plupart du temps 0, cela dépend de les caractères à l'extrême gauche de la chaîne de caractères. La règle courante du transtypage d'entier s'applique.

    Exemples avec intval

    Les exemples suivant sont basés sur un système à 32 bits.
    Note

    Le paramètre base n'a aucun effet à moins que le paramètre var soit une chaîne de caractères.

    * floatval
    * strval
    * settype
    * is_numeric
    * Définition du type
    * Nombres de grande taille BCMath
    A+
    Si la connerie de certain fonctionnait au gazole il y aurait pénurie !!!!

    Lao Tzeu a dit : "Il faut trouver la voix"...Si tu ne l'as pas trouvé, je vais t'aider en te coupant la tête.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2002
    Messages : 6 152
    Points : 17 772
    Points
    17 772

  4. #4
    Membre à l'essai
    Inscrit en
    juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 26
    Points : 20
    Points
    20

    Par défaut

    Merci a toi JULP mais le lien que tu ma donné me sert dans le cas ou c'est moi qui insert dans le code la chaine de caractère

    Mais moi ce que j'ai c'est une requete qui va cherche des effectifs (salariés)
    qui sont en varchar

    ex :
    $_req = "SELECT * from compagnies ORDER BY eff DESC";
    $resultat_req = mysql_query($_req) or die('Connection impossible !<br>'.$_req.'<br>'.mysql_error());
    $le_code = mysql_fetch_array($resultat_req);

    Donc c'est le $le_code['eff'] qui doit être change en INT

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  6. #6
    Membre à l'essai
    Inscrit en
    juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 26
    Points : 20
    Points
    20

    Par défaut

    Je viens juste d'essayer le lien que tu m'a envoye ratapapa mais seulement le résultat reste comme meme en VARCHAR

    2500 > 2100000

    Le VARCHAR est tres inutile pour ce genre de chose

    tant pis merci comme meme de m'avoir aidé

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : juin 2005
    Messages : 572
    Points : 716
    Points
    716

    Par défaut

    Au pire (pas très propre mais bon) tu forces le transtypage en faisant par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $le_code['eff'] += 0;
    Désolé c'est une méthode un peu bidouille mais normalement elle fonctionne
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  8. #8
    Membre à l'essai
    Inscrit en
    juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 26
    Points : 20
    Points
    20

    Par défaut

    Citation Envoyé par ratapapa
    Au pire (pas très propre mais bon) tu forces le transtypage en faisant par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $le_code['eff'] += 0;
    Désolé c'est une méthode un peu bidouille mais normalement elle fonctionne
    Meme ca ca fonctionne pas je comprend pas pourquoi ?

    HELP

  9. #9
    Membre à l'essai
    Inscrit en
    juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 26
    Points : 20
    Points
    20

    Par défaut

    C'est bon j'ai trouve la solution de mon problème

    c'était juste SELECT * FROM nomtable ORDER BY cast(effectif as signed) desc

    Voila si quelqu'un avait le meme problème que moi voila la solution

    A pluche pour de nouvelles questions

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

Discussions similaires

  1. Fonction qui indique une chaîne de caractère
    Par luigieti dans le forum Général Algorithmique
    Réponses: 0
    Dernier message: 07/12/2013, 16h32
  2. [Encodage] Fonctions sur les chaînes de caractères multi-octets
    Par Rémy DEV dans le forum Langage
    Réponses: 0
    Dernier message: 25/07/2012, 10h33
  3. [Turbo Pascal] Fonction qui remplace les caractères entrés par des étoiles (*)
    Par Dr.Mimo dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/03/2012, 21h51
  4. Réponses: 2
    Dernier message: 21/12/2009, 06h35
  5. Réponses: 3
    Dernier message: 02/07/2009, 10h46

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