MySql : Faire un UPDATE et un INSERT.
Résolu/Fermé
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
-
4 avril 2009 à 17:02
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 4 avril 2009 à 17:50
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 4 avril 2009 à 17:50
Bonjour,
J'essaie de faire un INSERT et un UDPATE en même temps, mais il n'y que le UPDATE qui est pris en compte. Peut-on les exécuter comme suit ? :
mysql_query("INSERT INTO operations VALUES('', '$date', '$operation', '$montant', '$num')");
mysql_query("UPDATE comptes SET solde = solde+'$montant' WHERE idcompte = '$num'");
C'est juste un exercice en fait pour m'entrainer. C'est pour gérer ses comptes. Quand on enregistre une opération, elle est enregistrée dans la table operations et le solde est mis à jour dans la table comptes... Et là, le solde est modifié, mais la table operations reste vide.
J'essaie de faire un INSERT et un UDPATE en même temps, mais il n'y que le UPDATE qui est pris en compte. Peut-on les exécuter comme suit ? :
mysql_query("INSERT INTO operations VALUES('', '$date', '$operation', '$montant', '$num')");
mysql_query("UPDATE comptes SET solde = solde+'$montant' WHERE idcompte = '$num'");
C'est juste un exercice en fait pour m'entrainer. C'est pour gérer ses comptes. Quand on enregistre une opération, elle est enregistrée dans la table operations et le solde est mis à jour dans la table comptes... Et là, le solde est modifié, mais la table operations reste vide.
A voir également:
- MySql : Faire un UPDATE et un INSERT.
- Mysql community server - Télécharger - Bases de données
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Could not connect to mysql! please check your database settings! - Forum Redhat
- Access vs mysql - Forum Webmastering
11 réponses
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
4 avril 2009 à 17:17
4 avril 2009 à 17:17
Essai ça!
<?php include ('header.html'); $num = $_POST['compte']; $operation = $_POST['operation']; $date = $_POST['date']; $montant = $_POST['montant']; if ($num != "" && $operation != "" && $date != "" && $montant != "") { mysql_connect("localhost","root",""); mysql_select_db("comptes"); mysql_query("INSERT INTO operations VALUES('', '$date', '$operation', '$montant', '$num')"); mysql_query("UPDATE comptes SET solde = solde+'$montant' WHERE idcompte = '$num'"); mysql_close(); header ('location: index.php'); } ?> <div class="fond"> <link rel="stylesheet" type="text/css" href="styles.css" /> <div class="fond"> <br><br><br> <p style="text-align: center; font-weight: bolder;">Enregistrer une opération</p> <form action="gestion.php" method="post"> <p style="text-align: center;"> <label for="compte"><small><u>Sélectionner un compte :</u> </small></label><br> <select name="compte" id="compte"><option></option> <?php mysql_connect("localhost","root",""); mysql_select_db("comptes"); $comptes = mysql_query("SELECT * FROM comptes ORDER BY idcompte"); while ($donnee = mysql_fetch_array($comptes)) { echo '<option>'.$donnee['compte'].'</option>'; } mysql_close(); ?> </select></p> <table style="width: 500px; margin-right: auto; margin-left: auto;" cellspacing="0"> <tr class="titres"> <td class="compte" style="padding-left: -20px;">Opération</td> <td class="solde">Date <small>(AAAA/MM/JJ)</small></td> <td class="supprimer">Montant</td> <td class="supprimer">Valider</td> </tr> <tr class="compte1"> <td><input type="text" size="50" width="50" name="operation" /></td> <td><input type="text" name="date" /></td> <td><input type="text" name="montant" /></td> <td align="center"><input type="submit" class="boutons" value="v" style="color: green;" /></td> </tr> <tr> <td class="footer" colspan="4"><a href="index.php">Opération dans un autre compte</a></td> </tr> </table> </form> </div> <?php include('footer.html'); ?> <?php ?> </div> <?php include ('footer.html'); ?>
Bigfish72
Messages postés
79
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
11 avril 2009
4
4 avril 2009 à 17:28
4 avril 2009 à 17:28
Salut,
Met or die(mysql_error()) à la fin de tes requêtes, histoire de voir si tu as un message d'erreur (je te conseille de mettre ça dans toutes tes requêtes, c'est plus facile après pour déboguer).
mysql_query("UPDATE comptes SET solde = solde+'$montant' WHERE idcompte = '$num'") or die(mysql_error());
Met or die(mysql_error()) à la fin de tes requêtes, histoire de voir si tu as un message d'erreur (je te conseille de mettre ça dans toutes tes requêtes, c'est plus facile après pour déboguer).
mysql_query("UPDATE comptes SET solde = solde+'$montant' WHERE idcompte = '$num'") or die(mysql_error());
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
4 avril 2009 à 17:07
4 avril 2009 à 17:07
salut!
on peut voir le code complet stp?
Cdt!
on peut voir le code complet stp?
Cdt!
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
4 avril 2009 à 17:09
4 avril 2009 à 17:09
Je sais que c'est pas très propre. Je sais mieux faire, mais en qualité de débutant je m'entraîne sur une chose après l'autre.
Voici dond le code de la page gestion.php :
------------------------------------------------------
<?php
include ('header.html');
$num = $_POST['compte'];
$operation = $_POST['operation'];
$date = $_POST['date'];
$montant = $_POST['montant'];
if ($num != "" && $operation != "" && $date != "" && $montant != "")
{
mysql_connect("localhost","root","");
mysql_select_db("comptes");
mysql_query("INSERT INTO operations VALUES('', '$date', '$operation', '$montant', '$num')" AND "UPDATE comptes SET solde = solde+'$montant' WHERE idcompte = '$num'");
mysql_close();
header ('location: index.php');
}
?>
<div class="fond">
<link rel="stylesheet" type="text/css" href="styles.css" />
<div class="fond">
<br><br><br>
<p style="text-align: center; font-weight: bolder;">Enregistrer une opération</p>
<form action="gestion.php" method="post">
<p style="text-align: center;">
<label for="compte"><small><u>Sélectionner un compte :</u> </small></label><br>
<select name="compte" id="compte"><option></option>
<?php
mysql_connect("localhost","root","");
mysql_select_db("comptes");
$comptes = mysql_query("SELECT * FROM comptes ORDER BY idcompte");
while ($donnee = mysql_fetch_array($comptes))
{
echo '<option>'.$donnee['compte'].'</option>';
}
mysql_close();
?>
</select></p>
<table style="width: 500px; margin-right: auto; margin-left: auto;" cellspacing="0">
<tr class="titres">
<td class="compte" style="padding-left: -20px;">Opération</td>
<td class="solde">Date <small>(AAAA/MM/JJ)</small></td>
<td class="supprimer">Montant</td>
<td class="supprimer">Valider</td>
</tr>
<tr class="compte1">
<td><input type="text" size="50" width="50" name="operation" /></td>
<td><input type="text" name="date" /></td>
<td><input type="text" name="montant" /></td>
<td align="center"><input type="submit" class="boutons" value="v" style="color: green;" /></td>
</tr>
<tr>
<td class="footer" colspan="4"><a href="index.php">Opération dans un autre compte</a></td>
</tr>
</table>
</form>
</div>
<?php
include('footer.html');
?>
<?php
?>
</div>
<?php
include ('footer.html');
?>
Voici dond le code de la page gestion.php :
------------------------------------------------------
<?php
include ('header.html');
$num = $_POST['compte'];
$operation = $_POST['operation'];
$date = $_POST['date'];
$montant = $_POST['montant'];
if ($num != "" && $operation != "" && $date != "" && $montant != "")
{
mysql_connect("localhost","root","");
mysql_select_db("comptes");
mysql_query("INSERT INTO operations VALUES('', '$date', '$operation', '$montant', '$num')" AND "UPDATE comptes SET solde = solde+'$montant' WHERE idcompte = '$num'");
mysql_close();
header ('location: index.php');
}
?>
<div class="fond">
<link rel="stylesheet" type="text/css" href="styles.css" />
<div class="fond">
<br><br><br>
<p style="text-align: center; font-weight: bolder;">Enregistrer une opération</p>
<form action="gestion.php" method="post">
<p style="text-align: center;">
<label for="compte"><small><u>Sélectionner un compte :</u> </small></label><br>
<select name="compte" id="compte"><option></option>
<?php
mysql_connect("localhost","root","");
mysql_select_db("comptes");
$comptes = mysql_query("SELECT * FROM comptes ORDER BY idcompte");
while ($donnee = mysql_fetch_array($comptes))
{
echo '<option>'.$donnee['compte'].'</option>';
}
mysql_close();
?>
</select></p>
<table style="width: 500px; margin-right: auto; margin-left: auto;" cellspacing="0">
<tr class="titres">
<td class="compte" style="padding-left: -20px;">Opération</td>
<td class="solde">Date <small>(AAAA/MM/JJ)</small></td>
<td class="supprimer">Montant</td>
<td class="supprimer">Valider</td>
</tr>
<tr class="compte1">
<td><input type="text" size="50" width="50" name="operation" /></td>
<td><input type="text" name="date" /></td>
<td><input type="text" name="montant" /></td>
<td align="center"><input type="submit" class="boutons" value="v" style="color: green;" /></td>
</tr>
<tr>
<td class="footer" colspan="4"><a href="index.php">Opération dans un autre compte</a></td>
</tr>
</table>
</form>
</div>
<?php
include('footer.html');
?>
<?php
?>
</div>
<?php
include ('footer.html');
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
4 avril 2009 à 17:15
4 avril 2009 à 17:15
Oui j'ai un peu changer ma requête en mettant un AND entre les deux requêtes... mais le résultat est le même.
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
4 avril 2009 à 17:19
4 avril 2009 à 17:19
Bonne idée... mais désolé, le résultat est le même...
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
4 avril 2009 à 17:25
4 avril 2009 à 17:25
bien!
le problème viens de là
alors cette requête dit que tu insères dans la table opérations,mais es-tu sûr que l'ordre d'insertion est respectée?je m'explique,tel que tu as mis ta requête ainsi,ça veut dire que ta table se présente comme ceci:(id,date,operation,montant,num).
Pour teste,zape update et dis moi!Mais réponds aussi à ma question!
le problème viens de là
mysql_query("INSERT INTO operations VALUES('', '$date', '$operation', '$montant', '$num')");
alors cette requête dit que tu insères dans la table opérations,mais es-tu sûr que l'ordre d'insertion est respectée?je m'explique,tel que tu as mis ta requête ainsi,ça veut dire que ta table se présente comme ceci:(id,date,operation,montant,num).
Pour teste,zape update et dis moi!Mais réponds aussi à ma question!
Utilisateur anonyme
4 avril 2009 à 17:28
4 avril 2009 à 17:28
Bonjour,
Si tes variables sont des entiers, tu ne dois pas mettre de ' '.
Si tes variables sont des entiers, tu ne dois pas mettre de ' '.
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
4 avril 2009 à 17:40
4 avril 2009 à 17:40
J'ai trouvé :
en fait dans mon champs opération, j'ai entré: J'ai mangé un gâteau et l'apostrophe catastrophe m'a fait buguer le truc... Merci à msql_error () et surtout à tous les deux.
Je sais qu'il existe une méthode pour permettre la saisie de cotes dans un champs, mais je sais pas vraiment ou le mettre, mais ca c'est pas urgent, c'est une autre histoire... Mais si jamais c'est pas trop long et ch... à expliquer, ben, je suis peneur.
Merci à vous...
en fait dans mon champs opération, j'ai entré: J'ai mangé un gâteau et l'apostrophe catastrophe m'a fait buguer le truc... Merci à msql_error () et surtout à tous les deux.
Je sais qu'il existe une méthode pour permettre la saisie de cotes dans un champs, mais je sais pas vraiment ou le mettre, mais ca c'est pas urgent, c'est une autre histoire... Mais si jamais c'est pas trop long et ch... à expliquer, ben, je suis peneur.
Merci à vous...
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
4 avril 2009 à 17:42
4 avril 2009 à 17:42
Salut!
Regarde avec addslashes() ça peut t'aider!
Regarde avec addslashes() ça peut t'aider!
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
4 avril 2009 à 17:50
4 avril 2009 à 17:50
Encore merci.