[R] convertir le contenu d'un tableau en chaine

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
corrs78
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 13 août 2007 17:38
Localisation : Yvelines
Status : Hors ligne

[R] convertir le contenu d'un tableau en chaine

#1

Message par corrs78 »

Bonjour à toutes et tous,

j'utilise l'UDF EzMySql.au3 pour faire des requetes dans une base MySQL.
je me connecte, la requête fonctionne, mais mon problème est que je n'arrive pas à afficher le contenu du résultat autre que dans un tableau.
Avec le code ci dessous j'obtiens toujours un "-1".
   
For $i = 1 To _EzMySql_Rows() Step 1
   $aArray = _EzMySql_FetchData()
   $result = _ArrayToString($aArray, "|",$i,1)
        _GUICtrlRichEdit_AppendText($data_results, @CRLF & $result)
Next
Avec un _ArrayDisplay($aArray, "Result: " & $i) , j'obtiens bien le résultat de ma requête SQL. Donc c'est bien un tableau.

la méthode est bonne ?

Merci de votre aide.
Modifié en dernier par corrs78 le mer. 05 avr. 2017 11:26, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: convertir le contenu d'un tableau en chaine

#2

Message par mikell »

Qu'est-ce que ça donne avec juste : $result = _ArrayToString($aArray) ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
corrs78
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 13 août 2007 17:38
Localisation : Yvelines
Status : Hors ligne

Re: convertir le contenu d'un tableau en chaine

#3

Message par corrs78 »

mikell a écrit : ven. 31 mars 2017 21:56 Qu'est-ce que ça donne avec juste : $result = _ArrayToString($aArray) ?
Exactement le même résultat. "-1"

ce qui est curieux c'est que cela fonctionne très bien avec un "_ArrayDisplay"
$request = _EzMySql_GetTable2d("SELECT mtle,nom,prenom FROM utilisateur WHERE mtle LIKE '%" & $mot_cle & "%' OR nom LIKE '%" & $mot_cle & "%' ;")
   $error = @error
      If Not IsArray($request) Then MsgBox(0, $mot_cle & " error", $error)
         _ArrayDisplay($request, "Résultat pour """&$mot_cle&"""")

         For $i = 1 To _EzMySql_Rows() Step 1
            $aArray = _EzMySql_FetchData()
            _ArrayDisplay($aArray, "Result: " & $i)
            $result = _ArrayToString($aArray,$i)
            MsgBox(64,"",$result)
         Next
j'ai le tableau qui s'affiche avec un résultat trouvé.
Image

l'objectif est de lister les résultat dans un "ReachEdit" ou dans un "CreateEdit".
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: convertir le contenu d'un tableau en chaine

#4

Message par TomAijerrie »

Que affiche le deuxième _arraydisplay ? (ligne 8 dans ton code)
C'est bien un tableau à 1 seule dimension ?

Tu es sûr qu'il faut mettre le $i dans la ligne 9 ?
$result = _ArrayToString($aArray,$i)
Au pire, "refait" la fonction
For $i = 1 To ubound($request) -1
    $sLigne = $request[$i][0]
    For $j = 1 to ubound($request,2) -1
        $sLigne &= "|" & $request[$i][$j]
    Next
    MsgBox(64,"",$sLigne)
Next
Avatar du membre
corrs78
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 13 août 2007 17:38
Localisation : Yvelines
Status : Hors ligne

Re: convertir le contenu d'un tableau en chaine

#5

Message par corrs78 »

Merci pour ta réponse, cela fonctionne.

Au final j'ai réglé le problème en simplifiant le code, et ça fonctionne toujours, et là je ne comprends pas pourquoi.
En fait la la fonction FetchData et la boucle inutiles dans mon cas, le simple fait de faire un _ArrayToString de ma requête me renvoie tous les résultats. J'ai pourtant prix les exemples du développeur de l'UDF. Apparemment pas besoin de parcourir les lignes du tableau. Si j'ai bien compris ton exemple, c'est déjà inclus dans la fonction _ArrayToString.
$request = _EzMySql_GetTable2d("SELECT mtle, nom, prenom FROM fonct WHERE mtle LIKE '%" & $mot_cle & "%' OR nom LIKE '%" & $mot_cle & "%' ;")
   $error = @error
   If Not IsArray($request) Then MsgBox(0, $mot_cle & " error", $error)
$result = _ArrayToString($request)
      _GUICtrlRichEdit_AppendText($data_results, @CRLF & $result)
merci pour votre temps.
Répondre