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

Langage Perl Discussion :

Perl et Mysql soucis dans foreach


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut Perl et Mysql soucis dans foreach
    Bonjour,

    Voici une partie du script que je suis occupé à developper.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    # recherche de l'info (id)
    @recherche1 = `mysql -h $localhost -u $user -p$password -s $db -e "select $id from $from where ims_nims_c_c=''"`;
    # recherche de l'info par rapport au resultat précédent ligne par ligne
    foreach (@recherche1)
    {
    $i=$_;
    $result2=`mysql -h $localhost -u $user -p$password -s $db -e "select $num from $from_num where id_c='$i'"`;
    # Debug 1
    print $i;
    # Debug 2
    print $result2;
    }
    Debug 1 me donne un resultat correct la valeur du champ (chaine de caractère)
    Debug 2 ne donne rien, pas de message d'erreur rien du tout...

    Est ce que vous avez une idée ?

    Merci
    Dycobe

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Oui : ta requête SQL ne renvoie rien, ou il y a une erreur de syntaxe dedans (`` ne récupère que la sortie standard, pas la sortie d'erreur, alors soit tu rediriges avec '2>&1', soit tu utilises IPC::Open3).

    Par ailleurs tu devrais plutôt utiliser DBI pour travailler avec des bases de données en Perl.

    --
    Jedaï

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut
    Voila j'ai utilisé 2>&1

    Voici la réponse que j'ai :
    ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2' at line 1
    Je me suis renseigné sur ERROR 1064 (42000) apparemment c'est une parse error.

    Vous pourriez m'aider ?

    Dycobe

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Je ne suis pas un spécialiste de SQL, d'autant que nous n'avons même pas le contenu des variables interpolées dans la requête, comment voudrais-tu que je t'aide ?!

    --
    Jedaï

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut
    Je penses avoir déselé quelque chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @recherche1 = `mysql -h $localhost -u $user -p$password -s $db -e "select id_c from opportunities_cstm where ims_nims_c_c=''"`;
    print @recherche1;
    #Donne ceci
    #2e6d3446-139e-2f92-3816-464aca3a2ef8
    #26b3de42-6a76-e45d-0e5d-464ab983570f
    #...
    En faite quand je réutilise $recherche1[0] comme variable dans ma seconde commande mysql (result2 => $i), il met un 'enter' après la variable. D'où soucis de syntax.
    J'ai retaper result2 en ligne de commande donc sans le 'enter' et là la ligne fonctionne.
    Comment faire pour enlever le retour à la ligne ?

    J'espère que tu as toutes les infos cette fois si ....

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    C'est mieux, à vrai dire j'aurais dû y penser mais ce sont les choses les plus évidentes qui nous échappe parfois...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # recherche de l'info (id)
    my @recherche1 = `mysql -h $localhost -u $user -p$password -s $db -e "select $id from $from where ims_nims_c_c=''"`;
    chomp @recherche1;
    # recherche de l'info par rapport au resultat précédent ligne par ligne
    for my $id (@recherche1) {
      $result2=`mysql -h $localhost -u $user -p$password -s $db -e "select $num from $from_num where id_c='$id'"`;
     
      print "$id :\n $result2\n";
    }
    --
    Jedaï

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

Discussions similaires

  1. petit soucis dans le main..
    Par Bibouda dans le forum C
    Réponses: 35
    Dernier message: 12/12/2005, 18h45
  2. Réponses: 1
    Dernier message: 29/11/2005, 22h05
  3. [PERL]Remplacer un caractère dans on a le code ASCII
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2005, 15h13
  4. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  5. [langage] [PERL] prendre des infos dans un fichier log
    Par osiris73 dans le forum Langage
    Réponses: 2
    Dernier message: 24/05/2005, 16h42

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