ok vi posto tutto il codice x chiarezza !
questo è il "percorso"
searchoffer.php (tramite <form action=\"process.php\" method=\"POST\">) richiama process.php (che al sui interno elabora i form tramite la funzione procSearchOffer()), di seguito vengono chiamate searchOffer() (in session.php) e infine getOffer() in (database.php), i risultato della query risale tutte le funzioni tramite dei return tranne nell'ultimo passaggio dove vine restituito $result a searchoffer.php tramite una variabile di sessione $_SESSION['result']...
FUNZIONA TUTTO FINO ALL'ULTIMO PASSAGGIO, come posso fare ?
p.s.
fare una query ogni pagina nn ha senso
database.php
Codice PHP:
/**
* getOffer - Returns the result array from a mysql
* query. If query fails, NULL is returned.
*/
function getOffer($id, $offerente, $universo, $tipo, $risorsa_1, $ris_1_quanto_min, $ris_1_quanto_max, $risorsa_2, $ris_2_quanto_min, $ris_2_quanto_max, $partenza, $max_dist, $durata, $stato, $acquirente, $coordinate){
//verifica dati e composizione della query
$c = 0; // flag
$q = "SELECT * FROM ".TBL_MAKE_OFFER." WHERE";
if(!$id == NULL){ $q .= " id = '$id'"; $c = 1;}
if(!$offerente == NULL && $c == 1){ $q .= " AND offerente = '$offerente'"; $c = 1;}
else if(!$offerente == NULL){ $q .= " offerente = '$offerente'"; $c = 1;}
if(!$universo == NULL && $c == 1){ $q .= " AND universo = '$universo'"; $c = 1;}
else if(!$universo == NULL){ $q .= " universo = '$universo'"; $c = 1;}
if(!$tipo == NULL && $c == 1){ $q .= " AND tipo = '$tipo'"; $c = 1;}
else if(!$tipo == NULL){ $q .= " tipo = '$tipo'"; $c = 1;}
if(!$risorsa_1 == NULL && $c == 1){ $q .= " AND risorsa_1 = '$risorsa_1'"; $c = 1;}
else if(!$risorsa_1 == NULL){ $q .= " risorsa_1 = '$risorsa_1'"; $c = 1;}
if(!$ris_1_quanto_min == NULL && $c == 1){ $q .= " AND ris_1_quanto_min = '$ris_1_quanto_min'"; $c = 1;}
else if(!$ris_1_quanto_min == NULL){ $q .= " ris_1_quanto_min = '$ris_1_quanto_min'"; $c = 1;}
if(!$ris_1_quanto_max == NULL && $c == 1){ $q .= " AND ris_1_quanto_max = '$ris_1_quanto_max'"; $c = 1;}
else if(!$ris_1_quanto_max == NULL){ $q .= " ris_1_quanto_max = '$ris_1_quanto_max'"; $c = 1;}
if(!$risorsa_2 == NULL && $c == 1){ $q .= " AND risorsa_2 = '$risorsa_2'"; $c = 1;}
else if(!$risorsa_2 == NULL){ $q .= " risorsa_2 = '$risorsa_2'"; $c = 1;}
if(!$ris_2_quanto_min == NULL && $c == 1){ $q .= " AND ris_2_quanto_min = '$ris_2_quanto_min'"; $c = 1;}
else if(!$ris_2_quanto_min == NULL){ $q .= " ris_2_quanto_min = '$ris_2_quanto_min'"; $c = 1;}
if(!$ris_2_quanto_max == NULL && $c == 1){ $q .= " AND ris_2_quanto_max = '$ris_2_quanto_max'"; $c = 1;}
else if(!$ris_2_quanto_max == NULL){ $q .= " ris_2_quanto_max = '$ris_2_quanto_max'"; $c = 1;}
if(!$partenza == NULL && $c == 1){ $q .= " AND partenza = '$partenza'"; $c = 1;}
else if(!$partenza == NULL){ $q .= " partenza = '$partenza'"; $c = 1;}
if(!$max_dist == NULL && $c == 1){ $q .= " AND max_dist = '$max_dist'"; $c = 1;}
else if(!$max_dist == NULL){ $q .= " max_dist = '$max_dist'"; $c = 1;}
if(!$durata == NULL && $c == 1){ $q .= " AND durata = '$durata'"; $c = 1;}
else if(!$durata == NULL){ $q .= " durata = '$durata'"; $c = 1;}
if(!$stato == NULL && $c == 1){ $q .= " AND stato = '$stato'"; $c = 1;}
else if(!$stato == NULL){ $q .= " stato = '$stato'"; $c = 1;}
if(!$acquirente == NULL && $c == 1){ $q .= " AND acquirente = '$acquirente'"; $c = 1;}
else if(!$acquirente == NULL){ $q .= " acquirente = '$acquirente'"; $c = 1;}
if(!$coordinate == NULL && $c == 1){ $q .= " AND coordinate = '$coordinate'"; $c = 1;}
else if(!$coordinate == NULL){ $q .= " coordinate = '$coordinate'"; $c = 1;}
$q .= " ORDER BY id DESC";
//fine verifica dati e composizione della query
$result = mysql_query($q, $this->connection);
//controllo errori, scrittura su file error.txt
$scrivi_file = fopen('C:\Programmi\EasyPHP1-8\www\occ\report\query.txt','a');
$stringa = "result database : $result \n";
fwrite($scrivi_file,$stringa);
fclose($scrivi_file);
// fine controllo errori
/* Error occurred, return NULL */
if(!$result || (mysql_numrows($result) < 1)){
return NULL;
}
/* Return result array */
return $result;
}
session.php
Codice PHP:
/**
* searchOffer
*/
function searchOffer($subtipo, $subrisorsa_1, $subrisorsa_1_quanto_min, $subrisorsa_1_quanto_max, $subrisorsa_2, $subpartenza, $submax_dist){
global $database, $session, $form; //The database and form object
/* risorsa 1 error checking */
if($subrisorsa_2 != NULL){
$field = "risorsa_1"; //Use field name for risorsa 1
$field_b = "risorsa_2"; //Use field name for risorsa 2
if($subrisorsa_1 == $subrisorsa_2){
$form->setError($field, "* Il tipo di risorse da Vendere / Comprare e Ricevere / Dare sono uguali");
$form->setError($field_b, "* Il tipo di risorse da Vendere / Comprare e Ricevere / Dare sono uguali");
}
}
/* risorsa 1 quanto min error checking */
if($subrisorsa_1_quanto_min != NULL){
$field = "risorsa_1_quanto_min"; //Use field name for risorsa 1 quanto min
if(!is_numeric($subrisorsa_1_quanto_min)){
$form->setError($field, "
* Valore non valido");
}
}
/* risorsa 1 quanto max error checking */
if($subrisorsa_1_quanto_max != NULL){
$field = "risorsa_1_quanto_max"; //Use field name for risorsa 1 quanto max
if(!is_numeric($subrisorsa_1_quanto_max)){
$form->setError($field, "
* Valore non valido");
}
}
if(($subrisorsa_1_quanto_min != NULL) && ($subrisorsa_1_quanto_max != NULL) && (is_numeric($subrisorsa_1_quanto_min))&& (is_numeric($subrisorsa_1_quanto_max))){
$field = "risorsa_quanto_err"; //Use field name for risorsa 1 quanto err
if($subrisorsa_1_quanto_min > $subrisorsa_1_quanto_max){
$form->setError($field, "* Le unità minime sono maggiori di quelle massime");
}
}
/* partenza error checking */
$field = "partenza"; //Use field name for partenza
if(!$subpartenza){
$form->setError($field, "
* Galassia di partenza non selezionata");
}
/* Errors exist, have user correct them */
if($form->num_errors > 0){
return 1; //Errors with form
}
/* No errors, add the new offer to the database */
else{
$result = $database->getOffer(NULL, NULL, $session->universo, $subtipo, $subrisorsa_1, $subrisorsa_1_quanto_min, $subrisorsa_1_quanto_max, $subrisorsa_2, NULL, NULL, $subpartenza, $submax_dist, NULL, 'a', NULL, NULL);
//controllo errori, scrittura su file error.txt
$scrivi_file = fopen('C:\Programmi\EasyPHP1-8\www\occ\report\query.txt','a');
$stringa = "result session : $result \n";
fwrite($scrivi_file,$stringa);
fclose($scrivi_file);
// fine controllo errori
if($result)
{
return $result; //Search offer succesfully
}
else
{
return 2; //Search offer failed
}
}
}
process.php
Codice PHP:
/**
* procSearchOffer
*/
function procSearchOffer(){
global $session, $form;
//controllo esistenza valori facoltativi
if(!isset($_POST['risorsa_1_quanto_min'])){
$risorsa_1_quanto_min = NULL;
}
else
{
$risorsa_1_quanto_min = $_POST['risorsa_1_quanto_min'];
}
if(!isset($_POST['risorsa_1_quanto_max'])){
$risorsa_1_quanto_max = NULL;
}
else
{
$risorsa_1_quanto_max = $_POST['risorsa_1_quanto_max'];
}
if(!isset($_POST['risorsa_2'])){
$risorsa_2 = NULL;
}
else
{
$risorsa_2 = $_POST['risorsa_2'];
}
if(!isset($_POST['distanza'])){
$distanza = NULL;
}
else
{
$distanza = $_POST['distanza'];
}
//fine controllo valori
/* Search Offer attempt */
$result = $session->searchOffer($_POST['tipo'], $_POST['risorsa_1'], $risorsa_1_quanto_min, $risorsa_1_quanto_max, $risorsa_2, $_POST['partenza'], $distanza);
//controllo errori, scrittura su file error.txt
$scrivi_file = fopen('C:\Programmi\EasyPHP1-8\www\occ\report\query.txt','a');
$stringa = "result process : $result \n";
fwrite($scrivi_file,$stringa);
fclose($scrivi_file);
// fine controllo errori
/* Search Offer error form */
if($result == 1){
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
header("Location: ".$session->referrer);
}
/* Search Offer failed o nessun risultato */
else if($result == 2){
$_SESSION['searchoffer'] = false;
header("Location: ".$session->referrer);
}
else {
$_SESSION['searchoffer'] = true;
$_SESSION['result'] = $result;
//controllo errori, scrittura su file error.txt
$scrivi_file = fopen('C:\Programmi\EasyPHP1-8\www\occ\report\query.txt','a');
$stringa = "result process passato : ".$_SESSION['result']."\n";
fwrite($scrivi_file,$stringa);
fclose($scrivi_file);
// fine controllo errori
header("Location: ".$session->referrer);
}
}
searchoffer.php