|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
max06
Anmeldungsdatum: 05.12.2004 Beiträge: 390 Wohnort: Augsburg
|
Verfasst am: 11.11.2005, 21:09 Titel: SDL_net - Hilfe benötigt |
|
|
Also Hallo erstmal,
ich habe einen Chat geschrieben, an dem beliebig viele User teilnehmen können. Allerdings hat dieser seine Nachrichten per FTP übermittelt. Bitte nicht lachen, das war vor einem halben Jahr die einzige Möglichkeit für mich (Ursprungsversion in QB1.1 geschrieben und FTP über shell aufgerufen). Nun bin ich auf FB umgestiegen und wollte den Chat neuschreiben. Mecki war so freundlich und hat mir ne komplette GUI gemacht (Danke Mecki). Da aber die übertragung per FTP nur bis maximal 3 Personen funktionierte, will ich das ganze jetzt mit SDL_net und php lösen: Ich möchte ein php-script, dass der per POST übergebene Text in ne MySQL-Datenbank geschrieben wird, ein anderes Script soll den Text wieder auslesen und ausgeben. Nun brauche ich nur noch eine Möglichkeit, per SDL_net (oder auch beliebig anders, hauptsache, ich kenne mich am Schluss noch in meinem eigenen Quelltext aus) auf den Webserver zu gelangen, wo dann das Script ausgeführt wird und die Ergebnisse von FB verarbeitet werden können, bzw neuer Text per POST übergeben werden kann. Ich will NICHT ein eigenes Programm als "Server" fungieren lassen, weil mir dazu einfach der nötige Rechner fehlt, welcher dauern online sein müsste, und außerdem plane ich eine Web-Interface Erweiterung. (Hab aber noch keine Ahnung, wie )
Mann, hab ich jetzt viel geschrieben
Bin für jeden Tip/Quelltext/fertiges Programm dankbar
Grüße
Florian
Ps: Ich hasse Englisch (das sage ich, bevor die Leute mit ihren Tutorial-links kommen (sry)), und ich hätte am liebsten gern ne "Astreine" Lösung, wo ich mich nur noch ein bisschen reindenken muss. |
|
Nach oben |
|
|
max06
Anmeldungsdatum: 05.12.2004 Beiträge: 390 Wohnort: Augsburg
|
Verfasst am: 11.11.2005, 21:11 Titel: Re: SDL_net - Hilfe benötigt |
|
|
max61989 hat Folgendes geschrieben: |
Mann, hab ich jetzt viel geschrieben
|
War doch nicht so viel |
|
Nach oben |
|
|
Progger_X Mr. Lagg
Anmeldungsdatum: 24.11.2004 Beiträge: 784 Wohnort: Leipzig
|
Verfasst am: 11.11.2005, 22:46 Titel: |
|
|
Wie gesagt, wenn ich Zeit hab helf ich dir. |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 12.11.2005, 02:06 Titel: Re: SDL_net - Hilfe benötigt |
|
|
max61989 hat Folgendes geschrieben: | Ich möchte ein php-script, dass der per POST übergebene Text in ne MySQL-Datenbank geschrieben wird, ein anderes Script soll den Text wieder auslesen und ausgeben. | Sorry, aber das is verrückt. Um ein php-script mit post-headern etc aufzurufen musst du erstma das halbe http-protokoll implementieren.
Schau mal in den Freebasic-libs, da gibts ne mysqldll.a oder so, vielleicht findest du unter den beispielen die mitgeliefert werden auch ein beispiel, um eine mysql-datenbank direkt aus FB raus anzusprechen. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 12.11.2005, 15:59 Titel: |
|
|
Hallo.
Ich sehe gerade keinen Sinn darin, wieso du das über mysql machen willst. Mache doch einfach einen server und benutze tcp. Damit geht das viel einfacher.
Michael _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
|
max06
Anmeldungsdatum: 05.12.2004 Beiträge: 390 Wohnort: Augsburg
|
Verfasst am: 12.11.2005, 18:05 Titel: |
|
|
programmierer hat Folgendes geschrieben: | Hallo.
Mache doch einfach einen server und benutze tcp. Damit geht das viel einfacher.
Michael |
Habe eben keinen Rechner, der dauernd online ist. Und auf FreeHosting-Server kann ich keine eigenen Progs laufen lassen.
Das mit MySQL bekomme ich hin, funzt schon. Brauche nur noch irgendwo nen Rechner, der dauernd eingeschalten ist, auf dem ein MySQL-Server läuft und der aus dem Netz direkt erreichbar ist (in NAT eingetragen). Wenn jemand so einen Rechner und Lust hat, mir ne Tabelle zu opfern, bitte melden.
Grüße
Florian |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 12.11.2005, 18:17 Titel: |
|
|
Hallo.
Ich würde mal Quark48 fragen, da der seinen PC immer on hat. Der hat da bestimmt nichts gegen.
Michael
EDIT: Viele freehoster lassen solche datenbankauslastungen zudem auch nicht zu. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 12.11.2005, 20:29 Titel: |
|
|
n simpler chat is kaum arbeit für die datenbank weil du eh nur die eingaben der letzten 5 minuten bzw die letzten 50 eingaben speichern musst, mysql hat für jede tabelle ne eigene datei, das geht relativ schnell. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
max06
Anmeldungsdatum: 05.12.2004 Beiträge: 390 Wohnort: Augsburg
|
Verfasst am: 13.11.2005, 01:21 Titel: |
|
|
programmierer hat Folgendes geschrieben: | Hallo.
Ich würde mal Quark48 fragen, da der seinen PC immer on hat. Der hat da bestimmt nichts gegen.
Michael
|
Habe ihn schon gefragt, hat aber im Moment ein bissl viel zu tun. Kenne jemand anders, der mir nen Server stellt.
Nun stehe ich vor nem anderen Prob: Verbinden zum Server funzt, Datenbank auswählen auch. Nun kann ich aber nicht Datensätze eintragen bzw. auslesen. Warum? Ich poste mal den Code...
Code: |
option explicit
#include once "mysql\mysql.bi"
#define NULL 0
dim db as MYSQL ptr
dim host as string
dim user as string
dim passwrd as string
dim database as string
db = mysql_init( 0 ) 'ursprünglich NULL
host = "localhost"
user = "root"
passwrd = ""
database = "max06"
print "Verbindung wird hergestellt"
sleep 500
if( mysql_real_connect( db, host, user, passwrd, database, MYSQL_PORT, NULL, 0 ) = 0 ) then
print "verbindung fehlgeschlagen auf Port "; MYSQL_PORT
print
mysql_close( db )
sleep
end 1
else
print "Verbindung hergestellt"
print
sleep 1000
end if
print "Datenbank wird ausgewählt"
sleep 500
if( mysql_select_db( db, database ) < 0 ) then
print "Datenbank "; database; " konnte nicht ausgewählt werden !"
print
mysql_close( db )
end 1
sleep
else
print "Datenbank erfolgreich ausgewählt"
print
sleep 500
end if
print "Informationen ueber Client: "; *mysql_get_client_info()
print "Infomationen ueber Host: "; *mysql_get_host_info( db )
print "Informationen ueber MySQL-Server: "; *mysql_get_server_info( db )
print
dim eingetragen as integer
eingetragen=mysql_query( db, "INSERT INTO chat (id,text) VALUES (1,test1)")
if eingetragen = 0 then
print "Fehler beim Eintragen in Tabelle; Code: "; eingetragen
else
print "Datensatz eingetragen! Code: "; eingetragen
end if
dim ausgelesen as integer
dim text as string
ausgelesen=mysql_query( db, "SELECT * FROM 'chat' WHERE id=3;" )
if ausgelesen = 0 then
print "Fehler beim Auslesen des Datensatzes; Ausgelesen: "; ausgelesen
else
print "Datensatz erfolgreich ausgelesen; Ausgelesen: "; ausgelesen
text=mysql_fetch_row( ausgelesen )
print "Text:"; text
end if
mysql_close( db )
sleep
end 0
|
Sry, falls es unordentlich ist. Die Tabelle existiert, der Eintrag mit der ID=3 auch.
Grüße
Florian
EDIT:
hab was vergessen: Wenn ich im SELECT-Befehl die ' ' beim Tabellennamen weglassen, kommt als Rückgabecode immer 0 raus. Mit den ' ' immer 1. |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 13.11.2005, 01:49 Titel: |
|
|
also ich hab da bisschen mitgebastelt, bei mir sieht das ganze grade so aus:
http://fb.exp-soft.de/fbnp/index.php?view=85
das Programm stürzt in Zeile 55 ab, das sleep in zeile 56 wird nicht mehr erreicht, wenn ich das sleep vor mysql_fetch_row setze wird es noch erreicht.
Jemand ne idee warum?
Weiß vielleicht jemand überhaupt, warum FB-Programme so furchtbar oft einfach abstürzen ohne das man irgendwie den fehler abfangen kann? tritt bei mir eigentlich immer auf wenn ich mit pointern arbeite(n will)
Wenn sich jemand mit mysql per FB oder auch C/C++ oÄ auskennt kanner mir vielleicht auch sagen, ob ich das was ab zeile 57 kommentiert is so benutzen kann, ausprobieren kann ichs ja leider noch nicht und ich weiß auch nicht, ob ich mir das so richtig zusammengebastelt hab.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
max06
Anmeldungsdatum: 05.12.2004 Beiträge: 390 Wohnort: Augsburg
|
Verfasst am: 13.11.2005, 16:09 Titel: Einen Schritt weiter! |
|
|
Also: Jetzt funktioniert schonmal des Eintragen von neuen Datensätzen einwandfrei.
Beim Auslesen kommt als Resource-ID 0 raus, als mysql_errno ebenfalls 0. Wie kann ich jetzt aber noch den Text aus der Tabelle auslesen?
Wenn ich das wüsste, wäre der Chat in 3 Tagen fertig. Wie lange habe ich darauf gewartet
Grüße
Florian
Code:
Code: | option explicit
#include once "mysql\mysql.bi"
#define NULL 0
dim db as MYSQL ptr
dim host as string
dim user as string
dim passwrd as string
dim database as string
dim eingetragen as integer
dim ausgelesen as integer
db = mysql_init( 0 ) 'ursprünglich NULL
host = "localhost"
user = "root"
passwrd = ""
database = "max06"
print "Verbindung wird hergestellt"
sleep 500
if( mysql_real_connect( db, host, user, passwrd, database, MYSQL_PORT, NULL, 0 ) = 0 ) then
print "verbindung fehlgeschlagen auf Port "; MYSQL_PORT
print
mysql_close( db )
sleep
end 1
else
print "Verbindung hergestellt"
print
sleep 1000
end if
print "Datenbank wird ausgewählt"
sleep 500
if( mysql_select_db( db, database ) < 0 ) then
print "Datenbank "; database; " konnte nicht ausgewählt werden !"
print
mysql_close( db )
end 1
sleep
else
print "Datenbank erfolgreich ausgewählt"
print
sleep 500
end if
print "Informationen ueber Client: "; *mysql_get_client_info()
print "Infomationen ueber Host: "; *mysql_get_host_info( db )
print "Informationen ueber MySQL-Server: "; *mysql_get_server_info( db )
print
?
eingetragen=mysql_query( db, "INSERT INTO chat(id,text) VALUES ('2','test4');")
if eingetragen > 0 then
print "Fehler beim Eintragen in Tabelle; Code: "; eingetragen; " "; mysql_errno(db)
else
print "Datensatz eingetragen! Code: "; eingetragen; " "; mysql_errno(db)
end if
ausgelesen=mysql_query( db, "SELECT text FROM chat WHERE id='8';" )
print "Ausgelesener Wert: "; ausgelesen ; " "; mysql_errno(db)
mysql_close( db )
sleep
end 0
|
|
|
Nach oben |
|
|
max06
Anmeldungsdatum: 05.12.2004 Beiträge: 390 Wohnort: Augsburg
|
Verfasst am: 13.11.2005, 19:22 Titel: Geschafft! |
|
|
Ich danke allen, die mir mit Tipps geholfen haben
Endlich kann ich Daten eintragen und auch wieder auslesen. Wenn ich mit dem Chat fertig bin, werde ich den Code hier posten.
Grüße
Florian |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|