Jump to content
Rpg²S Forum
  • 0

Query e db


Grawel
 Share

Question

Non mi serve proprio uno script ma dei metodi per agganciare un db tramite script e ed eseguire delle query...
Metterei poi la chiamata all'interno della funzione di save.

Link to comment
Share on other sites

Recommended Posts

  • 0

di programmazione si è il ruby che non mi entra XD

Nel senso io volevo mettere quello spezzone di codice all'interno del save o della load bar (parte di salvataggio)

Pensavo per l'appunto di metterlo li ma non ho capito come fare inserire lo spezzone che mi hai dato.

Contando che quel metodo non funziona perché il file saluto non c'è, ciò che ho scritto è la dichiarazione dei due metodi. Basta chiamare il primo nel metodo on_save_success per fare in modo che venga attivato al salvataggio.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

ff=Scene_Prova.new
ff.start

 

 

ok ci sono riuscito...ho solo un problema...ho fatto vari test e non sempre funziona...il salvataggio va a buon fine non crash ma non fa la richiesta pagina...come mai?

 

Fatti altri test...non so perche ma fa la richiesta(o per lo meno salva i dati su db) solo una volta.
devo chiudere il gioco riaprirlo e salvare per salvare ancora....cio non ha senso..........

Edited by Grawel
Link to comment
Share on other sites

  • 0

ff=Scene_Prova.new

ff.start

 

 

ok ci sono riuscito...ho solo un problema...ho fatto vari test e non sempre funziona...il salvataggio va a buon fine non crash ma non fa la richiesta pagina...come mai?

 

Fatti altri test...non so perche ma fa la richiesta(o per lo meno salva i dati su db) solo una volta.

devo chiudere il gioco riaprirlo e salvare per salvare ancora....cio non ha senso..........

Forse perché la scena si chiude prima che la richiesta sia completata. Prova a fare await_response(paginaphp) invece del metodo di prima, in questo caso il salvataggio attenderà che i dati siano passati.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

gia provato e da lo stesso problema....non riesco a capire....la pagina php è semplicissima l'ho usata come test..vede se c'è get nel caso scrive su db.

 

Che tipo di risposta si aspetta?

 

Come posso evitare che si aspetti una risposta...non è possibile che devo chiudere il gioco per mandare una seconda richiesta

 

Browser.open("http://www.miosito.com/f1.php?get=#{request}")

questa funziona sempre però non voglio aprire ogni volta una pagina...spero tu posso aiutarmi

Edited by Grawel
Link to comment
Share on other sites

  • 0

gia provato e da lo stesso problema....non riesco a capire....la pagina php è semplicissima l'ho usata come test..vede se c'è get nel caso scrive su db.

 

Che tipo di risposta si aspetta?

 

Come posso evitare che si aspetti una risposta...non è possibile che devo chiudere il gioco per mandare una seconda richiesta

 

Browser.open("http://www.miosito.com/f1.php?get=#{request}")

questa funziona sempre però non voglio aprire ogni volta una pagina...spero tu posso aiutarmi

 

La risposta la riceve solo se il file php dà una risposta tramite il comando echo. Se non la dà è normale che non ti stampa nulla, e se non ti serve una risposta, puoi benissimo ignorare tutto!

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Capisco la pagina php non ha comandi di echo quindi in teoria come posso fare? per risolvere il problema?
questa è la funzione on save dello script load bar che ti ho girato sopra. L'ho inserita al suo interno cosi.

 

#--------------------------------------------------------------------------
# ● On Save Sucess
#--------------------------------------------------------------------------
alias mog_advloadbar_on_save_success on_save_success
def on_save_success
mog_advloadbar_on_save_success
$game_temp.loadbar_type = 1
SceneManager.call(Scene_Load_Bar)
#################
$fuco=Scene_Prova.new
$fuco.start
################
end
end

 

la mia paura è il costruttore che forse andrebbe dichiarato globale da qualche altra parte. ho notato che per esempio in visual studio da problemi chiamare un costruttore + volte sullo stesso oggetto senza prima chiuderlo...

 

 

 

P.S. ho provato sia fuco che $fuco

 

 

 

Ho fatto un esperimento tramite ricezione di risposte dalla pagina...Ho messo in echo l'ID della riga inserita nel DB settata come A.I.
A questo punto salvando mi da appunto il numero della riga come ritorno (Primo salvaggio che va a buon fine) che salvo in $game_variables[5]

 

Per farvi capire ti riporto un dato $game_variables[5]= 175

 

A questo punto per fare dei test e capire dove fosse il problema ho messo un evento che mettesse a "" la variabile
ed ho effetuato un nuovo salvataggio che come di consueto (purtroppo) non ha salvato su db...a sto punto mi aspettavo che $game_variables[5] fosse rimasta vuota...ma con mi grande sorpresa...e malessere $game_variables[5]= 175

 

A sto punto l'unica idea che mi sono fatto del possibile errore è che lo script non fa una nuova richiesta alla pagina...probabilmente perchè la prima è ancora aperta. Questa è una mia idea ti pregherei di controllare...questo problema mi sta facendo impazzire. Grazie mille spero possiate aiutarmi

Edited by Grawel
Link to comment
Share on other sites

  • 0
