Dunque, innanzi tutto salve a tutti e grazie per il tempo che dedicherete a questo mio problemuccio{se ne dedicherete}.
Sto lavorando sull'opensource GDR-CD, non so se alcuni di voi lo conoscono, in modo da unire l'utile dello studio della programmazione al dilettevole del gioco.
Purtroppo ultimamente{si tratta di tre mesi in realtà} mi trovo a dovermi "picchiare" con uno script non funzionante.
Il suo funzionamento è molto semplice in realtà ma probabilmente la complessità del codice{o meglio la sua poca comprensibilità} mi rendono difficile scovare il problema.
Sostanzialmente al cambiamento di un parametro della tabella "personaggio" a seconda del valore di questo parametro dovrebbero cambiare,automaticamente, alcuni altri parametri sempre nella stessa tabella...tutto molto bello, tutto molto semplice...ma non va ç__ç
Posto di seguito il codice{opportunamente tagliato visto che da un dato punto in poi vi è un concatenamento di else-if fenomenale:P[gia controllato, mi pare sia corretto]}
<? session_start();
include ("inc/parametri.inc.php");
include ("inc/controllo.php");
include ("inc/open2.php");
$IDGildaOP = intval($IDGilda_S);
$upd =!($IDGildaOP == "");
if ($upd) {
$upd = ($IDGildaOP % 100 == 0);
}
if (!$upd) {
echo "Permesso negato";
exit();
}
include ("inc/controlloesilio.php");
if ($pg != "") {
$MySql = ´SELECT * FROM Gilda ORDER BY IDGilda LIMIT 0,1´;
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$IDGildaMin = 0 + $rs[´IDGilda´];
$GildaMin = 0 + $rs[´Gilda´];
$IMGGIldaMin = $rs[´URLImg´];
$rs->close;
$MySql = "SELECT Personaggio.Nome, Gilda.Gilda FROM Personaggio";
$MySql .= " LEFT JOIN Gilda ON Gilda.IDGilda = Personaggio.IDGilda";
$MySql .= " WHERE Nome = ´$pg´";
$MySql .= " AND NOT ((Personaggio.IDGilda IS NULL or Personaggio.IDGilda < 100)";
$MySql .= " OR ($IDGildaOP + 100 - Personaggio.IDGilda <= 100";
$MySql .= " AND $IDGildaOP + 100 - Personaggio.IDGilda > 0))";
$Result = mysql_query($MySql);
if ($rs = mysql_fetch_array($Result)) {
echo "<font color=red>".htmlspecialchars($pg)." è ".htmlspecialchars($rs["Gilda"])."!</font>
";
$rs->close;
} elseif ($IDGilda == "***") { #Alto Rappresentante - update bloccato!
echo "<font color=red>".htmlspecialchars($pg)." non può diventare Alto Rappresentante!</font>
";
$rs->close;
} else {
$rs->close;
if ($IDGilda == "") {
$GildaPg = $GildaMin;
$IMGGilda = $IMGGildaMin;
} else {
$MySql = "SELECT * From Gilda where IDGilda = ".$IDGilda;
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$GildaPg = $rs["Gilda"];
$IMGGilda = $rs["URLImg"];
$rs->close;
}
$MySql = "SELECT * From Personaggio where Nome= ´$pg´";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$IDRazza = $rs["IDRazza"];
$rs->close;
$MySql = "UPDATE Presenti SET IDGilda = ´$IDGilda´, URLImg = ´".pars($IMGGilda)."´, DescGilda = ´".pars($GildaPg)."´";
$MySql .= " WHERE Nome = ´$pg´";
$Result = mysql_query($MySql);
if ($IDGilda == "") {
$MySql = "UPDATE Personaggio SET IDGilda = ´1´";
} elseif ($IDGilda == 711 || $IDGilda == 1711) /*controllo rinnegati di corporazione*/
{
if ($IDRazza == 1011) /* Razza umana*/
{
$MySql = "UPDATE Personaggio SET Agilità= ´$Agilità´, Mana = ´$Mana´, Forza =´$Forza´ , Destrezza = ´$Destrezza´, Mira = ´$Mira´ ,IDGilda = ´$IDGilda´";
}
elseif ($IDRazza == 3011)/*razza nuovi umani*/
eccetera eccetera sino ad arrivare all´ultimo ruolo in corporazione..da li in poi:
Grazie nuovamente per l'attenzione e, ovviamente, se ho sbagliato sezione e/o forma, scusatemi!else
{
$MySql .= " SET IDGilda = ´$IDGilda´";
}
$MySql .= ", DataUltimaGilda = NOW()";
$MySql .= " WHERE Nome = ´$pg´";
$MySql .= " AND ((IDGilda IS NULL or IDGilda < 100)";
$MySql .= " OR ($IDGildaOP + 100 - Personaggio.IDGilda <= 100";
$MySql .= " AND $IDGildaOP + 100 - Personaggio.IDGilda > 0))";
$Result = mysql_query($MySql);
}
}
function SelectGilda($ID) {
Global $IDGildaOP;
Global $par_CurrencyName;
$Temp = "<select name=IDGilda style={background=white}>";
$MySql = "SELECT * FROM Gilda";
$MySql .= " WHERE ($IDGildaOP + 100 - IDGilda <= 100";
$MySql .= " AND $IDGildaOP + 100 - IDGilda > 0)";
if ($ID == 0) {
$MySql .= " AND IDGilda <> $IDGildaOP";
}
$MySql .= " ORDER BY IDGilda";
$Result = mysql_query($MySql);
while ($rs = mysql_fetch_array($Result)) {
$Temp .= "<option value=";
if ($rs["IDGilda"] % 100 == 0) {
$Temp .= "´***´ style={background=yellow}";
} else {
$Temp .= $rs["IDGilda"];
}
if (intval($ID) == $rs["IDGilda"]) {$Temp .= " SELECTED";};
$Temp .= ">".htmlspecialchars($rs["Gilda"])." [".$rs["Stipendio"]." ".$par_CurrencyName."]</option>";
}
$rs->close;
if ($ID != 0) {
$Temp .= "<option value=´´ style={background=red}>elimina</option>";
}
$Temp .= "</select>";
return($Temp);
}
$MySql = "SELECT Personaggio.*, Razza.Razza AS DescRazza, Razza.URLImg AS ImgRazza, Gilda.Gilda AS DescGilda, Gilda.URLImg AS ImgGilda FROM Personaggio";
$MySql .= " LEFT JOIN Gilda ON Personaggio.IDGilda = Gilda.IDGilda";
$MySql .= " LEFT JOIN Razza ON Personaggio.IDRazza = Razza.IDRazza";
$MySql .= " WHERE ($IDGildaOP + 100 - Personaggio.IDGilda <= 100";
$MySql .= " AND $IDGildaOP + 100 - Personaggio.IDGilda > 0)";
$MySql .= " ORDER BY Personaggio.IDGilda";
$Result = mysql_query($MySql);
include ("inc/header.html.inc.php");
?>
<title>Gestione Corporazione</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor=#555555>
<table border="1" bordercolor="#F8E9AA" cellspacing="0" cellpadding="2" bgcolor=#666666>
<?
while ($rs = mysql_fetch_array($Result)) {
$UrlImgRazza = trim($rs["ImgRazza"]);
If ($UrlImgRazza == "") {$UrlImgRazza = "spacer.gif";};
$UrlImgGilda = trim($rs["ImgGilda"]);
If ($UrlImgGilda == "") {$UrlImgGilda = "nessuno.gif";};
?>
<tr>
<form action=gstcorporazione.php method=Post>
<input name=pg type=hidden value="<?= htmlspecialchars($rs["Nome"]) ?>">
<td>[img]img/testamini<?= strtolower($rs[[/img].gif"> <?=htmlspecialchars($rs[´Nome´])?> (<?= htmlspecialchars($rs["Esperienza"]."|".$rs["Mana"]."|".$rs["Forza"]) ?>)
<?= htmlspecialchars($rs["DescRazza"]) ?>
<?
if ($rs[´Esilio´] == ´2037-12-31 00:00:00´) {
echo ´<font color=red>ESILIATO</font>´;
}
?></td>
<td valign=top align=right>[img]img/stemmi/<?= $UrlImgGilda ?>[/img] <?= SelectGilda($rs["IDGilda"]) ?>
<input type=submit value=modifica></td>
</form>
</tr>
<?
}
$rs->close; ?>
<tr>
<form action=gstcorporazione.php method=Post>
<td> <input type=text name=pg maxlength=20></td>
<td align=right><?= SelectGilda(0) ?>
<input type=submit value=" nuovo "></td>
</form>
</tr>
</table>
</body>
</html>