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

Shell et commandes GNU Discussion :

Résultat MySQL dans une variable


Sujet :

Shell et commandes GNU

  1. #21
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Quel débat !

    Mais pour la solution de Flodelarab reste parfaite !

    mon but était a faire cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if [ "$req2" = "$req1" ]
    then 
    STATUS="OK"
    else
    STATUS="WRONG ADRESS"
    fi

  2. #22
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par schranz Voir le message
    Quel débat !
    Oui, on aime bien entre nous discuter des différentes méthodes possibles avec leurs avantages et inconvénients. Cela ne gène en rien le posteur car en générale on essaye de donner une solution complète donc il a toujours sa réponse mais nous entre nous on apprend parfois des trucs...


    Citation Envoyé par schranz Voir le message
    mon but était a faire cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if [ "$req2" = "$req1" ]
    then 
    STATUS="OK"
    else
    STATUS="WRONG ADRESS"
    fi
    Bah, ça aurait été bien d'avoir la question entière.
    Déjà au niveau code c'est malavisé de mettre des chaines comme status. Déjà une chaine c'est lourd à gérer (si l'appelant doit comparer avec "OK" ou "WRONG ADRESS" ça lui fera lourd) et en plus ce n'est pas conventionnel ni portable (si tu modifies ton programme, tous ceux qui l'utilisent devront modifier le leur).
    La convention, c'est de mettre 0 pour "ok" et autre chose pour "pb" et de faire retourner cette valeur. Si tu veux affiner tu peux mettre 1, 2 ou 3 pour indiquer la cause exacte de l'erreur sinon c'est pas grave tant que ce n'est pas 0 (et pas plus de 255 car c'est la limite)

    Exemple: script.sh
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/sh
    req1=$(mysql ...)
    req2=$(mysql...)
    it test "$req1" = "$req2"
    then
        status=0
    else
        status=1     # ou status=123 si t'as envie...
    fi
    ...
    exit $status

    Ainsi, l'appelant pourra directement faire tester le script par le if du shell sans avoir à regarder si la chaine vaut "OK" ou "WRONG ADRESS"
    Exemple
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh
    if script.sh    # oui oui, après if on n'est pas obligé d'utiliser "test". On peut mettre n'importe quel programme Unix que l'on désire. Tant que celui-ci se comporte en booléen (0=vrai, "pas 0"=faux) ça fonctionne...
    then
        ...    # (je gère le cas où le script n'a pas eu de pb)...
    else
        ...    # (je gère le cas où le script a indiqué qu'il a un pb)...
    fi
    ... (suite du code)...

    Ensuite si req1 et req2 ne sont utilisées qu'une fois, alors elles sont inutiles...
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/sh
    test "$(mysql...)" = "$(mysql...)" && status=0 || status=1
    ...
    exit $status

    Et comme tu l'as remarqué, les variables sont en minuscules pour éviter d'interférer avec les variables de ton environnement (comme HOME, LOGNAME, PATH, etc.) qui peuvent être utilisées aussi par ton programme. En effet, tu ne sais pas si "STATUS" n'est pas déjà pris pour autre chose. Tu peux mettre des majuscules pour représenter les mots (nbLigneFichier=...) mais pas de nom de variable tout en majuscule...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #23
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Bah, ça aurait été bien d'avoir la question entière.
    En faite des question j'en ai beaucoup , je te résume mon problème

    j'utilise une solution de monitoring zabbix si ca te parle. Mon but est d'assurer une surveillance d'un réseau avec un utilitaire arpwatch. Ce dernier permet l'enregistrement dans un fichier texte des adresse ip, mac que cette utilitaire surveille.

    Le but de ce script est de pouvoir comparer les adresses mac et ip en cas d'usurpation adresses avec le bail d'un serveur dhcp.

    Sinon j'ai bien noté la synthaxe pour les tests et vais corriger de suite mon script.

    Merci pour l'explication

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [MySQL] Résultat d'une requête MySQL dans une variable PhP
    Par armand6464 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/11/2014, 12h40
  2. mettre résultat requete dans une variable
    Par ptitepo dans le forum VB.NET
    Réponses: 15
    Dernier message: 04/11/2008, 14h07
  3. Réponses: 1
    Dernier message: 04/11/2007, 15h03
  4. [MySQL] récupérer dans une boucle chaque information MySQL dans une variable différente
    Par gtenthorey dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2007, 22h34
  5. [Tableaux] résultat requête dans une variable
    Par jedi186 dans le forum Langage
    Réponses: 4
    Dernier message: 22/02/2007, 13h43

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