PreisChecker mit Mysql

  • Hallo ... ich bin gerade dabei ein Tool zu schreiben, welches jeder User mit item namen und Preisen füttern kann, und somit Preise von items abfragen kann (Für ein mmorpg)

    Hier mal der code

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiEdit.au3>
    #include <string.au3>
    #include <array.au3>
    #include <MySQL.au3>
    #include <INet.Au3>

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

    Global $result, $ItemList
    $objErr = ObjEvent("AutoIt.Error", "MyErrFunc")
    $UserName = "xxxx"
    $Password = "xxxx"
    $Database = "price"
    $MySQLServerName = "xxx.net"
    $SQL = _MySqlConnect($UserName, $Password, $Database, $MySQLServerName)

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

    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("PriceScript", 262, 270, 500, 346)
    $suchButton = GUICtrlCreateButton("Suchen", 168, 56, 81, 25)
    GUICtrlSetCursor(-1, 3)
    $Itemname = GUICtrlCreateInput("Itemname", 8, 56, 153, 21)
    $items = GUICtrlCreateEdit("", 8, 88, 241, 153)
    GUICtrlSetData(-1, "Sucherergebnis:")
    $Label1 = GUICtrlCreateLabel("© 2009 by deagleD", 8, 248, 97, 17)
    $Label3 = GUICtrlCreateLabel("Hilf uns die Datenbank aktuell zu halten", 8, 32, 192, 17)
    $Button1 = GUICtrlCreateButton("DB", 208, 32, 41, 17, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Func _loaditemlist()
    $result = IniReadSection(@ScriptDir & "\items.ini", "items")
    $label2 = GUICtrlCreateLabel($result[0][0] & " Items in der Datenbank!", 8, 8, 251, 17)
    EndFunc ;==>_loaditemlist

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

    Func _loadDb()
    $queryName = "SELECT * FROM items"
    $DBname = _Query($SQL, $queryName)

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

    EndFunc ;==>_loadDb

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

    Func _Array2DSearch($avArray, $vWhat2Find, $iDim = -1, $iStart = 0, $iEnd = 0, $iCaseSense = 0, $fPartialSearch = True, $1stFound = False)
    Local $error = 0, $1D, $arFound[1] = [0]
    If $1stFound Then $arFound[0] = -1
    If (Not IsArray($avArray)) Then
    SetError(1)
    Return 0
    EndIf
    Local $UBound2nd = UBound($avArray, 2)
    If @error = 2 Then $1D = True
    If ($iEnd = 0) Or ($iEnd = -1) Then $iEnd = UBound($avArray) - 1
    If $iStart = -1 Then $iStart = 0
    If $iCaseSense = -1 Then $iCaseSense = 0
    If $iCaseSense <> 0 Then $iCaseSense = 1
    Select
    Case ($iDim > $UBound2nd) Or ($iDim < -1)
    $error += 2
    Case ($iStart < 0) Or ($iStart > UBound($avArray) - 1)
    $error += 4
    Case ($iEnd < $iStart) Or ($iEnd > UBound($avArray) - 1)
    $error += 8
    EndSelect
    If $error <> 0 Then
    SetError($error)
    Return 0
    EndIf
    If $fPartialSearch <> True Then $fPartialSearch = False
    If $1D Then
    For $i = $iStart To $iEnd
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    Next
    Else
    For $i = $iStart To $iEnd
    If $iDim = -1 Then
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd - 1
    If $avArray[$i][$k] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd - 1
    If $avArray[$i][$k] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 0 And $fPartialSearch
    For $k = 0 To $UBound2nd - 1
    If StringInStr($avArray[$i][$k], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And $fPartialSearch
    For $k = 0 To $UBound2nd - 1
    If StringInStr($avArray[$i][$k], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    EndSelect
    Else
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    EndIf
    Next
    EndIf
    Return $arFound
    EndFunc ;==>_Array2DSearch

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

    Func _suche($userSuche)
    $resultSearch = _Array2DSearch($result, $userSuche)
    If $resultSearch[0] = 0 Then
    _GUICtrlEdit_InsertText($items, @CRLF & "Sorry, nichts gefunden", -1)
    Else
    For $i = 1 To $resultSearch[0]
    _GUICtrlEdit_InsertText($items, @CRLF & $result[$resultSearch[$i]][0] & " = " & _StringAddThousandsSep($result[$resultSearch[$i]][1], ".", ",") & " Penya", -1)
    Next
    EndIf
    EndFunc ;==>_suche

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

    _Loaditemlist()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $suchButton
    $userSuche = GUICtrlRead($Itemname)
    _suche($userSuche)

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

    Case $Button1
    _loadDB()
    EndSwitch
    WEnd

    [/autoit]

    Wie schaffe ich es nun, dass ich in der Func loaddb() alle items aus der mysqlDB lade und in eine ini speicher ?

    LG muppel

  • Hi,
    was kommt den bei deiner Funktion raus

    Spoiler anzeigen
    [autoit]

    Func _loadDb()
    $queryName = "SELECT * FROM items"
    $DBname = _Query($SQL, $queryName)

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

    EndFunc ;==>_loadDb

    [/autoit]

    Kommt denn da überhaupt was brauchbare bei rum?
    Mir kommt die Abfrage so komisch vor.
    Alles ohne Objekte. :S

    Wenn du da was raus bekommst poste mal ein Beispiel.
    Das dann in eine INI-Datei zu schreiben ist in der Hilfe super mit Beispielen erklärt.

    MfG
    Der_Doc

  • ne die genrelle Funktion is ja net fertig... ich habe keinen Plan, wie ich es am besten mit dem MySQL befehl mache, da so nix vernünftiges raus kommt wie d schon sagst ^^

  • Ah so :D
    ich dachte schon ich mache das so umständlich die ganze Zeit.
    gib mal beo google mysql.au3 ein, da kommt ein Treffer auf die autoitscript.com Seite wo der Entwickeler von mysql.au3 das ganze erklärt.
    Es gibt auch ne menge Beispiele zu dem Thema.
    Mit dieser Variante mußt du nur noch ein Stück Software installieren. Ist aber beschrieben.

    Oder du nutzt die Version von progandy da mußt du nur eine dll einpflegen. (Forumsuche benutzen ;) )
    Mit diesem Tool habe ich jetzt keine Erfahrung. Nochnicht :D

    Solltest du net weiterkommen, einfach das Stück Mysql aus deiner Funktion posten und dir wird geholfen.

    MfG
    Der_Doc