par
ItaloBADI » 29 oct. 2005, 22:32
Cyrano,
je sais que je suis encore brouillon, et je te remercie, je vais tâcher de coder pàlus soigneusement pour 1- mieux me comprendre et chercher mes erreurs 2- être mieux compris par les autres qui prennent du temps pour m'aider...
MAIS en fait, j'ai fait autrement.
J'ai testé dans une page test les diférentes requêtes.
Elles fonctionnaient, mais c'était comme si c'était à partir de $_POST ayant pour valeur ZERO.
A moins qu'agissant en boucle, et comme je demandais de remettre en fin de requête les terres à ZERO, elles recommençaient le calcul et terminait par multiplier par ZERO !
Bref, j'ai décidé de traiter le problème à la base :
mon script est trop compliqué.
J'ai donc d'abord fait un formulaire pour décider des quotas, et les envoyer dans un tableau.
ENSUITE, j'ai remplacé tout simplement les $_POST actuels du formulaire qui me cause problème par un INSERT à partir du tableau.
Et comme je vaux éviter les problèmes de boucle, afin de VOIR déjà si mon code fonctionne correctement, j'ai mis juste avec un login ' ItaloBADI'.
ET LA CA FONCTIONNE.
MA QUESTION EST COMMENT PUIS-JE CHANGER MON SCRIPT POUR LE TRANSFORMER DE :
on fait tout ça pour un perso
A
on fait tout ça pour tous les logins de la table un à un avec leurs propres infos.
UNE BOUCLE ?
Mais le problème semblait venir de là...
Voilà le code qui fonctionne avec un seul login :
( je tâche de mieux présenter, comme toi... )
<?session_start();
include('connect.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Traitement des récoltes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style/mj.css" type="text/css" />
</head>
<body>
<div id="menu">
<?
// on crée la requête SQL
$sql = "SELECT saison, annee FROM temps";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
{
$saison=$data['saison'];
$annee=$data['annee'];
}
// on crée la requête SQL
$sql = "SELECT nbble,nbchasse,nbpeche,nbbois,nbcueillette FROM quotas";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on affiche les informations de l'enregistrement en cours
$data = mysql_fetch_assoc($req);
$nbble = $data['nbble'];
$nbchasse = $data['nbchasse'];
$nbpeche = $data['nbpeche'];
$nbbois = $data['nbbois'];
$nbcueillette = $data['nbcueillette'];
// on crée la requête SQL
$sql = "SELECT login,argent,ble,chasse,peche,bois,cueillette, terres_vierges FROM informations WHERE login='ItaloBADI'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on affiche les informations de l'enregistrement en cours
$data = mysql_fetch_assoc($req);
$login = $data['login'];
$argent = $data['argent'];
$ble = $data['ble'];
$chasse = $data['chasse'];
$peche = $data['peche'];
$bois = $data['bois'];
$cueillette = $data['cueillette'];
$terres_vierges = $data['terres_vierges'];
//je calcule les terres vierges pour les réinitialiser plus tard, à partir des terres mises en cultures avant transformation.
$newterres_vierges=$terres_vierges+$ble+$chasse+$peche+$bois+$cueillette;
$gainble = $ble * $nbble;
$gainchasse = $chasse * $nbchasse;
$gainpeche = $peche * $nbpeche;
$gainbois = $bois * $nbbois;
$gaincueillette = $cueillette * $nbcueillette;
$newrapport = $gainble + $gainchasse + $gainpeche + $gainbois + $gaincueillette;
$newargent = $argent + $newrapport;
mysql_query("UPDATE informations SET terres_vierges='".$newterres_vierges."',
ble='0',
chasse='0',
peche='0',
bois='0',
cueillette='0',
rapport='".$newrapport."',
argent='".$newargent."' WHERE login ='ItaloBADI'");
//ON va maintenant procéder à l'achat des denrées par la ville
// on crée la requête SQL
$sql = "SELECT achatscolons FROM depenses WHERE date='".$annee."'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on affiche les informations de l'enregistrement en cours
$data= mysql_fetch_assoc($req);
$anciensoldachats = $data['achatscolons'];
$ajoutachats=$anciensoldachats-$newrapport;
mysql_query("UPDATE depenses SET achatscolons=$ajoutachats WHERE date='".$annee."'");
//ON va maintenant procéder à l'achat des denrées par la ville
// on crée la requête SQL
$sql = "SELECT exportations FROM recettes WHERE date='".$annee."'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on affiche les informations de l'enregistrement en cours
$data= mysql_fetch_assoc($req);
$ancienexport = $data['exportations'];
$ajout=$newrapport*2;
$ajoutexport=$ancienexport+$ajout;
mysql_query("UPDATE recettes SET exportations=$ajoutexport WHERE date='".$annee."'");
// on prévient le MJ que tout cela est fait
echo '<p>Vous avez procédé aux ventes automatiques des produits des colons, à leur achat par la ville. <br/>
et à l\'exportation automatique de ces denrées.</p><br/><br/><br/><br/>
<span class="double"><a href="mj_terres.PHP">REVENEZ A VOTRE GESTION DES TERRES. </a></span>';
mysql_close(); // on ferme la connexion
?>
</div>
</body>
</html>
Cyrano,
je sais que je suis encore brouillon, et je te remercie, je vais tâcher de coder pàlus soigneusement pour 1- mieux me comprendre et chercher mes erreurs 2- être mieux compris par les autres qui prennent du temps pour m'aider... :wink:
MAIS en fait, j'ai fait autrement.
J'ai testé dans une page test les diférentes requêtes.
Elles fonctionnaient, mais c'était comme si c'était à partir de $_POST ayant pour valeur ZERO.
A moins qu'agissant en boucle, et comme je demandais de remettre en fin de requête les terres à ZERO, elles recommençaient le calcul et terminait par multiplier par ZERO !
Bref, j'ai décidé de traiter le problème à la base :
mon script est trop compliqué.
J'ai donc d'abord fait un formulaire pour décider des quotas, et les envoyer dans un tableau.
ENSUITE, j'ai remplacé tout simplement les $_POST actuels du formulaire qui me cause problème par un INSERT à partir du tableau.
Et comme je vaux éviter les problèmes de boucle, afin de VOIR déjà si mon code fonctionne correctement, j'ai mis juste avec un login ' ItaloBADI'.
ET LA CA FONCTIONNE.
MA QUESTION EST COMMENT PUIS-JE CHANGER MON SCRIPT POUR LE TRANSFORMER DE :
on fait tout ça pour un perso
A
on fait tout ça pour tous les logins de la table un à un avec leurs propres infos.
UNE BOUCLE ?
Mais le problème semblait venir de là...
Voilà le code qui fonctionne avec un seul login :
[i]( je tâche de mieux présenter, comme toi... )[/i]
[php]<?session_start();
include('connect.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Traitement des récoltes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style/mj.css" type="text/css" />
</head>
<body>
<div id="menu">
<?
// on crée la requête SQL
$sql = "SELECT saison, annee FROM temps";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
{
$saison=$data['saison'];
$annee=$data['annee'];
}
// on crée la requête SQL
$sql = "SELECT nbble,nbchasse,nbpeche,nbbois,nbcueillette FROM quotas";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on affiche les informations de l'enregistrement en cours
$data = mysql_fetch_assoc($req);
$nbble = $data['nbble'];
$nbchasse = $data['nbchasse'];
$nbpeche = $data['nbpeche'];
$nbbois = $data['nbbois'];
$nbcueillette = $data['nbcueillette'];
// on crée la requête SQL
$sql = "SELECT login,argent,ble,chasse,peche,bois,cueillette, terres_vierges FROM informations WHERE login='ItaloBADI'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on affiche les informations de l'enregistrement en cours
$data = mysql_fetch_assoc($req);
$login = $data['login'];
$argent = $data['argent'];
$ble = $data['ble'];
$chasse = $data['chasse'];
$peche = $data['peche'];
$bois = $data['bois'];
$cueillette = $data['cueillette'];
$terres_vierges = $data['terres_vierges'];
//je calcule les terres vierges pour les réinitialiser plus tard, à partir des terres mises en cultures avant transformation.
$newterres_vierges=$terres_vierges+$ble+$chasse+$peche+$bois+$cueillette;
$gainble = $ble * $nbble;
$gainchasse = $chasse * $nbchasse;
$gainpeche = $peche * $nbpeche;
$gainbois = $bois * $nbbois;
$gaincueillette = $cueillette * $nbcueillette;
$newrapport = $gainble + $gainchasse + $gainpeche + $gainbois + $gaincueillette;
$newargent = $argent + $newrapport;
mysql_query("UPDATE informations SET terres_vierges='".$newterres_vierges."',
ble='0',
chasse='0',
peche='0',
bois='0',
cueillette='0',
rapport='".$newrapport."',
argent='".$newargent."' WHERE login ='ItaloBADI'");
//ON va maintenant procéder à l'achat des denrées par la ville
// on crée la requête SQL
$sql = "SELECT achatscolons FROM depenses WHERE date='".$annee."'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on affiche les informations de l'enregistrement en cours
$data= mysql_fetch_assoc($req);
$anciensoldachats = $data['achatscolons'];
$ajoutachats=$anciensoldachats-$newrapport;
mysql_query("UPDATE depenses SET achatscolons=$ajoutachats WHERE date='".$annee."'");
//ON va maintenant procéder à l'achat des denrées par la ville
// on crée la requête SQL
$sql = "SELECT exportations FROM recettes WHERE date='".$annee."'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on affiche les informations de l'enregistrement en cours
$data= mysql_fetch_assoc($req);
$ancienexport = $data['exportations'];
$ajout=$newrapport*2;
$ajoutexport=$ancienexport+$ajout;
mysql_query("UPDATE recettes SET exportations=$ajoutexport WHERE date='".$annee."'");
// on prévient le MJ que tout cela est fait
echo '<p>Vous avez procédé aux ventes automatiques des produits des colons, à leur achat par la ville. <br/>
et à l\'exportation automatique de ces denrées.</p><br/><br/><br/><br/>
<span class="double"><a href="mj_terres.PHP">REVENEZ A VOTRE GESTION DES TERRES. </a></span>';
mysql_close(); // on ferme la connexion
?>
</div>
</body>
</html>[/php]