BlitzBasic3D + MySQL Verbindung

Übersicht BlitzBasic FAQ und Tutorials

Neue Antwort erstellen

GearTechDE

ehemals 'KillerJo96'

Betreff: BlitzBasic3D + MySQL Verbindung

BeitragMi, Okt 05, 2011 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo liebe Community,

[Vorwort]

ich weiß, es gibt schon ein Tutorial dazu, doch dieses ist leider nicht mehr verfügbar.
Ich habe jetzt schon seid mehreren Tagen nach einem MySQL Tutorial gesucht doch leider vergeblich.
Nun naja, ich habe mich dazu entschlossen also ein eigenes Tutorial zu schreiben, welches hoffentlich
sehr gut verständlich ist.

[Was benötigen wir?]

Für unser einfaches MySQL Tutorial werden folgende Sachen benötigt:

Arrow BlitzBasic3D Wink
Arrow MySQL Datenbank von AppServ oder xampp(links unten)
Arrow Ein paar wenige Kenntnisse in PHP und BlitzBasic sollten uns viel besser vorankommen lassen.

[Einrichtung der MySQL Datenbank]

Es gibt mehrere Möglichkeiten sich eine MySQL Datenbank zuzulegen.
Es gibt in diesem Falle 2 Möglichkeiten.

1. Man sucht sich einen Online Provider (z.B. db4free.net)
wobei diese Möglichkeit sehr von Vorteil ist. (Nachher überall aufrufbar, kein Portforwarding etc.)
2. Man installiert seine eigene Datenbank auf seinem eigenen Rechner. (z.B. AppServ oder xampp)

Ich persönlich finde die 1. Möglichkeit gemütlicher, da man später seine Datenbank von überall abrufen kann. Bei der 2. Möglichkeit würde ich euch AppServ empfehlen, da der ziemlich leicht einzurichten ist und man nachher ein Passwort festlegen kann.

Was ihr hier macht ist euch überlassen.
Wer das einrichten nicht hinbekommt, es gibt genügend Tutorial im Internet bei Google zu finden.
Das sollte also nich das Problem sein.

[Erstellung einer Datenbank]

Sobald ihr MySQL eingerichtet habt, geht in in euren Browser und tippt dort:
Code: [AUSKLAPPEN]
http://localhost/phpmyadmin

ein. Jetzt solltet ihr ein anmelde fenster zu gesicht bekommen.
Tippt dort eure MySQL Anmelde Daten ein. Jetzt erstellt ihr dort eine Datenbank. Es ist egal
welcher Name. Falls ihr hilfe braucht, guckt bei google.

Geht jetzt in eure Datenbank und erstellt dort eine Tabelle mit dem Namen Accounts.
Ihr benötigt 3 Felder in der Tabelle.

1. Feld = ID - INTEGER - Länge=255 - Primary - Auto Increment
2. Feld = Benutzername - VARCHAR - Länge=255
3. Feld = Passwort - VARCHAR - Länge=255

Jetzt drückt ihr speichern und erstellt mit Einfügen einen neuen Account. Füllt also dort die Daten aus. Das Feld ID könnt ihr leer lassen und sollte sich automatisch mit einer Zahl ausfüllen.

[Einrichten von unserem PHP Dokument]

Wir werden jetzt das PHP-Dokument erstellen, wo wir unsere Datenbank Verbindung herstellen werden.
Ich glaube bei BlitzBasic ist PHP die einzigste Methode eine Verbindung per MySQL aufzubauen. Wenn ich hier falsch liege, bitte korrigieren.

@Topic: Wir gehen in den Ordner www von AppServ (bei xampp heisst der htdocs) und erstellen ein PHP Dokument mit den Namen:

Code: [AUSKLAPPEN]

index.php


Jetzt öffnet ihr die Datei mit dem Editor und schreibt dort folgendes rein:

Code: [AUSKLAPPEN]

<?php

$host = ""; //Serverhost, das ist eure Server IP, wenn ihr appserv oder xampp benutzt ist das "127.0.0.1"
$user = ""; //euer anmeldenamen am mysql server
$pass = ""; //euer anmelde passwort
$db = ""; //eure datenbank

mysql_connect($host,$user,$pass);
mysql_select_db($db);

$query = "SELECT Benutzername FROM Accounts";
$readout = mysql_query($query);

print mysql_result($readout,0);

?>


Bei den Variablen oben müsst ihr natürlich eure Datenbank Daten eintragen sonst funktioniert das ganze nicht. Das war der Teil mit unserem PHP Dokument.

[BlitzBasic Code]

Jetzt kommen wir endlich zum BlitzBasic programmieren. Laughing
Also wir erstellen ein neues BB-Dokument und schreiben dort folgendes rein.

BlitzBasic: [AUSKLAPPEN]

