Problema con mysql e php

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Problema con mysql e php

Messaggio da Kimera_V2 »

Salve ho seguito la guida di guidox per la classifica online, installata la gex per studio ma da errore nello script scarica, non riconosce il seguente comando: buffer_write_to_file(buffer, working_directory+"\download.tmp");
Non ho proprio idea di come risolvere, aspetto vostre risposte grazie in anticipo.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Problema con mysql e php

Messaggio da doom13 »

Che errore da?
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Funzione o script sconosciuto.
Potreste postare un link di un tutorial valido per studio senza nessun errore?
Credo sia un errore di gex perche non riconoscie la funzione ho provato a caricare l altra gex contenuta nel rar del tutorial l errore spariscie ma da altro errore sempre nello stesso script su buffer=buffer_create() perche dovrebbe essere scritto cosi:
buffer=buffer_create(size,buffer_type,alignment) solo che non so come scriverlo correttamente.
Tutti i tutorial che ho seguito danno sempre errori su funzioni sconosciute anche installando le gex appropriate.
Mi servirebbe un esempio su come leggere e modificare il mio database

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Raga questo esempio puo fare al caso mio?
https://www.youtube.com/watch?v=jMkIz5QRFE8
Non mai usato php e database in mysql quindi non so na mazza, :piagne: :piagne: :piagne: ma vorrei tanto imparare.
Da quanto si vede nel video crea un gioco in html ,quindi mi chiedo potrebbe funzionare anche per windows e android? O esistono altre procedure per tali sistemi? Se e si quali?

Avatar utente
civic71
GMI Advanced
Messaggi: 2210
Iscritto il: 23/10/2003, 17:31
Specialità: Risotto con zucchine
Uso: GM:Studio 1.4 Pro
Località: Jesolo (venezia)
Contatta:

Re: Problema con mysql e php

Messaggio da civic71 »

seppur io non abbia visualizzato tutto il video , mi sembra che possa spiegarti le principali fasi.
Dovrebbe andare bene anche per Window... mentre per IOS eo Android , volendo , vi è la possibilità d' inserire la classifica del gioco su PlayStore eo ITunes . Manuale per Andorid e Ios ( tadotto in italiano quindi attenzione ): https://translate.googleusercontent.com ... Uu1AmLRuQg

Ti consiglio di studiarti anche le funzioni Asincrone le quali servono anche per inviare dati al proprio database :
https://translate.google.it/translate?s ... t=&act=url


Però le prime cose che dovresti fare sono:
1° Aggiungere la tabella della classifica nel tuo database .. ad essa ti consiglio di avere almeno 3 caselle : una per il nome del giocatore , una per il punteggio ed una "Unica" per la loro numerazione;
Penso che quel video possa essere utile a ciò.

2° Aggiungere il file.php nel tuo sito internet , il quale dovrà contenere il codice PHP che dovrai scrivere tu :paura: , per inserire i dati ( inviati dal gioco ) nel database.

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Problema con mysql e php

Messaggio da Tizzio »

La guida di guidox ( :asd: ) è ottima, chiedi nel suo topic di fixare quel bug
Hanno cambiato qualche funzione

In studio le gex sono a codice aperto quindi se cerchi nelle cartelle del progetto trovi i files
Saranno stupidate da fixare (cambiare nome alle funzioni e aggiungere/ togliere qualche parametro)
Un ottimo allenamento :lol:

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Tizzio ha scritto:La guida di guidox ( :asd: ) è ottima, chiedi nel suo topic di fixare quel bug
Hanno cambiato qualche funzione

In studio le gex sono a codice aperto quindi se cerchi nelle cartelle del progetto trovi i files
Saranno stupidate da fixare (cambiare nome alle funzioni e aggiungere/ togliere qualche parametro)
Un ottimo allenamento :lol:
Ok grazie dei suggerimenti il fatto e che da me non so come fixare tale problema daro uno sguardo ugualmente per capirci qualcosa ma ne dubito.
Chiedero a guidox se puo fixare il problema sempre se e disposto a farlo.

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Ciao raga visto che ho risolto il problema della classifica online ora mi chiedo se è possibile leggere e modificare una determinata variabile contenuta nel database.
Come posso fare?

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Controllato ma non trovo niente :spat: :piagne:
la guida è questa vero? http://gmitalia.altervista.org/gmi_foru ... 29&t=10327

Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio 1.4 Android
Località: Marche
Contatta:

Re: Problema con mysql e php

Messaggio da guidox »

Allora se usi studio non hai bisogno di estensioni. Leggiti questo: http://gmitalia.altervista.org/gmi_foru ... 38#p178438
Per il resto ti dovresti studiare un po' le funzioni per gestire un database in php, ma comunque conto di spiegarlo più chiaramente nella guida aggiornata che pubblicherò tra non molto. ;)
Immagine

Immagine

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Problema con mysql e php

Messaggio da Tizzio »

Guidox, fai una guida più generica, per ricevere variabili e salvare dati nel database, secondo me è più utile rispetto alla classifica!
Poi magari si arrangiano loro per modificare l'esempio e crearla

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Non sto usando studio ma gm8 pro, la classifica funziona bene riesco ad inserire dati e leggerli, io vorrei modificare una certa variabile per esempio se il player Kimera_V2 ha 5 pozioni e ne usa una vorrei modificare tale variabile, con la tua guida si può solo inserire valori e leggerli tutti insieme.
Grazie a tutti per il vostro aiuto.

Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio 1.4 Android
Località: Marche
Contatta:

Re: Problema con mysql e php

Messaggio da guidox »

Va bene! Oggi comincio a buttare giù qualcosa! :rockrock:
Immagine

Immagine

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Visto che in rete non trovo molto su gm8 ho deciso di passare a studio visto che ha molte più funzioni.
Sto cercando di creare un user register/login, ho trovato questo file php che ho modificato e caricato sul mio sito:

Codice: Seleziona tutto

<?php

// When mistakes happen we want the notce returned not the warning. The Warning means nothing to the end user, but we will use the notice
// to return information to the user. You should realy log the errors though so you have them.
//error_reporting(E_ERROR); 

/*
STEP 1 MySQL Connection Details
If you do not know the following information you will need to get it from your web host.
It will most likely be the same as your cPanel login information. 
Server should stay as localhost unless this file and your MySQL are on different servers (not recomended).
*/

$mysql_server = "localhost"; //This is probably correct
$mysql_username = "";    // Your MySQL username
$mysql_password = "";        // Your MySQL Password
$mysql_database = "destron_game_maker";     // The name of your database
$mysql_table = "game_maker"; // Your actual table to hold the data

// Make a MySQL Connection no changes need to be made here
$con = mysql_connect($mysql_server,$mysql_username,$mysql_password) or die('Can not connect to server');
mysql_select_db($mysql_database) or die('Can not connect to database');

/* 
STEP 2 Potential Variables passed from URL - list them all here.
*/
$f = $_GET['f']; //na=new account sv=save ld=load onformation and au=authorize access
$pname = mysql_real_escape_string($_GET['nome']);
$px = mysql_real_escape_string($_GET['player_x']);
$py =  mysql_real_escape_string($_GET['player_y']);
$pscore =  mysql_real_escape_string($_GET['score']);

$salt = "gameMaker"; // CHANGE THIS TO SOMETHING SECRET

$epword = crypt($pword,$salt); // This encrypts the password and sets it to a variable.


//This function will create a new user account or save file
function create_account($con, $mysql_table, $pname, $px, $py, $score)  //declare function Part between () is all the variables you will need for this function.
{
	mysql_query("INSERT INTO $mysql_table (p_name, p_x, p_y, p_score,) VALUES('$pname', '$px', '$py', '$pscore') ") 
	or die('0'); // Something went wrong
 
	echo "1"; //All is right with the world. YAY.
	mysql_close($con);
}
// This function will save information to an existing account
function save_info($con, $mysql_table, $pname, $px, $py, $pscore)
{
	mysql_query("UPDATE $mysql_table SET p_name = $pname, p_x = $px, p_y = $py, p_score = $pscore  WHERE p_name = '$pname'")
	or die('0');
	
	echo "1";
	mysql_close($con);
}
// This function will pull account information
function load_info($con, $mysql_table, $pname, $px, $py, $pscore)
{
	$result = mysql_query("SELECT * FROM $mysql_table WHERE p_name = '$pname'");
	while($row = mysql_fetch_array($result))
		{
		echo $row['p_name'] . "," . $row['p_x'] . "," . $row['p_y'] . "," . $row['p_score'];
		}
			
	mysql_close($con);
}
// This function will simply check if a user exists in the system - useful to auhorize thier aceess. 
function auth($con, $mysql_table, $epword, $pname)
{
	$result = mysql_query("SELECT * FROM $mysql_table WHERE p_name = '$pname' AND p_word = '$epword'");
	while($row = mysql_fetch_array($result))
	if ($row <= 0)
		{
		echo "0";
		}
	else
		{
		echo "1";
		}
}
// This function is used for nothing more than testing that the script and database are working. 
function connection_test($con, $mysql_table, $pname)
{
	$result = mysql_query("SELECT * FROM $mysql_table WHERE p_name = '$pname' ");
	while($row = mysql_fetch_array($result))
	if ($row <= 0)
		{
		echo "Could not comunicate with database. Double check your settings and ask your web host for help.";
		}
	else
		{
		echo "Connection test was OK!";
		}
	}

