Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

SDL_net - Hilfe benötigt

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 11.11.2005, 20:09    Titel: SDL_net - Hilfe benötigt Antworten mit Zitat

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 cool )

Mann, hab ich jetzt viel geschrieben peinlich


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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 11.11.2005, 20:11    Titel: Re: SDL_net - Hilfe benötigt Antworten mit Zitat

max61989 hat Folgendes geschrieben:

Mann, hab ich jetzt viel geschrieben peinlich


War doch nicht so viel lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 11.11.2005, 21:46    Titel: Antworten mit Zitat

Wie gesagt, wenn ich Zeit hab helf ich dir.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 12.11.2005, 01:06    Titel: Re: SDL_net - Hilfe benötigt Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 12.11.2005, 14:59    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 12.11.2005, 17:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 12.11.2005, 17:17    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 12.11.2005, 19:29    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 13.11.2005, 00:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 13.11.2005, 00:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 13.11.2005, 15:09    Titel: Einen Schritt weiter! Antworten mit Zitat

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 lächeln

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 13.11.2005, 18:22    Titel: Geschafft! Antworten mit Zitat

Ich danke allen, die mir mit Tipps geholfen haben lächeln

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 cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz