Daten von Programm an Website übergeben

08/16/2014 02:01 .Chakratos#1
Hallo,
ich habe mir einen Bot geschrieben der wunderbar läuft.
Er sammelt bestimmte daten z.b welche items/gold wann gesammelt wurden.
Nun möchte ich diese daten auch gerne online über eine website sehen und würde gerne wissen wie ich die daten am besten übergebe.

LG Chakratos
08/16/2014 02:03 .StarSplash#2
Und womit hast du dein Programm geschrieben?

Du könntest die Daten in eine Datenbank schreiben.
08/16/2014 02:05 .Chakratos#3
Das Programm ist in Autoit geschrieben.

LG Chakratos
08/16/2014 02:10 .StarSplash#4
Mit AutoIt kannst du problemlos in eine Datenbank schreiben, diese lässt sich dann auf einer Webseite ausgeben, das wird wohl die einfachste Lösung sein.
08/16/2014 02:18 .Chakratos#5
Ok super, hättest du einen kleinen ansatz wie ich die HP gestalten sollte?
Bzw ob HTML reicht oder ich noch PHP lernen muss?.

LG Chakratos
08/16/2014 02:25 .StarSplash#6
HTML ist eine statische Sprache, damit kannst du nichts dynamisches realisieren. Und eine Datenbank ist überaus dynamisch.

Für das Ausgeben einer Tabelle ist aber nur wenig PHP zu lernen. Aber vielleicht möchtest du ja trotzdem damit anfangen, dann kann ich dir -je nach Umfang deines Projekts- auch ein Framework ans Herz legen, zum Beispiel Laravel.
08/16/2014 02:31 .Chakratos#7
Okay, Vielen Dank :)
Das projekt ist nicht wirklich groß, möchte halt nur von überall sehen können wie das programm gearbeitet hat.
Ich denke ich werde mir gleich einen free webspace zulegen und php lernen.

LG Chakratos
08/16/2014 02:38 .StarSplash#8
Viel lernen musst du wie gesagt nicht, es reicht, wenn du dir das hier etwas umbaust:

PHP Code:
<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if (
$stmt mysqli_prepare($link$query)) {

    
/* execute statement */
    
mysqli_stmt_execute($stmt);

    
/* bind result variables */
    
mysqli_stmt_bind_result($stmt$name$code);

    
/* fetch values */
    
while (mysqli_stmt_fetch($stmt)) {
        
printf ("%s (%s)\n"$name$code);
    }

    
/* close statement */
    
mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>
Das ist von hier entnommen: [Only registered and activated users can see links. Click Here To Register...]

Aufpassen musst du bei PHP nur, dass du keine veralteten Sachen lernst ;)
08/16/2014 09:56 .Chakratos#9
Könntest du mir noch kurz:
$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";
erklären?
Ich denke der name ist der DB Name und der rest der table? die 5 steht für 5 ergebnisse auslesen?

LG Chakratos
08/16/2014 10:59 Terreox#10
Schau dir am besten mal die mysql Dokumentation zum SELECT statement an. Kleiner Tipp: Die Datenbank in dem Beispiel heißt City.
08/16/2014 14:18 .Chakratos#11
Ich habe mir den code von oben angepasst, einen Mysql server eingerichtet und die PHP hochgeladen doch es wird mir nur eine leere seite angezeigt.
Falls jemand helfen kann, kann ich ihm die PHP per PM schicken.

Falls was an dieser zeile falsch sein soll bitte sagen:
$query = "SELECT Bot, Item FROM Bot ORDER by ID DESC LIMIT 150,5";
Tabelle heißt Bot, 1.spalte heißt auch Bot, 2. spalte heißt Item.
Habe auch schon einen eintrag in die datenbank geschrieben aber er wird mir nicht angezeigt.

LG Chakratos
08/16/2014 17:08 .StarSplash#12
Quote:
Originally Posted by Terreox View Post
Schau dir am besten mal die mysql Dokumentation zum SELECT statement an. Kleiner Tipp: Die Datenbank in dem Beispiel heißt City.
Kleiner Tipp: An dieser Stelle heißt das "Tabelle".