AppTitle "BB + MySQL Tutorial"
Graphics 800,600,32,2

Global Stream = OpenTCPStream("localhost",80) ;localhost nur, wenn ihr eine Lokale Datenbank habt.
WriteLine Stream,"GET http://localhost/index.php"
Print ReadLine$(Stream)
WaitKey()
End


So dass war eigentlich schon der Teil von BlitzBasic. Jetzt müsst ihr einfach nur noch das Programm starten und schon sollte euch der erste Benutzername der in der Tabelle 'Accounts' ist, im BB Programm stehen.

[Schluss]

Ich hoffe das Tutorial war gut erklärt und hat vielen weitergeholfen.
Wer ein Problem hat, kann dieses ja gerne posten.

Arrow Das ist das Ende des Tutorials Exclamation
Mit freundlichen Grüßen: GearTechDE

Eingeproggt

BeitragMi, Okt 05, 2011 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Tut erklärt ja alles was man im Grunde so braucht. Aber die praktische Anwendung dürfte für Neueinsteiger doch etwas schwer werden damit. (und fortgeschrittene User finden hier ein bisschen zu wenig Inhalt)
Man wär schon am Anfang komplett verwirrt was du da so über Online-Dienste und DB-Server für zuhause erzählst... mal abgesehen davon dass du damit falsch liegst: Natürlich kann man in XAMPP ein Passwort festlegen! XAMPP enthält MySQL und darin kann man alles machen was man überall sonst auch mit MySQL kann.
Das führt mich aber schon zum nächsten Punkt: Du erklärst nur die Daten-Abfrage... Eintrage / löschen oder ändern muss sich der interessierte User auf anderem Wege aneignen. (Ok, wir sind ja hier nur das BB-Portal, kein Webanwendungs-Entickler-Portal)
Auch der Umgang mit dem Ergebnis von mysql_query() ist etwas mager beschrieben da man hier unzählige Möglichkeiten hat in php.

Zu guter letzt: Datenbank-Zugriff geht auch mit perl - und aufrufen eines perl-Skripts ist mit BB genauso möglich wie aufrufen eines php-skripts. Aber ich möcht zumindest in diesem Punkt nicht zuviel klugsch*** da ich selber grad erst per google recherchiert hab ob das geht Wink

mfG, Christoph.

Nachtrag:
http://localhost/phpmyadmin ist nur erreichbar wenn man einen lokalen Server installiert hat, andernfalls müsste man natürlich die Adresse von seinem online-Dienst wissen Wink

Nachtrag 2:
omg... ich hätt mir den Code etwas genauer anschauen sollen. Deine HTTP-Anfrage im BB-Code ist ja nicht gerade empfehlenswert... so gehts richtig: http://de.wikipedia.org/wiki/Http#Funktionsweise
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

skey-z

BeitragMi, Okt 05, 2011 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Man sollte vielleicht auch noch dazu schreiben, dass das Passwort als MD5 oder SHA(128,196,256) Hash gesepchert werden sollte um bei Hacks kein Klartextpasswort zu bekommen.

Außerdem sollte beim erstellen der SQL-Tabelle bei ID gesagt werden, dass hier auch noch 'NotNull' gesetzt werden muss, damit das alles so funktioniert, wie es soll.
Dass heist, dass ID eine eindeutige, forlaufende Nummer erzeugt, die nicht 0 sein kann.

Als kleine Hilfe für MySQL-Funktionen in php sollte man mal z.B. hier schauen

[Edit]
hatte beim überfliegen Primary Key und auto-increment überlesen, sry
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

ZEVS

BeitragDi, Okt 11, 2011 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein PHP-Code lässt zu wünschen übrig. Die mysql-Schnittstelle ist veraltet und außerdem ist die MySQL-Abfrage problematisch: Sie selektiert alle Benutzernamen, wobei nur der erste abgefragt wird (wenn es aber sowieso nur einen Benutzer gibt, ist der MySQL-Server unpraktisch). Kennst du schon LIMIT? Es stellt sich die Frage, ob sich der Umweg über PHP lohnt und eine Anbindung der libmysql.dll evtl. sinvoller wäre. An einer Verbindung ohne dll bin ich gescheitert, wäre aber, glaube ich, auch langsamer.

Für den dargestellten Funktionsumfang reicht aber eine gewöhnliche Dateianbindung allemal.

@skey-z: Die MySQL-PASSWORD-Funktion ist wohl die beste.

hazumu-kun

BeitragDo, Okt 13, 2011 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann auch ohne php Script über BB eine MySQL Datenbank bedienen. Diese muss nur "von außern" zugänglich sein. Der Rest ist TCP und Recherche.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Neue Antwort erstellen


Übersicht BlitzBasic FAQ und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group