Ma guarda che semplicemente se il file php non ha una risposta basta ignorare la variabile di risposta...

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0
In che senso solo una volta?

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

L'ho scritto sopra mi sembra comunque rispiego.
Allora ho inserito la chiamata alla funzione in uno script che viene chiamato durante il salvataggio...

 

 

#--------------------------------------------------------------------------
# ● On Save Sucess
#--------------------------------------------------------------------------
alias mog_advloadbar_on_save_success on_save_success
def on_save_success
mog_advloadbar_on_save_success
$game_temp.loadbar_type = 1
SceneManager.call(Scene_Load_Bar)
#################
$fuco=Scene_Prova.new
$fuco.start
################
end
end

 

a questo punto dovrebbe ogni volta che salvo mandare una richiesta alla pagina php (se ti serve te la posso girare)
la pagina php che sto usando per fare delle prove legge semplicemente i dati che gli arrivano e li salva su un db.

successivamente per controllo ho messo una echo che mandava al mio gioco il numero A.I. della riga appena inseria.

fino a qui funziona.

Il problema è che se io salvo ancora dovrebbe fare una seconda richiesta e quindi inserire una nuova riga nel database restituire come riga la successiva

 

ma oltre a non salvare restituisce stranamente il numero della riga inserita precedentemente.

Link to comment
Share on other sites

  • 0

 

#################
      $fuco=Scene_Prova.new
      $fuco.start
      ################

Cos'è 'sta roba? Non ho mai visto una cosa del genere!

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

xk scusa come dovrei fare a chiamare la funzione?

ho provato anche

fuco=Scene_Prova.new

fuco.start

ed è uguale

 

dimmi te come dovrei chiamarla

Perché creare una scena!? Non ha senso! Nessuno se lo sognerebbe mai!

Togli quell'obbrobbrio e metti questo

 

HTTP.await_get_server_response(url_richiesta)

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

direttamente nella save corretto?
Scusami ma allora ero io che non avevo capito bene che creavo una scena.

 

 

Ho provato e ancora salva solo una volta =(

Edited by Grawel
Link to comment
Share on other sites

  • 0
I dati vengono inviati ogni volta, probabilmente il problema è nella query che fai al db

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

scusami holy ma se il problema fosse la query non funzionerebbe da browser...non trovi?

non è che potresti fare dei test?

o se vuoi ti mando le pagine php per dargli un occhio...ma non credo ci siano errori...

 

ti mando le pagine php ti prego di dargli un occhio ho davvero bisogno di venire a capo di questo problema

 

pagina 1 quella che richiamo nello script

 

ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
require "require.php";
if(isset($_GET['get'])){
$string=$_GET['get'];
$parametri = explode('|',$string);
$nome = $parametri[0];
$pass=$parametri[1];
$day=date('c');
$r2 = new Cast($nome,$pass,$day);
$r2->Save();
}

?>

 

 

 

pagina 2 contiene le funzioni

 

 


class Cast
{
private $id = -1;
private $nome;
private $pass;
private $giorno;

public function __construct($nome, $pass, $giorno)
{
$this->nome = $nome;
$this->pass = $pass;
$this->giorno= $giorno;

}

#funzioni di get
public function getId()
{
return $this->id;
}

public function getNome()
{
return $this->nome;
}

public function getPass()
{
return $this->pass;
}

public function getGiorno()
{
return $this->giorno;
}


#funzioni di set
public function setId($id)
{
$this->id = $id;
}

public function setNome($nome)
{
$this->nome = $nome;
}

public function setPass($pass)
{
$this->pass=$pass;
}

public function setGiorno($giorno)
{
$this->giorno=$giorno;
}

public function Save()
{
global $db;
if ($this->id==-1)
{
if($result=$db->query("insert into utente (nome,pass,giorno) VALUES ('".$this->nome."','".$this->pass."','".$this->giorno."')"))
{
$this->setId($db->insert_id);
$r=$this->getId();
echo($r);
}
}
else
{

if($result=$db->query("update utente set nome='".$this->nome."',pass='".$this->pass."',giorno='".$this->giorno."' where id=".$this->id))
{

}
}
}



public static function GetAll()
{
global $db;
$array=array();
if($result=$db->query("select * from utente"))
{
while($row=$result->fetch_assoc())
{
$p=new album($row["nome"],$row["pass"],$row["giorno"]);
$p->setId($row["id"]);
array_push($array,$p);
}
}
return $array;
}

public static function GetById($id)
{
global $db;
if($result=$db->query("select * from utente where id=$id"))
{
if($row=$result->fetch_assoc())
{
$p=new album($row["nome"],$row["pass"],$row["giorno"]);
$p->setId($id);
return $p;
}
}
}



}
?>

 

 

pagina 3 collega le 2 è ha il connettore mysqli

 

 

$db = new mysqli("localhost","nome_db","password","nome_tab");
require "model_f1.php";
?>

 

Edited by Grawel
Link to comment
Share on other sites

  • 0

fai un print dei parametri dal gioco per controllare se vengono compilati correttamente.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Mi sono dimenticato di scriverlo qui.
Ho risolto il problema. Basta non inviare due volte lo stesso URL, e funziona benissimo.
Ringrazio Holy87 per l'aiuto e la pazienza.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...