Ciao ragazzi,
mi è insorto un problema nella applicazione di una query nel senso che invece di applicarmi il risultato di una operazione mi cambia il dato in 0
Vi posto tutto il codice in questione che ha il compito di eseguire le operazioni di un marcato per un gdr php
anche se forse il malfunzionamento sta nelle operazioni matematiche ma magari c'è anche qualcosa d'altro quindi ve lo posto tutto:
Voi avete qualche spiegazione del perché mi modifica tutti i risultati in 0?Codice PHP:
<?php
require "parte1.php";
$modo = 'c';
$o =$_GET['o'];
$qtac =$_POST['qtac'];
$qtav =$_POST['qtav'];
$sic =$_SESSION['sic'];
//controllo di sicurezza
if ($sic == '1') {
// recupero dei dati del mercato
$quer = "SELECT * FROM mercato " .
"WHERE posizione = '$posizione' ";
$resul = mysql_query($quer) or die (mysql_error());
$og = mysql_fetch_array($resul);
foreach($og as $chiave=>$valore)
$$chiave = $valore;
$quero = "SELECT * FROM mercato_prezzi " .
"WHERE pposizione = '$posizione' ";
$resulo = mysql_query($quero) or die (mysql_error());
$p = mysql_fetch_array($resulo);
foreach($p as $chiave=>$valore)
$$chiave = $valore;
$quers = "SELECT * FROM user_inventario2 " .
"WHERE id = '$id' ";
$resuls = mysql_query($quers) or die (mysql_error());
$i = mysql_fetch_array($resuls);
foreach($i as $chiave=>$valore)
$$chiave = $valore;
//Il massimo del magazzino del mercato per i vari livelli
if ($mercato == 1) {
$limit = 15;
//liv1 e 2
}
if ($mercato > 2) {
$limit = 20;
//liv 3
}
if ($mercato > 3) {
$limit = 35;
//liv 4
}
if ($mercato > 4) {
$limit = 45;
//liv 5
}
if ($mercato > 5) {
$limit = 55;
//liv 6 e 7
}
if ($mercato > 7) {
$limit = 80;
//liv 8
}
if ($mercato > 8) {
$limit = 100;
//liv 9
}
if ($mercato > 9) {
$limit = 150;
//liv 10
}
if ($mercato == 11) {
$limit = 200;
//liv 11
}
//l'oggetto
//l'inventario oggetto
$inv = 'a' . $o;
//il prezzo oggetto
$pr = 'p' . $o;
//tutto
$env = $inv;
$oggetto = $og[$o];
$oinv = $i[$inv];
$opr = $p[$pr];
// L'acquisto
if ($modo == 'c') {
if (($qtac != '') && ($qtac != '0')) {
//presa dell'oggetto
$ni = $oinv + $qtac;
//retrazione dal mercato
$no = $oggetto - $qtac;
if (($opr != '1') && ($opr != '1000')) {
//modifica del prezzo del mercato
if (($o != 'oro') && ($o != 'ferro') && ($o != 'acciaio') && ($o != 'legno') && ($o != 'sale')&& ($o != 'bastone') && ($o != 'aratro') && ($o != 'armatura')&& ($o != 'spada')&& ($o != 'ariete')&& ($o != 'trabocco') && ($o != 'catapulta') && ($o != 'cannone') && ($o != 'vaso') && ($o != 'tazze')) {
$npr = $opr + (1 * $qtac);
} else {
$npr = $opr + (10 * $qtac);
}
} else {$npr = $opr;}
if ($soldi >= $npr) {
if ($oggetto >= $qtac) {
$nsoldi = $npr * $qtac;
echo "Vuoi veramente comprare " . $qtac . " $o " . " per il prezzo di " . $npr . " denari?<br>";?>
<a href="?conf=si&o=<? echo $o; ?>">Sì</a><br><a href="?conf=no">No</a><br><?
} else {echo "Ehm come dire... Non ne abbiamo così tanti quanti ne avete richiesto mio cliente";}
} else {echo "Non hai abbastanza soldi nel tuo portafoglio per comprarlo"; }
}
}
// La vendita
if ($modo == 'v') {
if (($qtav != '') && ($qta != '0')) {
//r dell'oggetto
$ni = $oinv - $qtac;
//p dal mercato
$no = $oggetto + $qtac;
if (($opr != 1) && ($opr != 1000)) {
//modifica del prezzo del mercato
if (($o != 'oro') && ($o != 'ferro') && ($o != 'acciaio') && ($o != 'legno') && ($o != 'sale')&& ($o != 'bastone')&& ($o != 'aratro')&& ($o != 'armatura')&& ($o != 'spada')&& ($o != 'ariete')&& ($o != 'trabocco')&& ($o != 'catapulta') && ($o != 'cannone') && ($o != 'vaso') && ($o != 'tazze')) {
$npr = $opr - (1 * $qtav);
} else {
$npr = $opr - (10 * $qtav);
}}
} else {$npr = $opr;}
$nsoldi = $npr * $qtav;
if ($limit > $no) {
if ($oinv >= $qtav) {
echo "<br>Vuoi veramente vendere " . $oggetto . $o . " per il prezzo di " . $npr . " denari?<br>";
?>
<a href="?conf=si">Sì</a><br><a href="?conf=no">No</a><br>
<?
} else {echo "Non ne avete così tanti!";}
} else {echo "<br>Non puoi vendere questo prodotto qua adesso perchè il limite di immagazzinamento di questo prodotto consentito dall'odierno livello del mercato è stato raggiunto<br>"; }
}
$conf =$_GET['conf'];
if (($conf == 'si') && ($sic == '1')) {
//disattivazione immediata della chiave di sicurezza
$_SESSION['sic']= '0';
$up99 = "UPDATE `user_inventario2` SET `{$env}` = '{$ni}' WHERE `nome` = '{$user}'";
$rs99 = mysql_query($up99) or die(mysql_error());
$up88 = "UPDATE user SET " .
" soldi = '$nsoldi' " .
"WHERE user_username = '$user' ";
$rs88 = mysql_query($up88) or die(mysql_error());
$up77 = "UPDATE `mercato` SET `{$o}` = '{$no}' WHERE `posizione` = '{$posizione}'";
$rs77 = mysql_query($up77) or die(mysql_error());
$up66 = "UPDATE `mercato_prezzi` SET `{$pr}` = '{$npr}' WHERE `pposizione` = '{$posizione}'";
$rs98 = mysql_query($up66) or die(mysql_error());
echo "Affare fatto!";
}
if ($conf == 'no') {
//disattivazione immediata della chiave di sicurezza
$_SESSION['sic']= '0';
echo "Hai detto al venditore che non compravi quell'oggetto, forse ci sarà rimasto un po' male ma<br> pazienza...<br>
<i>State tornando al mercato</i><br>";
header ("Refresh: 3; URL= mercato.php");
}
} else {echo "Errore di trasferimento dei dati,rifare l'operazione per favore";
//disattivazione immediata della chiave di sicurezza
$_SESSION['sic']= '0';
}
//disattivazione immediata della chiave di sicurezza
require "parte2.php";
?>