// This determines which function to call based on the $f parameter passed in the URL.
switch($f)
{
	case na: create_account($con, $mysql_table, $pname, $px, $py, $pscore); break;
	case sv: save_info($con, $mysql_table, $pname, $px, $py, $pscore); break;
	case ld: load_info($con, $mysql_table, $pname, $px, $py, $pscore); break;
	case au: auth($con, $mysql_table, $pname, $px, $py, $pscore); break;
	case ts: connection_test($con, $mysql_table, $pname); break;
	default: echo"error";
}

?>
Riesco ad inserire i dati ma non riesco a leggerne o modificarne nessuno, come posso fare?
Per inserire i dati uso questo codice:

Codice: Seleziona tutto

http_get("http://nomemiosito.altervista.org/async.php?f=na&score="+string(global.pscore) + "&player_x=" +string(o_player.x) + "&player_y=" +string(o_player.y)+ "&nome="+string(nome))
ho capito che bisogna cambiare f=na in f=ld per ricevere le variabile e f=sv per salvare e modificare una determinata variabile.

Avatar utente
Cash
Membro super
Messaggi: 933
Iscritto il: 09/11/2013, 20:40
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Problema con mysql e php

Messaggio da Cash »

Come fai a leggere i dati?Usi nell'evento http la ds_map async_event, giusto?

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Cash ha scritto:Come fai a leggere i dati?Usi nell'evento http la ds_map async_event, giusto?
Non riesco a leggere i dati, non so come fare, non uso niente a dire il vero per ora riesco solo a inserirli :piagne: .

Avatar utente
Cash
Membro super
Messaggi: 933
Iscritto il: 09/11/2013, 20:40
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Problema con mysql e php

Messaggio da Cash »

Kimera_V2 ha scritto:
Cash ha scritto:Come fai a leggere i dati?Usi nell'evento http la ds_map async_event, giusto?
Non riesco a leggere i dati, non so come fare, non uso niente a dire il vero per ora riesco solo a inserirli :piagne: .
Tutte le "risposte" che il server invia vengono salvate in una ds_map speciale chiamata async_event, praticamente un array di coppie di nome e valore. Per leggere la risposta devi ricavare il valore della risposta nell'evento "http event"(evento che viene attivato quando arriva una risposta). Per fare ciò basta usare la funzione ds_map_find_value(async_event,"result"); che cerca in una ds_map(in questo caso async_event) il valore corrispondente al nome(in questo caso cerco il valore che corrisponde al nome "result", un campo che contiene il risultato della risposta. Nota però che se devi fare solo una chiamata allora basta che fai così ma se ne devi fare di più e insieme allora devi salvare gli ID di ogni richiesta(la funzione http_get(blabla) ritorna l'ID della chiamata) e dentro l'evento "http event" confrontare l'ID della risposta appena arrivata per vedere a cosa corrisponde. Generalmente saranno in ordine le risposte ma non si sa mai cosa potrebbe succedere. Guarda il manuale per capire velocemente cosa sono ds_map e i valori disponibili in async_event

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Cash ha scritto:
Kimera_V2 ha scritto:
Cash ha scritto:Come fai a leggere i dati?Usi nell'evento http la ds_map async_event, giusto?
Non riesco a leggere i dati, non so come fare, non uso niente a dire il vero per ora riesco solo a inserirli :piagne: .
Tutte le "risposte" che il server invia vengono salvate in una ds_map speciale chiamata async_event, praticamente un array di coppie di nome e valore. Per leggere la risposta devi ricavare il valore della risposta nell'evento "http event"(evento che viene attivato quando arriva una risposta). Per fare ciò basta usare la funzione ds_map_find_value(async_event,"result"); che cerca in una ds_map(in questo caso async_event) il valore corrispondente al nome(in questo caso cerco il valore che corrisponde al nome "result", un campo che contiene il risultato della risposta. Nota però che se devi fare solo una chiamata allora basta che fai così ma se ne devi fare di più e insieme allora devi salvare gli ID di ogni richiesta(la funzione http_get(blabla) ritorna l'ID della chiamata) e dentro l'evento "http event" confrontare l'ID della risposta appena arrivata per vedere a cosa corrisponde. Generalmente saranno in ordine le risposte ma non si sa mai cosa potrebbe succedere. Guarda il manuale per capire velocemente cosa sono ds_map e i valori disponibili in async_event
Il problema è che non mai usato la ds_map e tanto meno async_event quindi non ho propio idea di come scrivere un codice valido.
potrebbe essere una cosa del genere?:

