Anzeige eines Strings der eine PHP-Seite beinhaltet

Posted By: Nicobius

Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 16:12

Hallo alle zusammen ...

Ich versuche mit 3dgs auf eine php Seite zuzugreifen, die Datensätze von einer MySQL Datenbank wieder gibt. Ich möchte diese Datensätze als eine Art Bibliothek in 3DGS verwenden.

Ich habe mir das Plugin Anet zugelegt und Dank der Hilfe von Dark_Samurai konnte ich eine Verbindung mit meiner PHP-Seite aufbauen. Den Inhalt der Seite kann ich mir bis jetzt aber nur in einem Error-Fenster anzeigen lassen.

Jetzt versuch ich schon seit einigen Tagen mir den Inhalt des Strings einfach mal im 3dgs-Fenster anzeigen zu lassen (z.B. mit der Textfunktion). Leider funktioniert das nicht.

Ich verstehe aber das Problem nicht. Mit den herkömmlichen Anzeige-Funktionenn scheint es jedenfalls nicht zu klappen.

Kann mir mal jemand einen Tip geben, wie ich diesen Inhalt angezeigt bekomme ... blush

Vielen Dank das du dir die Zeit genommen hast das wenigstens zu lesen. Ich hoffe du kannst mir helfen.

Mit freundlichen Grüßen
Nicobius
Posted By: Dark_samurai

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 17:00

Ist bestimmt ein Fehler im Code. Am besten du postest den mal.
Posted By: Nicobius

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 17:48

#include <acknex.h>
#include "anet.h"

//Laden der Daten von der PHP-Seite

http_init();

var http_id = http_post(_str("http://goldis.homeftp.net/Waffen.php"),_str(""));

while(http_get_status(http_id) == 0)
{
wait(1);
}

STRING* result_str = str_create("#500");

http_get_result(http_id,result_str);

//Testbeispiel

STRING* Inhalt= "Hallo Welt! Es ist schön zu sehen,\nwenn mal etwas funktioniert! \n";

//Textausgabe der beiden Strings

TEXT* first_txt =
{
pos_x = 300 ;
pos_y = 250 ;
layer = 3 ;
font = Arial#24bi;
string(Inhalt, result_str); //Ausgabe des Teststrings ; Ausgabe des Inhalts der PHP-Seite
flags=VISIBLE;
}


Der STRING Inhalt wird ohne Problem angezeigt. Sobald ich aber den STRING result_str anzeigen lassen möchte zeigt er folgenden Fehler:

< string(result_str);>
Test.c 6:4():Bad or missing WDL parameter
...0.135 sec.
1 runtime errors

PS: Wie mach ich hier eigentlich die coolen Quellcode-Fenster?
Posted By: Rasch

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 18:58

TEXT* first_txt =
{
pos_x = 300 ;
pos_y = 250 ;
layer = 3 ;
font = Arial#24bi;
string(Inhalt, result_str); //Ausgabe des Teststrings ; Ausgabe des Inhalts der PHP-Seite
flags=VISIBLE;
}

dein result_str wird zur Laufzeit erstellt oder? Das heist der TEXT sucht den String result_str. Das funktioniert natürlich nicht da er global nicht definiert ist. Also mach doch mal folgendes:

- Nimm das hier raus: STRING* result_str = str_create("#500");
- Stattdessen definiere den String schon vor allen funktionen.
- So: STRING* result_str = "#500";
- Wichtig das du das über deine TEXT Definition legst.

Hoffe ich seh das so richtig.

Zu den Quellcodes im Editfenster bzw da wo du deinen Beitrag postest gibt es oben ja Smileys, hyperlinks usw. bei den Symbolen auf Raute klicken als # und dann Code wählen. Deinen code zwischen

[code] test [ /code]

setzen.
Posted By: Nicobius

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 21:17

Der Code sieht jetzt folgendermaßen aus:

Code:
#include <acknex.h>
#include "anet.h"

//Laden der Daten von der PHP-Seite

	
	STRING* result_str = "#500";	
	
	http_init();
		
	var http_id = http_post(_str("http://goldis.homeftp.net/Waffen.php"),_str(""));
	
	while(http_get_status(http_id) == 0) 
	{
		wait(1);
		}
					
	http_get_result(http_id,result_str);
	
//Textausgabe des Strings

function main()
{
	TEXT* first_txt =
	{
	pos_x = 300	;
	pos_y = 250	;
	layer =   3	;
	font  = Arial#24bi;
	string(result_str); //Ausgabe des Teststrings ; Ausgabe des Inhalts der PHP-Seite
	flags=VISIBLE;
		} 
}



Also soweit scheint der Compiler keine Probleme mit der Syntax zu haben, zumindest bekomme ich keine Fehlermeldung mehr. Aber der Inhalt wird leider auch nicht angezeigt. Ich bekomme nur ein schwarzes Fenster. smile

