JeuWeb - Crée ton jeu par navigateur
Remboursement des emprunts - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Remboursement des emprunts (/showthread.php?tid=2639)

Pages : 1 2


Remboursement des emprunts - slek22 - 03-06-2008

Bonjour, je travail actuellement sur une banque virtuel pour mon site et j'en suis rendu à la page de remboursement qui sera activé tout les mois par un cron !
Voici à quoi ressemble cette page pour le moment :
Code PHP :
<?php

include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);

$requete1 = mysql_query("SELECT * FROM banque") or exit(mysql_error());
$donnees1 = mysql_fetch_array($requete1);
if(
$donnees1['duree_restante']>=1)
{
$newnbmensualites = $donnees1['duree_restante']-1;
mysql_query("UPDATE banque SET duree_restante = '".$newnbmensualites."' ")or die (mysql_error());
}
else
{
}
?>
Ce script devrais à chaque fois qu'il est activé retirer 1 sur le nombre de mensualité restante ! En gros, si dans la table dans le champ mensualité restante il y aurais 3, 5 et 8 par exemple, après le passage du script, ça devrait donner ça : 2, 4 et 7 !
Malheureusement actuellement, ça me donne ça : 7, 7 et 7
En faite, j'ai l'impression que mon script prend toute les données, cherche la plus grande, mais les autres au même niveau que celle ci et enfin fait -1
En gros, la table n'arrive pas à dissocier les différentes entrées et traites tout d'un bloc...
Vous me suivez ? ^^

Comment puis-je régler ce problème ?

Merci d'avance pour votre aide et @ bientôt


RE: [script] remboursement des emprunts - Eluox - 03-06-2008

Utilises les balises
Code :
[php][/php]

C'est mieux.

Moi je propose un code tout différents du tient.
Quitte a utiliser mysql, autant le faire complètement.

Code PHP :
<?php

include_once 'includes/identifiants.php';
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);


mysql_query("UPDATE banque SET duree_restante = duree_restante - 1 WHERE duree_restante >= 1");

mysql_close();
?>

Du coup, je trouve tu gagne en temps d'exécution et en lisibilité.

Cordialement, et en espérant de pas dire de bêtises.


RE: [script] remboursement des emprunts - slek22 - 03-06-2008

Je vais essayer ton code Wink
Et désolé pour les balise, étant nouveau sur jeuphp, je ne les connaissais pas...
@ Bientôt

[EDIT] Merci, ça marche Smile
A l'avenir, j'essayerai de travailler le plus possible à même la requête Wink


RE: [script] remboursement des emprunts - Eluox - 03-06-2008

Pour les balises, c'était justement pour que tu le sache .

De rien, j'aii pris personnellement cette habitude de travailler avec les requêtes.

N'oublies pas le tag [REGLE] dans ton titre.
Cordialement


RE: [script] remboursement des emprunts - Yoda54 - 04-06-2008

Un petit mot quand même sur le script que tu as proposé afin de t'aider à progresser avec mysql.
Il n'y a pas de clause WHERE dans ta requête de mise à jour, du coup, tous les champs duree_restante de ta table sont mis à jour avec la même valeur, en l'occurence la dernière trouvée lors de la requête SELECT puisque tu n'utilises pas de while pour parcourir le résultat de la requête.
Pour que ton script fonctionne, il faudrait donc qu'il ressemble à cela:
Code PHP :
<?php 
$requete1
= mysql_query("SELECT * FROM banque") or exit(mysql_error());
while (
$donnees1 = mysql_fetch_array($requete1))
{
if(
$donnees1['duree_restante']>=1)
{
$newnbmensualites = $donnees1['duree_restante']-1;
mysql_query("UPDATE banque SET duree_restante = $newnbmensualites WHERE id_pret=".$donnees1['id_pret'])or die (mysql_error()); //
}
}

Bien entendu, la solution qui t'a été donnée reste de loin la plus optimisée Smile


RE: [script] remboursement des emprunts - Eluox - 04-06-2008

Yoda54 a écrit :Pour que ton script fonctionne, il faudrait donc qu'il ressemble à cela:
Code PHP :
<?php 
$requete1
= mysql_query("SELECT * FROM banque") or exit(mysql_error());
while (
$donnees1 = mysql_fetch_array($requete1))
{
if(
$donnees1['duree_restante']>=1)
{
$newnbmensualites = $donnees1['duree_restante']-1;
mysql_query("UPDATE banque SET duree_restante = $newnbmensualites WHERE id_pret=".$donnees['id_pret'])or die (mysql_error()); //
}
}

Bien entendu, la solution qui t'a été donnée reste de loin la plus optimisée Smile
Il est vraii que j'aii oublier de donner la version corrigé de son script, Big Grin

Petite erreur cependant de ta part ( inattention Big Grin ) donc rien de grave. Dans la requête, c'est $donnees1['id_pret'] et non $donnees['id_pret'].

Comme je le dit rien de grave.

Cordialement,


RE: [script] remboursement des emprunts - Yoda54 - 04-06-2008

Je suppose que tu ne me croiras pas si je te dis que la touche '1' de mon clavier ne fonctionne pas, surtout après l'avoir écrit... Big Grin
Merci de l'avoir signalé, je sais que personnellement, c'est le genre d'erreur que je verrai qu'après m'être arraché plusieurs moumoutes à comprendre pourquoi le code ne fonctionne pas Smile


RE: [script] remboursement des emprunts - Eluox - 04-06-2008

Je te crois pour ta touche de clavier Big Grin

Conseil : error_reporting(E_ALL) au début de tes pages, et tu passeras pas 50 ans a chercher Big Grin

Cordialement,


RE: [script] remboursement des emprunts - slek22 - 04-06-2008

j'ai améliorer mon script pour qu'il puisse mettre à jour ce qu'il reste à rembourser sur le prêt et pour qu'il enlève l'argent de la mensualité sur le compte du membre ! Malheureusement, ce dernier truc (retiration de l'argent sur le compte du membre) ne fonctionne pas...
Voici mon script :
Code PHP :
<?php

include_once 'includes/identifiants.php';
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);

$requete1 = mysql_query("SELECT * FROM banque WHERE id_emprunteur = '".$_SESSION['id']."'") or exit(mysql_error());
$donnees1 = mysql_fetch_array($requete1);

mysql_query("UPDATE banque SET reste_a_payer = reste_a_payer - prixmensualite, duree_restante = duree_restante - 1 WHERE duree_restante >= 1");

$requete2 = mysql_query("SELECT * FROM membres WHERE membre_id = '".$_SESSION['id']."'") or exit(mysql_error());
$donnees2 = mysql_fetch_array($requete2);

mysql_query("UPDATE membres SET membre_or = membre_or - '".$donnees1['prixmensualite']."' WHERE membre_id = '".$_SESSION['id']."'") or exit(mysql_error());

mysql_close();
?>
Ou est ce que ça cloche ?
Merci d'avance pour votre aide Wink


RE: [script] remboursement des emprunts - Eluox - 04-06-2008

Je ne sais pas trop comment marche les Cron ( c'est bien le truc que tu utilises nan ? )

Alors sur un Cron, il n'y a pas de $_SESSION['id'] ?

Je me trompe peut-être.