MySql : Faire un UPDATE et un INSERT.
Résolu
Fetide68
Messages postés
745
Date d'inscription
Statut
Membre
Dernière intervention
-
Fetide68 Messages postés 745 Date d'inscription Statut Membre Dernière intervention -
Fetide68 Messages postés 745 Date d'inscription Statut Membre Dernière intervention -
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
- Could not connect to mysql! please check your database settings! - Forum Redhat
- 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
- Access vs mysql - Forum Webmastering
11 réponses
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'); ?>
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());
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
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.
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!
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...