Die Datenbank wurde bereits vorher festgelegt, jetzt geht es um eine Tabelle innerhalb der Datenbank.

@TE: Tut mir leid, ich hätte vielleicht gewisse Teile aus dem Code rauseditieren sollen, um Verwirrung zu vermeiden.

Grundsätzlich gilt im Umgang mit Tabellen, dass es einen eindeutigen Schlüssel geben sollte. Alles andere führt irgendwo zu Problemen. Im Regelfall wird dazu ein Schlüssel namens "ID" benutzt, weil das einfach am nächsten liegt. "ORDER BY ID DESC" ist ein zusammenhängender Teil der Query und versucht, die Ergebnisse mittels der ID absteigend (descent) zu ordnen, da du keine Spalte "ID" hast, solltest du sie entweder einfügen, oder die Sortierung entfernen.
"LIMIT 150,5" ist ebenfalls ein Teil und besagt, dass du die nächsten 5 Ergebnisse aus deiner Tabelle haben möchtest, beginnend mit dem Versatz 150, wichtig ist, dass der Versatz bei 0 startet, nicht bei 1, "LIMIT 150,5" gibt dir also die Zeilen 151,152,153,154,155 aus. Wenn du "LIMIT 5" schreibst, ist das eine verkürzte Form von "LIMIT 0,5" und gibt dir entsprechend die ersten 5 Einträge aus.
Das ist für dich aber wohl auch nicht relevant, da du zum einen nicht so viele Daten in deiner Tabelle hast und zum anderen ja alle anzeigen lassen willst.

PS: Ich empfehle dir, eine Spalte "ID" anzulegen, es sei denn "ITEM" ist eindeutig, dann kannst du auch das nehmen.

"SELECT * FROM myTable" ist übrigens tatsächlich ein wohlgeformter Ausdruck, wenn du alle Spalten ausgeben möchtest, kannst du das * stehen lassen und musst nicht explizit die Zeilen angeben.

Ich hoffe ich erschlage dich nicht mit Infos, wenn du noch Fragen hast, stell sie einfach ;o
08/16/2014 17:17 .Chakratos#13
Habe es mir selbst geschrieben und siehe da es funktioniert:
[Only registered and activated users can see links. Click Here To Register...]

So hab ichs nach dem connecten gemacht:
PHP Code:
$abfrage "SELECT * FROM Bot";
        
$ergebnis mysql_query($abfrage);
        while(
$row mysql_fetch_object($ergebnis))
        {
            echo 
"$row->Time | $row->Bot | ($row->Item) <br>";
        } 
Werde deinen beitrag aber Studieren und schauen ob ich es verbessern kann.
Hab mir auch eine Autoit funktion geschrieben damit es nurnoch eine zeile ist ^^

LG Chakratos
08/16/2014 17:21 .StarSplash#14
Sehr schön :)

Speicherst du die Zeit automatisch oder übergibst du sie manuell aus deinem Programm?
Das könnte man nämlich auch automatisch machen, mit der genauen Uhrzeit.
08/16/2014 18:11 .Chakratos#15
Für die zeit benutze ich:
Code:
Func Getdate()
	$date = _Date_Time_GetLocalTime()
	$string = StringSplit(_Hallo($date), " ")
	Return $string[1]
EndFunc   ;==>Getdate

Func _Hallo(ByRef $tSystemTime, $bFmt = 0)
	Local $aInfo = _Date_Time_SystemTimeToArray($tSystemTime)
	If @error Then Return SetError(@error, @extended, "")

	If $bFmt Then
		Return StringFormat("%04d-%02d-%02d", $aInfo[2], $aInfo[0], $aInfo[1])
	Else
		Return StringFormat("%04d-%02d-%02d", $aInfo[2], $aInfo[0], $aInfo[1])
	EndIf
EndFunc   ;==>_Hallo