PS: Danke für den Tip mit dem Quellcodefenster ... sieht schon viel übersichtlicher aus.

Liebe Grüße,
Nicobius
Posted By: Rasch

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 21:24

Das ist irgendwie alles verkehrt oder? Das müsste doch so aussehen.

Code:
#include <acknex.h>
#include "anet.h"

STRING* result_str = "#500";

TEXT* first_txt =
{
	pos_x = 300;
	pos_y = 250;
	layer =   3;
	font  = Arial#24bi;
	string(result_str); //Ausgabe des Teststrings ; Ausgabe des Inhalts der PHP-Seite
	flags = VISIBLE;
} 

//Laden der Daten von der PHP-Seite

function main()
{
	http_init();
	
	var http_id = http_post(_str("http://goldis.homeftp.net/Waffen.php"),_str(""));
	
	while(http_get_status(http_id) == 0) 
	{
		wait(1);
	}
	
	http_get_result(http_id,result_str);
}


Posted By: Nicobius

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 21:40

LOL ...

Alles klaro, jetzt funktioniert es auch.
Daran hab ich gar nicht mehr geachtet ... Danke!

Na dann werd ich mich mal ran machen, die eigentlichen Daten auszuwerten und vorallem den Html-Code dazwischen wieder los zu werden. (Das nennt man wohl parsen!?!)

Jede Zeile ist ein Datensatz und soll angezeigt werden, wenn ich den entsprechenden Namen aufrufe oder nach bestimmten Kategorien suche.

Liebe Grüße,
Nicobius
Posted By: Rasch

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 21:47

Sowas wie eine Highscore?
Posted By: Nicobius

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 21:52

Gibts vielleicht zufällig eine Funktion, welche mir den Html-code wieder umwandelt ... sprich ich wieder den Tabellenaufbau sehe?

Ich hab noch gar keine Idee wie ich das umsetzen kann.

Ich hatte vor eine Art Bibliothek zu bauen. Die "Waffen" sollen namendlich in einer Liste angezeigt werden und wenn ich eines der Waffen anwähle sollen mir die Kenndaten in einem Infofenster angezeigt werden.

Hat da zufällig jemand eine Idee wie ich da am besten ran gehe?

Bin schonmal überglücklich das ich den Inhalt der PHP-Seite sehen kann. smile

Liebe Grüße,
Nicobius
Posted By: Rasch

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 21:53

Ich glaub Tabellen usw gehen nicht. Vorallem kein JHTMl. Du kannst dir eine tabelle basteln mit panels usw und dann da die empfangenen daten paltzieren
Posted By: Nicobius

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 22:07

Hmm ... na das hört sich ja erstmal nicht schlecht an.

Hast du nee Idee wie ich die eigentlichen Informationen von dem Html-Code filtern kann?

Es wäre wahrscheinlich das beste wenn ich die ursprüngliche Tabellenform wieder herstellen kann. So kann ich die Datensätze besser verwalten. Wie gesagt, jede Zeile entspricht den Kenndaten zu einer Waffe, welche mir bei der Auswahl der jeweiligen Waffe in einem "Infoframe" angezeigt werden sollen.

Ich bin natürlich für jede andere Idee dankbar. Vielleicht gibts da ja auch andere, einfachere Lösungen.

Liebe Grüße,
Nicobius
Posted By: Rasch

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 22:08

Wieso machst du es überhaupt über eine HTML Datei? Würden da nicht vordefinierte Variablen reichen?
Posted By: Nicobius

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 22:27

Das Programm soll ein Hilfsmittel für ein Pen&Paper-Rollenspiel (Shadowrun) werden.

Das ganze bleibt somit nicht nur bei einer Waffenbibliothek. Wenn ich das Prinzip soweit verstanden habe, werde ich die Bibliothek um weitere Kategorien erweitern. (z.B. Rüstungen, Fahrzeuge, Ausrüstung, Zauber, Gegner(Critter) etc.). Leider kommen öfters mal neue Sachen dazu, so dass das ganze flexibel bleiben muss und zu guter letzt sollen da auch noch andere (Die Personen die an der Spielrunde teilnehmen) auf diese Bibliothek zugreifen können.
Somit wäre es das beste, wenn die eigentliche Informationsquelle an einem Ort ist und die Spieler sich zugriff über das Programm verschaffen.

Jetzt wirst du sicherlich denken, dass man das ganze ja gleich via Html machen kann, da man ja das Internet sowieso braucht. Das ganze soll irgendwann mal soweit gehen, dass der komplette Charakter des Spielers über das Programm integriert ist. Sämtliche Informationen sollen in der Datenbank gespeichert werden. Somit haben auch mehrere Personen (Spieler und Spielleiter) die Möglichkeit gleichzeitig auf einen Datensatz zuzugreifen (z.B. den Charakter). So kann der Spielleiter bei dem Char etwas verändern und der Spieler sieht die Veränderung sofort.

