MySql Select Query / Datenbankabfrage

  • Hallo,

    ich benutze seit gestern Autoit und es scheint ein ganz nettes Programm zu sein.

    Nun bin ich gerade dabei, mein Programm mit der Datenbank zu verknüpfen. Mein Script verbindet sich soweit mit der Datenbank, aber nun hab ich nach langen Recherchen immernoch keine Ahnung, wie ich eine Abfrage starte und die Werte benutze.

    Ich habe eine Tabelle die "Views" heißt und natürlich Felder. Das eine Feld heißt "Link" und das andere "Keyword". Dabei ist dann immernoch eine "ID" per Auto_Increment. Die Tabelle und die Felder habe ich selbst angelegt.

    Wie gelingt es mir nun, dass ich Link und Keyword abfrage und in der Funktion Search für send("keyword") das "keyword" ausfülle? Ebenfalls muss _IELinkClick("link") für "link" den Link aus der Datenbank einfügen.

    Zurzeit sind gerade ca. 20 Links in der Datenbank, die einfach nach der Reihe rausgenommen und bearbeitet werden sollen. Hier der Code:

    [autoit]

    #include <IE.au3>
    #include "EzMySql.au3"

    [/autoit][autoit][/autoit][autoit]

    $IE = _IECreate("http://www.seite.de")

    [/autoit][autoit][/autoit][autoit]

    Search()

    [/autoit][autoit][/autoit][autoit]

    Warten()

    [/autoit][autoit][/autoit][autoit]

    _IELinkClick("link") ; klickt auf link

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func Search()

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Coll = _IEFormElementGetCollection($IE,0)

    [/autoit][autoit][/autoit][autoit]

    $Obj = _IEFormElementGetObjByName($Coll,"formularfeld")

    [/autoit][autoit][/autoit][autoit]

    _IEAction($Obj,"focus")

    [/autoit][autoit][/autoit][autoit]

    send("keyword")

    [/autoit][autoit][/autoit][autoit]

    $Obj = _IEFormElementGetObjByName($Coll,"")

    [/autoit][autoit][/autoit][autoit]

    _IEAction($Obj,"focus")

    [/autoit][autoit][/autoit][autoit]

    send("{ENTER}")

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _IELinkClick($sLink)

    [/autoit][autoit][/autoit][autoit]

    $oLinks = _IELinkGetCollection($IE) ; alle Links werden als objekte gespeichert

    [/autoit][autoit][/autoit][autoit]

    For $oLinks In $oLinks

    [/autoit][autoit][/autoit][autoit]

    If StringInStr($oLinks.href,$sLink) Then ;wenn "link" enthalten -->

    [/autoit][autoit][/autoit][autoit]

    _IEAction($oLinks,"click") ;Klick auf das objekt

    [/autoit][autoit][/autoit][autoit]

    Return True ;Rückgabe True

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    Next

    [/autoit][autoit][/autoit][autoit]

    Return SetError(1) ; Link nicht gefunden

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func Warten()

    [/autoit][autoit][/autoit][autoit]

    _IELoadWait ( $IE , Random(3000,6500,1) )

    [/autoit][autoit][/autoit][autoit]

    EndFUnc

    [/autoit][autoit][/autoit][autoit]

    -------------Das wäre meine MySql-Datei, die ich dann einbinde----------------

    [/autoit][autoit][/autoit][autoit]

    If Not _EzMySql_Startup() Then
    MsgBox(0, "Error Starting MySql", "Error: "& @error & @CR & "Error string: " & _EzMySql_ErrMsg())
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $Pass = "pass"

    [/autoit][autoit][/autoit][autoit]

    If Not _EzMySql_Open("localhost", "User", $Pass, "dbname", "3306") Then
    MsgBox(0, "Error opening Database", "Error: "& @error & @CR & "Error string: " & _EzMySql_ErrMsg())
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    If Not _EzMySql_SelectDB("dbname") Then
    MsgBox(0, "Error setting Database to use", "Error: "& @error & @CR & "Error string: " & _EzMySql_ErrMsg())
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    4 Mal editiert, zuletzt von sh0r7y (18. März 2011 um 02:04)

  • Ich benutze diese UDF nicht, daher ohne Gewähr:

    Spoiler anzeigen
    [autoit]

    $aResult = _EzMySql_GetTable2d("SELECT Keyword,Link FROM Views WHERE ID > 0;")
    $error = @error
    If IsArray($aResult) Then
    _ArrayDisplay($aResult)
    For $i = 0 To UBound($aResult)-1
    ;mach was
    Next
    Else
    MsgBox(0, "Fehler", $error)
    EndIf

    [/autoit]
  • Danke funktioniert.

    Habe noch eben #include "Array.au3" beigefügt, sodass das mit dem Array funktioniert.

    Edit: Läuft jetzt so wie ich es brauche.

    2 Mal editiert, zuletzt von sh0r7y (18. März 2011 um 02:04)