Codice: Seleziona tutto

http_get("http://nomemiosito.altervista.org/async.php?f=ld&score=" + "&player_x=" + "&player_y=" + "&nome=")
get =http_get("http://nomemiosito.altervista.org/async.php?f=ld&score=" + "&player_x=" + "&player_y=" + "&nome=")
if ds_map_find_value(async_load, "id") == get
   {
   if ds_map_find_value(async_load, "status") == 0
      {
      r_str = ds_map_find_value(async_load, "result");
      }
   else
      {
      r_str = "null";
      }
   }
Sono troppo confuso sull'argomento :confuso: :confuso: :confuso: non ho capito come fare a chiamare una particolare variabile.
Se nel mio database ho una tabella con id_player, nome_player, scrore_player ecc... come faccio a richiamare soltanto le variabili di un determinato player?
Please help me...

Avatar utente
Cash
Membro super
Messaggi: 933
Iscritto il: 09/11/2013, 20:40
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Problema con mysql e php

Messaggio da Cash »

Kimera_V2 ha scritto:
Cash ha scritto:
Kimera_V2 ha scritto:
Cash ha scritto:Come fai a leggere i dati?Usi nell'evento http la ds_map async_event, giusto?
Non riesco a leggere i dati, non so come fare, non uso niente a dire il vero per ora riesco solo a inserirli :piagne: .
Tutte le "risposte" che il server invia vengono salvate in una ds_map speciale chiamata async_event, praticamente un array di coppie di nome e valore. Per leggere la risposta devi ricavare il valore della risposta nell'evento "http event"(evento che viene attivato quando arriva una risposta). Per fare ciò basta usare la funzione ds_map_find_value(async_event,"result"); che cerca in una ds_map(in questo caso async_event) il valore corrispondente al nome(in questo caso cerco il valore che corrisponde al nome "result", un campo che contiene il risultato della risposta. Nota però che se devi fare solo una chiamata allora basta che fai così ma se ne devi fare di più e insieme allora devi salvare gli ID di ogni richiesta(la funzione http_get(blabla) ritorna l'ID della chiamata) e dentro l'evento "http event" confrontare l'ID della risposta appena arrivata per vedere a cosa corrisponde. Generalmente saranno in ordine le risposte ma non si sa mai cosa potrebbe succedere. Guarda il manuale per capire velocemente cosa sono ds_map e i valori disponibili in async_event
Il problema è che non mai usato la ds_map e tanto meno async_event quindi non ho propio idea di come scrivere un codice valido.
potrebbe essere una cosa del genere?:

Codice: Seleziona tutto

http_get("http://nomemiosito.altervista.org/async.php?f=ld&score=" + "&player_x=" + "&player_y=" + "&nome=")
get =http_get("http://nomemiosito.altervista.org/async.php?f=ld&score=" + "&player_x=" + "&player_y=" + "&nome=")
if ds_map_find_value(async_load, "id") == get
   {
   if ds_map_find_value(async_load, "status") == 0
      {
      r_str = ds_map_find_value(async_load, "result");
      }
   else
      {
      r_str = "null";
      }
   }
Sono troppo confuso sull'argomento :confuso: :confuso: :confuso: non ho capito come fare a chiamare una particolare variabile.
Se nel mio database ho una tabella con id_player, nome_player, scrore_player ecc... come faccio a richiamare soltanto le variabili di un determinato player?
Please help me...
Il codice è corretto, basta che metti nel create event(o dove ti serve) solo la seconda riga ed il resto nell'evento "http event".
Create event/dove ti serve

Codice: Seleziona tutto

get =http_get("http://nomemiosito.altervista.org/async.php?f=ld&score=" + "&player_x=" + "&player_y=" + "&nome=")
Http Event

Codice: Seleziona tutto

if ds_map_find_value(async_load, "id") == get
   {
    // Se non funziona prova a mettere "0" al posto di 0, non so se per caso ritorna come stringa o numero lo stato
   if ds_map_find_value(async_load, "status") == 0 
      {
      r_str = ds_map_find_value(async_load, "result");
      }
   else
      {
      r_str = "null";
      }
   }

Avatar utente
Kimera_V2
Membro
Messaggi: 118
Iscritto il: 27/06/2013, 14:11
Uso: GM:Studio 1.4 Pro
Località: CPU
Contatta:

Re: Problema con mysql e php

Messaggio da Kimera_V2 »

Niente da fare non funge :piagne: :piagne: :piagne:
Cosa sbaglio? In r_str non dovrebbero salvarsi le variabili che mi arrivano dal database?
Come faccio a visualizzarle in drawevent?

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti