Mercato e Alert
Mercato e Alert postato il 21/10/2009 11:40:35 nel forum programmazione, open source e hosting
Salve a tutti, come al solito vengo a rompere le scatole!! ^^
Bè stò sistemando il mercato ma sono incappato in un problema!! ^^!
Ovvero se uno prova a vendere un oggetto che non ha in scheda non gli compare l'alert che dice che non ha l'oggetto!! ^^
In un primo momento usavo un controllo sul numero oggetto che possiede il pg mettendo che se Numerooggetti==0 esce l'alert ma poi pensando ho dedotto che questo metodo non può funionare perchè se il pg non ha l'oggetto non ha neanche il numero!! ^^!
Allora ho provato a fare un controllo se il pg possiede l'IdOggetto selezionato e in caso il risultato sia "" di inviare l'alert!!
Ma anche così non funziona!! ç___ç!!
Ecco er code!! ^^
<? session_start();
include ('inc/parametri.inc.php');
include ('inc/controllo.php');
include ('inc/open2.php');
include ("inc/controlloesilio.php");
$CodTipoOggetto = $_GET['CodTipoOggetto'];
$Login=$_SESSION['Login'];
$IDOggetto = 0+$_POST['IDOggetto'];
$Acquista=$_POST['Acquista'];
$quanto=$_POST['quanto'];
$Vendi=$_POST['Vendi'];
if (($Acquista != "") && ($quanto == "")) {
?>
<SCRIPT>alert('Devi immettere una Quantità di Oggetti');</SCRIPT>
<?
}
elseif (($Acquista != "") && ($quanto == 0)) {
?>
<SCRIPT>alert('Devi mettere un valore maggiore di 0 per acquistare un oggetto');</SCRIPT>
<?
}
else {
if (($Acquista != "") && ($IDOggetto != "") && ($quanto != "")) {
$MySql = "SELECT PrezzoTotale FROM Mercato WHERE IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$PT = $rs["PrezzoTotale"]*$quanto;
$rs->close;
$Prezzo =$PT;
$MySql = "SELECT Soldi FROM Personaggio WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$tot = $rs["Soldi"];
$rs->close;
if (($tot < $Prezzo)) {
?>
<SCRIPT>alert('Non hai Abbastanza Soldi');</SCRIPT>
<?
}
if ($tot > $Prezzo) {
$MySql = "SELECT * FROM Oggetto ";
$MySql .= " WHERE IDOggetto = ".pars($IDOggetto);
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$NomeOggetto = $rs['Descrizione'];
$rs->close;
$MySql = "SELECT * FROM ClgPersonaggioOggetto WHERE Nome = '".pars($Login)."' AND IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
if ($rs) {$tot = false;} else {$tot = true;};
$rs->close;
$MySql = "UPDATE Personaggio SET Soldi = Soldi - (".$Prezzo*$quanto.") WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($MySql);
if ($tot) { #il record NON esiste -> insert
$MySql = "INSERT INTO ClgPersonaggioOggetto (Nome, IDOggetto, Numero ) VALUES('".pars($Login)."', '$IDOggetto', '$quanto')";
$Result = mysql_query($MySql);
} else { #il record esiste -> update
$MySql = "UPDATE ClgPersonaggioOggetto SET Numero = Numero + $quanto WHERE Nome = '".pars($Login)."' AND IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
}
$Sacquisto = "OK";
$MySql = "INSERT INTO LogFinanza (Nome, Somma, Tipo, DataEvento, Nota)";
$MySql .= " VALUES('".pars($Login)."', '-$Prezzo',";
$MySql .= "'-2', '".strftime("%Y-%m-%d %H:%M:%S")."',";
$MySql .= "'Acquistati oggetti ".pars($NomeOggetto)."')";
$Result = mysql_query($MySql);
}
}
}
if (($Vendi != "") && ($IDOggetto != "")) {
$MySql = "SELECT IDOggetto FROM ClgPersonaggioOggetto WHERE Nome = '".pars($Login)."' and IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$Oggetti = $rs["IDOggetto"];
$rs->close;
if ($Oggetti == "") {
?>
<SCRIPT>alert('Non possiedi l''oggeto da vendere');</SCRIPT>
<?
}
$MySql = "SELECT Numero FROM ClgPersonaggioOggetto WHERE Nome = '".pars($Login)."' and IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$NumeroOggetti = $rs["Numero"];
$Oggetti = $rs["IDOggetto"];
$rs->close;
$MySql = "SELECT PrezzoTotale FROM Mercato WHERE IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$PT = $rs["PrezzoTotale"];
$rs->close;
$Prezzo = round($PT*(4/5));
if ($NumeroOggetti > 0) {
$MySql = "SELECT * FROM Oggetto ";
$MySql .= " WHERE IDOggetto = ".pars($IDOggetto);
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$NomeOggetto = $rs['Descrizione'];
$rs->close;
if ($NumeroOggetti == 1) {
$MySql = "DELETE FROM ClgPersonaggioOggetto WHERE Nome = '".pars($Login)."' AND IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
} else {
$MySql = "UPDATE ClgPersonaggioOggetto SET Numero = Numero - 1 WHERE Nome = '".pars($Login)."' AND IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
}
$MySql = "UPDATE Personaggio SET Soldi = Soldi + ".$Prezzo." WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($MySql);
$MySql = "INSERT INTO LogFinanza (Nome, Somma, Tipo, DataEvento, Nota)";
$MySql .= " VALUES('".pars($Login)."', '$Prezzo',";
$MySql .= "'2', '".strftime("%Y-%m-%d %H:%M:%S")."',";
$MySql .= "'Rivenduto oggetto ".pars($NomeOggetto)."')";
mysql_query($MySql);
$venduto = "OK";
}
}
include ('inc/header.html.inc.php');
?>
<link href="<?= $_SESSION['CSS'] ?>" rel="stylesheet" type="text/css">
<title>Mercato</title>
</head>
<body>
<br><br><br><br>
<center>
<div align=center style="width: 550; height: 500; overflow: auto;">
<table cellpadding=2 cellspacing=2 border=0 width="100%" class="table2">
<?
if ($CodTipoOggetto=='') {
echo '<tr><td class="table2"align=center><font color=#000000 face=verdana size=2><b>Seleziona Categoria Oggetti</b></font></td></tr>';
#---------------- ELENCA I TIPI DI OGGETTI POSSIBILI ------------------
$MySql = "SELECT count(*) AS Numero, CodTipoOggetto.CodTipo, CodTipoOggetto.DescrizioneTipoOggetto FROM Oggetto, CodTipoOggetto, Mercato WHERE Oggetto.Tipo = CodTipoOggetto.CodTipo AND Mercato.IDOggetto = Oggetto.IDOggetto AND Mercato.Categoria = '$Par' GROUP BY CodTipoOggetto.CodTipo";
$Result = mysql_query($MySql);
while($rs = mysql_fetch_array($Result)) {
echo '<tr>';
echo '<td class="table2" align=center><a href="mercato.php?Par='.$Par.'&CodTipoOggetto='.$rs['CodTipo'].'">'.htmlspecialchars($rs['DescrizioneTipoOggetto']).'</a></td>';
echo '</tr>';
}
$rs->close;
echo '</table>';
} else {
?>
<?
#------------- OGGETTI ---------------
$MySql = "SELECT * FROM Mercato";
$MySql .= " LEFT JOIN Oggetto ON Oggetto.IDOggetto = Mercato.IDOggetto";
$MySql .= " WHERE Categoria = '$Par' and Tipo='$CodTipoOggetto' ORDER BY Oggetto.IDOggetto";
$Result = mysql_query($MySql);
while($rs = mysql_fetch_array($Result)) {
?>
<table cellpadding=2 cellspacing=2 border=0 width="100%" class="table2">
<tr>
<td class="table2"><center><b><?=$rs['Descrizione']?></b></center></td>
<td class="table2" rowspan=2 colspan=3><?=$rs['DescrizioneLunga']?></td>
</tr>
<tr>
<td class="table2"><center><img src=<?=$rs['URLImg']?> border=0></center></td>
</tr><tr>
<td width="200" align=center valign=top class="table2">Prezzo:</td>
<td width="200" align=center valign=top class="table2"><?
echo htmlspecialchars($rs["PrezzoTotale"]);
?></td>
<td width="200" class="table2" align=center valign=top>Vendi a:</td>
<td width="200" class="table2" align=center valign=top><?
echo htmlspecialchars($rs["PrezzoTotale"] - round((($rs["PrezzoTotale"]/10)*2)));
?></td></tr><tr>
<td width="200" class="table2" colspan=4 valign=top><center>
<form action="mercato.php" method=post>
<input type=hidden name=IDOggetto value=<?= $rs["IDOggetto"] ?>>
<input type=submit value="Vendi" name="Vendi">
<input type=number name=quanto value="" size=3>
<input type=submit value="Acquista" name="Acquista">
</form></center>
</td>
</tr>
</table><br>
<?
}
$rs->close; ?>
<? }
if ($Sacquisto != "") { ?>
<SCRIPT>alert('Oggetti acquistati per <?= $Prezzo ?> <?= $par_CurrencyName ?>');</SCRIPT>
<? }
if ($venduto != "") { ?>
<SCRIPT>alert('Oggetto venduto per <?= $Prezzo ?> <?= $par_CurrencyName ?>');</SCRIPT>
<? } ?>
</table><a href="uffici.php">Torna all'ufficio</a>
</div>
</center>
</body>
</html>
Ecco il codice dove dovrebbe funzionare l'alert!! ^^!
if (($Vendi != "") && ($IDOggetto != "")) {
$MySql = "SELECT IDOggetto FROM ClgPersonaggioOggetto WHERE Nome = '".pars($Login)."' and IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$Oggetti = $rs["IDOggetto"];
$rs->close;
if ($Oggetti == "") {
?>
<SCRIPT>alert('Non possiedi l''oggeto da vendere');</SCRIPT>
<?
}
$MySql = "SELECT Numero FROM ClgPersonaggioOggetto WHERE Nome = '".pars($Login)."' and IDOggetto = '$IDOggetto'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$NumeroOggetti = $rs["Numero"];
$Oggetti = $rs["IDOggetto"];
$rs->close;
Grazie in anticipo e buona giornata a tutti!! ^^!!
Pagine → 1
21/10/2009 11:46:30
trovo inutile postare l'intera pagina php del mercato.
se hai fatto delle modifiche e non funzionano, metti degli echo prima e dopo i controlli che hai smagheggiato e vedi che combinano.
un minimo di debug delle proprie modifiche sà da fare, difficilmente tutto funziona al primo tentativo.
21/10/2009 13:27:43
Se uso l'echo mi stampa la stringa in modo corretto!! ^^!!
Perciò non riesco a capire perchè non mi vada l'alert!! ^^!!
ho fatto mille prove in diverse maniere prima di postare!! XDDDD!!
21/10/2009 14:19:42
hiyey ha scritto: ho fatto mille prove in diverse maniere prima di postare!! XDDDD!!
quali?
21/10/2009 15:33:46
Grazie Rai!! ^^!
Mi dava l'errore probabilmente perchè avevo messo:
Non possiedi l''oggeto da vendere!! ^^!
Cambiando frase sono riuscito a sistemarlo!! ^^!
Grazie mille ancora!! ^^!
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Foundation Galactic Frontier ↗
The Coven ↗
CRSED: F.O.A.D. ↗
Hero Wars ↗
Raja Dunia ↗