Ganze Tabelle von Datenbank wiedergeben

  • Guten Tag.

    Ich versuche gerade ein kleines Tool zu machen, dass ich, wenn die Seite fertig ist, schauen kann, wie viele Leute sich auf der Seite angemeldet haben.

    Ich dachte mir, ich versuche ein Programm in Autoit zu machen, damit ich damit kurz von meinen anderen Computern in der Arbeit das "Abchecken" kann, es wäre ja Mühsam immer einzuloggen auf der PhpMyAdmin Seite, also so..


    Ich habe es schon mal versucht hier der Code:

    [autoit]

    #include "mysql.au3"
    _MySQL_InitLibrary()
    $MysqlConn = _MySQL_Init()

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

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "localhost")

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

    Func _SQL($SQLCode,$sDelimiter='|')
    $Return = ''
    $TableContents = _MySQL_Real_Query($oSQL, $SQLCode)
    With $TableContents
    While Not .EOF
    For $i=0 To .Fields.Count-1
    $Return &= $sDelimiter &.Fields ($i).value
    Next
    .MoveNext
    WEnd
    $Return = StringTrimLeft($Return,1)
    EndWith
    Return $Return
    EndFunc

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

    $sDaten = _SQL($oSQL, 'SELECT Benutzer FROM Accounts";')
    MsgBox(0,"Benutzer, "Alle sind: " & $sDaten)

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

    _MySQL_Close($MysqlConn)
    ; MYSQL beenden
    _MySQL_EndLibrary()

    [/autoit]

    Aber irgendwie kommt ein Fehler, dieser:

    [Blockierte Grafik: http://dl.dropbox.com/u/96779182/help.jpg]

    Ich glaube, es liegt am Script, da die Datenbank online ist.

    Versteht es jemand und kann mir jemand helfen?

    Lg TheBeatMaker111

  • Du hast sehr viele Fehler in deinem Code:

    [autoit]

    MsgBox(0,"Benutzer, "Alle sind: " & $sDaten)

    [/autoit]


    Müsste so heißen:

    [autoit]

    MsgBox(0,"Benutzer", "Alle sind: " & $sDaten)

    [/autoit][autoit]

    $sDaten = _SQL($oSQL, 'SELECT Benutzer FROM Accounts";')

    [/autoit]


    Hier übergibtst du das SQL Handle und deine Query,
    deine Funktion beötigt aber das Query und einen Delimiter

    [autoit]

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "localhost")

    [/autoit]

    Wenn deine Datenbank Online ist, kann localhost als Adresse nicht funktionieren, trag hier die IP deiner Datenbank ein

  • Die Fehlermeldung im Posting kann ich nicht lesen. Daher kann ich nur raten.
    Aufgefallen ist mir, dass der Funktionsaufruf _SQL andere Parameter als die Definierten in der Funktion benutzt.

  • [autoit]

    #include "mysql.au3"
    _MySQL_InitLibrary()
    $MysqlConn = _MySQL_Init()

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

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "127.0.0.1")

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

    Func _SQL($SQLCode,$sDelimiter='|')
    $Return = ''
    $TableContents = _MySQL_Real_Query($oSQL, $SQLCode)
    With $TableContents
    While Not .EOF
    For $i=0 To .Fields.Count-1
    $Return &= $sDelimiter &.Fields ($i).value
    Next
    .MoveNext
    WEnd
    $Return = StringTrimLeft($Return,1)
    EndWith
    Return $Return
    EndFunc

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

    $sDaten = _SQL($oSQL, 'SELECT Benutzer FROM Accounts";')
    MsgBox(0,"Benutzer, "Alle sind: " & $sDaten)

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

    _MySQL_Close($MysqlConn)
    ; MYSQL beenden
    _MySQL_EndLibrary()

    [/autoit]

    So, habe ich es jetzt noch mal versucht.

    Es kommt die gleiche Fehlermeldung wie vorhin..:(

  • AutoIt-Quellcode

    $sDaten = _SQL($oSQL, 'SELECT Benutzer FROM Accounts";')

    Hier übergibtst du das SQL Handle und deine Query,

    deine Funktion beötigt aber das Query und einen Delimiter

    der Funktionsaufruf ist immer noch falsch:

    Code
    ....
    Func _SQL($SQLCode,$sDelimiter='|')
    ...
    ...
    $sDaten = _SQL($oSQL, 'SELECT Benutzer FROM Accounts";')

    Ich vermute Du möchtest Datenbank, Select, Trennzeichen
    dann fehlt bei $sDaten ein Komma nach dem Select-Befehl
    und bei der Funktion die Datenbank

  • Hmm. ..

    Ich habe etwas herum Probiert:

    [autoit]

    #include "mysql.au3"
    _MySQL_InitLibrary()
    $MysqlConn = _MySQL_Init()

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

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "127.0.0.1")

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

    Func _SQL($SQLCode,$sDelimiter='|')
    $Return = ''
    $TableContents = _MySQL_Real_Query($oSQL, $SQLCode)
    With $TableContents
    While Not .EOF
    For $i=0 To .Fields.Count-1
    $Return &= $sDelimiter &.Fields ($i).value
    Next
    .MoveNext
    WEnd
    $Return = StringTrimLeft($Return,1)
    EndWith
    Return $Return
    EndFunc

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

    $sDaten = _SQL($oSQL, 'SELECT, Benutzer FROM Accounts";')
    MsgBox(0,"Benutzer, "Alle sind: " & $sDaten)

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

    _MySQL_Close($MysqlConn)
    ; MYSQL beenden
    _MySQL_EndLibrary()

    [/autoit]

    Hier mit dem Komma, es kommt der gleiche Fehler wie im ersten Post (siehe Bild)

    und dann noch mal so:

    [autoit]

    #include "mysql.au3"
    _MySQL_InitLibrary()
    $MysqlConn = _MySQL_Init()

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

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "127.0.0.1")

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

    Func _SQL($SQLCode,$sDelimiter)
    $Return = ''
    $TableContents = _MySQL_Real_Query($oSQL, $SQLCode)
    With $TableContents
    While Not .EOF
    For $i=0 To .Fields.Count-1
    $Return &= $sDelimiter &.Fields ($i).value
    Next
    .MoveNext
    WEnd
    $Return = StringTrimLeft($Return,1)
    EndWith
    Return $Return
    EndFunc

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

    $sDaten = _SQL($oSQL, 'SELECT Benutzer FROM Accounts";')
    MsgBox(0,"Benutzer, "Alle sind: " & $sDaten)

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

    _MySQL_Close($MysqlConn)
    ; MYSQL beenden
    _MySQL_EndLibrary()

    [/autoit]

    Hier kommt der Fehler auch..


    (Fehler in der Anwendung.)

  • Entschuldige, ich habe mich wohl misslich ausgedrückt
    Kein Komma nach dem Select sondern nach dem Select-Statement 'SELECT Benutzer FROM Accounts'

    ich bin zu wenig Experte, aber die Variable $oSQL ist doch global definiert.
    dann musst Du diese nicht an die Funktion _SQL übergeben, also beim Funktionsaufruf weglassen
    Select-Statement, Trennzeichen

    Code
    Func _SQL($SQLCode,$sDelimiter='|') 
    ....
    $sDaten = _SQL('SELECT Benutzer FROM Accounts', ';')

    Anmerkungen habe ich noch:
    - Du hast die IP 127.0.0.1 auf die der Datenbank nicht geändert.
    - Benutzer ist aber ein Feld in der Tabelle Accounts, oder?
    - $sDaten sollte als Array definiert werden

  • [autoit]

    #include "mysql.au3"
    _MySQL_InitLibrary()
    $MysqlConn = _MySQL_Init()

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

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "127.0.0.1")

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

    Dim $sDaten = $MYSQL_READ_DEFAULT_GROUP ($oSQL, 'SELECT Benutzer FROM Accounts";')
    MsgBox(0,"Benutzer, "Alle sind: " & $sDaten)

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

    _MySQL_Close($MysqlConn)
    ; MYSQL beenden
    _MySQL_EndLibrary()

    [/autoit]


    Ja, die Datenbank heißt Accounts und die Benutzer ist die "Spallte" und dann den Accounts (also der Datenbank.)


    Ich habe es wie oben noch versucht und es kommt wieder der gleiche fehler.

  • Läuft der Server lokal bei dir (Xampp o.Ä) oder ist das eine Online Datenbank?

    Das hier ist jetzt zumindest schonmal Syntaktisch richtig, wie gesagt, du solltest mal die Zugangsdaten zu der Datenbank prüfen.

    Spoiler anzeigen
    [autoit]

    #include "mysql.au3"
    _MySQL_InitLibrary()
    $MysqlConn = _MySQL_Init()

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

    Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "127.0.0.1")

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

    $sDaten = _SQL($MysqlConn,'SELECT Benutzer FROM Accounts;', "|")
    MsgBox(0,"Benutzer", "Alle sind: " & $sDaten)

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

    _MySQL_Close($MysqlConn)
    ; MYSQL beenden
    _MySQL_EndLibrary()

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

    Func _SQL($o_MysqlConn,$SQLCode,$sDelimiter)
    $Return = ''
    $TableContents = _MySQL_Real_Query($o_MysqlConn, $oSQL, $SQLCode)
    $h_res = _MySQL_Store_Result($o_MysqlConn)
    $av_array = _MySQL_Fetch_Result_StringArray($h_res)
    _MySQL_Free_Result($h_res)
    $s_tmpfill = ""
    For $i = 1 To UBound($av_array) - 1
    $s_tmpfill &= $av_array[$i][0] & $sDelimiter
    Next
    Return StringTrimRight($s_tmpfill, 1))
    EndFunc

    [/autoit]
  • Der Server ist auf meinem PC.

    Aber irgendwie kommt der gleiche Fehler wie im ersten Post (siehe Bild)

    Wie kann ich die Datenbank umstellen, dass man sie auch von außen benutzen kann??