Update avec ID multiples dans mysql

Fermé
prositef Messages postés 25 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 3 juin 2013 - 16 mars 2013 à 13:32
prositef Messages postés 25 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 3 juin 2013 - 16 mars 2013 à 15:25
Bien, le bonjour à toutes et à tous.

Mon problème: j'ai une table dans laquelle il y est inscrit tous mes clients, cette table contient plusieurs champs dont deux qui me posent problème.
J'ai un champ => heb qui correspond au montant de l'hébergement (decimal 10,2)
J'ai un champ => solde qui correspond à ce que le client doit payer (decimal 10,2)
Lorsque le client a payé, le champ "solde" revient à 0,00, de ce coté la pas de souci mais c'est quand je veux réinitialiser la table pour le mois suivant que je coince.
Au 28 du mois, tous les champs de la table doivent repasser en: solde = montant de l'hébergement mais... ça marche pas !
La base mysql est en refresh automatique via jquery dont je suis pleinement satisfait.
Auriez vous une petite idée ???
Si vous avez besoin de mon script, il est à disposition.
Merci beaucoup !.
J.Secret.
A voir également:

8 réponses

jee pee Messages postés 39742 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 mai 2024 9 191
16 mars 2013 à 13:54
Salut,

Tu devrais poster ta commande et le message d'erreur ou ce qui se produit.

Car la commande sql semble toute simple :

update table set solde = heb

d'ailleurs je te proposerais plutôt update table set solde = solde + heb

cdlt

0
prositef Messages postés 25 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 3 juin 2013
16 mars 2013 à 14:02
Avant tout, 2 petites choses, 1) merci de la rapidité et 2) Un étranger, c'est un ami qu'on n'a pas encore rencontré. (j'aime beaucoup).

En fait je n'ai pas de message d'erreur mais simplement que rien ne se passe.
Voici mon script, il y manque la MAJ en jquery

<?php
date_default_timezone_set('Europe/Paris');
setlocale(LC_TIME, 'french');
$j = strftime("%d"); // le jour de 01 à 31
$h = strftime("%m"); // le mois de 1 à 12
$h = strftime("%y"); // l'année en 2 chiffres
if ($j =="28")
{
$req = mysql_query("SELECT * FROM clients");
while ($cl = mysql_fetch_array($req))
{
$id = $cl['id'];
$nom = $cl['nom'];
$prenom = $cl['prenom'];
$email = $cl['email'];
$heb = $cl['heb'];
$mensu = $cl['mensualite'];
$solde = $cl['solde'];
$etat = $cl['etat'];
}
$req1 = mysql_query("UPDATE clients SET etat='1',solde='$mensu' WHERE id='$id'");
echo '<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">';
echo 'solde réactivé';
exit();
}
else
{
echo '<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">';
echo "en attente d'être réactivé";
exit();
}
?>
0
jee pee Messages postés 39742 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 mai 2024 9 191
Modifié par jee pee le 16/03/2013 à 14:43
Sur la syntaxe je ne vais pas t'être d'un grand secours car je ne connais pas php et pas mysql.

Mais ne faut-il pas une commande pour ouvrir, se connecter à la base.

Il faudrait aussi toujours gérer les codes retour après les ordres sql.

Et sur le fond pourquoi faire une commande select pour faire un update derrière ? Il serait plus simple de faire l'update direct : update clients SET etat='1', solde=mensualite



Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
prositef Messages postés 25 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 3 juin 2013
16 mars 2013 à 14:52
Le code n'est pas complet, effectivement il y a avant un include("connect.php") pour aller chercher la connection et le SELECT sert à récupérer les infos et les ID des clients dont je dois modifier les champs.
Quand aux retours, ils se font via JQUERY.
Tout est OK sauf le fait que la mise à jour des mensualités ($mensu) ne se fait pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jee pee Messages postés 39742 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 mai 2024 9 191
Modifié par jee pee le 16/03/2013 à 15:05
Et pourquoi l'update n'est pas dans la boucle mais à l'extérieur ?

Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
prositef Messages postés 25 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 3 juin 2013
16 mars 2013 à 15:09
Pour faire l'update, j'ai besoin des coordonnées des clients à mettre à jour donc ça nécessite le SELECT pour aller chercher les infos et ensuite le UPDATE pour les mettre à jour en temps réel.
Le refresh est assuré par une fonction en JQUERY qui se charge de cette tache toutes les secondes et m'affiche le résultat sur ma page d'administration.
Seul le update des "$mensu" ne se fait pas, le reste si !
0
jee pee Messages postés 39742 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 mai 2024 9 191
Modifié par jee pee le 16/03/2013 à 15:20
Comme je l'ai écrit plus haut je ne pratique ni php ni mysql mais ...

Pour moi, l'update devrait être à l'intérieur de la boucle while { ... } puisque c'est là que sont initialisées les variables pour traiter chaque enregistrement de la base ramené par le select.


Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
prositef Messages postés 25 Date d'inscription jeudi 9 août 2012 Statut Membre Dernière intervention 3 juin 2013
16 mars 2013 à 15:25
C'est pas grave, je te remercie d'avoir pris de ton temps pour essayer des solutions merci encore, je vais continuer à chercher.
0