So das war erstmal ein grober Umriss meiner Idee grin

Liebe Grüße,
Nicobius
Posted By: Rasch

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/07/09 22:55

Uff ok das klingt schon komplizierter. Am besten wäre es natürlich das ganze aus einer MYSQl Datenbank aus einer php datei aufzurufen. Das wäre glaube ich die beste möglichkeit. Und die Tabelle bzw. das Design das musst du mal schauen wie du dasENgine Intern regelst.
Posted By: Dark_samurai

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/08/09 10:03

Die php Datei darf einfach keinen html code ausgeben wink Verwende kein Tableelement sondern gib die Daten einfach der Reihe nach aus mit einem Lehrzeichen dazwischen zum trennen der Daten.
Posted By: Nicobius

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/08/09 14:07

Das is natürlich auch nee super Idee. Da muss man erstmal drauf kommen. crazy

Also das funktioniert erstmal. Hab jetzt nur noch die einzelnen Daten die ich in der datenbank hinterlegt habe.
Leider sind die jetzt noch alle hintereinander und ich kann damit nix anfangen.

Hättet ihr jetzt noch nee Idee wie ich auf die einzelnen Datensätze zugreifen kann und sie vorallem irgendwo verwenden kann? Leider hab ich noch gar keine Idee ... blush

Ich könnte mir vorstellen die Datensätze irgendwie in ein "struct" oder eine "Klasse" einzusortieren.

Mal sehen was Frau Google sagt ... wink

Bin für jede Idee zu haben!

Liebe Grüße,
Nicobius
Posted By: Dark_samurai

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/08/09 15:26

Also wie du die einzelnen Datensätze aus dem String bekommst ist simpel:

1) Speichere den empfangenen Datenstring in einen Tempstring
2) Suche mit str_stri() nach dem ersten Leerzeichen im String
3) Benutze str_trunc() und die von str_stri() zurückgegebene Position um alles bis auf den ersten Datensatz zu löschen
4) Kopiere den Inhalt in den String der den ersten Datensatz enthalten soll
5) Lösche im richtigen Datenstring den ersten Datensatz. Benutze dazu str_clip() und die Position von str_stri()
6) Wiederhole Schritt 1 bis 5 so lange, bis der Datenstring leer ist.

Zum Ausgeben kannst du wieder das TEXT* Element verwenden. Erstelle für jede Spalte ein TEXT* Element. Jedes TEXT* Element muss nun so viele Strings enthalten wie die Zeilen deiner Tabelle. Alle Strings füllen, fertig.
Posted By: Nicobius

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 11/10/09 16:46

Hallöchen alle zusammen ...

Also als erstes muss ich mich erstmal bedanken. Dank eurer Hilfe bin ich in den 3 Tagen weitergekommen, wie in den letzten 3 Wochen.

Eure Hilfestellungen funktionieren super und ich kann sogar behaupten, dass ich den meisten Teil davon verstanden habe.

Ich bin gerade dabei meine einzelnen Strings mit der jeweiligen Information, in ein struct einzusortieren. Leider will das noch nicht so richtig.
Das Problem ist das ich den String in ein anderes Datenformat konvertieren muss.

Anscheinend muss ich dafür die Funktionen str_to_int(), str_to_var() usw . benutzen. Na ich werd mal mein Glück versuchen. Falls ich gar nicht zurecht komme, weis ich ja wo ich Hilfe finde. wink

Also wie bereits gasagt ... Vielen Dank.

Liebe Grüße,
Nicobius
Posted By: wacek

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 01/31/10 22:44

I have a similar problem.

I wanted to read data directly from MySQL database. I have a password, user name, host, etc.? How to display such data in the panel or any strings? and may need to create any file in PHP, how he is look like?

I have only local database *.db but I'm not interested and it is not practical because as each user will read data from a database that is hosted on another and not with them on a local computer
Posted By: Dark_samurai

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 02/01/10 12:02

The easiest way is to use the http_post() feature of ANet. You can call a php script with http_post() that access the database and prints the data (you can use echo ""; for that). With http_get_result() you can get the output of the php script as STRING*.

If you printed variables with echo ""; in the php script, you will have to use str_to_int() to get these value out of the result STRING* again.

The http_post() feature is currently only available in the ANet Pro version, but in a few days I'm planning to release the new ANet Demo that will offer you all ANet Pro features so you can try them.
Posted By: wacek

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 02/01/10 14:03

Thanks for the advice, I must now just wait for the new demo
Posted By: nfs42

Re: Anzeige eines Strings der eine PHP-Seite beinhaltet - 02/01/10 16:42

or try GSTNet from my website.
GSTNet_HTTPGet/_HTTPPost will do the job.
© 2024 lite-C Forums