{MySQL} Problème php/mysql

Résolu/Fermé
killersources Messages postés 23 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 18 janvier 2014 - 20 juin 2009 à 15:58
killersources Messages postés 23 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 18 janvier 2014 - 22 juin 2009 à 11:50
Bonjour à tous,

Je suis en train de créer un formulaire pour ajouter une entrée de stock. J'ai donc une table contenant tous mes articles et je voudrais pouvoir ajouter la quantité renseigner dans mon formulaire à la quantité déjà présente dans la base.... Mais je ne trouve pas le moyen d'y arriver.
J'espère que quelqu'un pourra m'aider à y arriver.

Moici mon code actuel pour l'update du produit:

<?php

include ("variables.inc.php");
include ("identification.inc.php");

$liendb = mysql_connect ("localhost", "", "");
mysql_select_db ("");

if ($_REQUEST['action']=="maj")
{

$sql = "UPDATE articles SET qte = '".$_POST['qte']."'
WHERE id_article = '".$_REQUEST['id']."'";

mysql_query ($sql) or die (mysql_error());
header("Location: liste_article.php");
}
elseif ($_REQUEST['action']=="suppr" && $_REQUEST['id']>=1)
{
$sql = "DELETE FROM articles WHERE id_article='".$_REQUEST['id']."'";
mysql_query ($sql);
header("Location: liste_article.php");
}

include("haut.inc.php");

echo "<p align=left> Article n°    [".$_REQUEST['id']."]</p>";

$sql = "SELECT * FROM articles WHERE id_article='".$_REQUEST['id']."'";
$resultat = mysql_query ($sql);
$machines = mysql_fetch_array ($resultat)

?>
<form action="articles3.php" method="post">
<input type="hidden" name="enregistre" value="oui" />
<input type="hidden" name="id" value="<?php echo $_REQUEST['id']; ?>" />

<table width="600" >
<tr>
<td valign="top">Désignation</td>
<td><textarea name="nom" rows="1" cols="90"><?php echo $machines['designation']; ?></textarea></td>
</tr>
<tr>
<td>Quantité d'article ajouter</td>
<td><input type="text" name="qte" /></td>
</tr>
<tr>
<td>Seuil de commande</td>
<td><input type="text" name="seuil" value="<?php echo $machines['seuil']; ?>" /></td>
</tr>
<tr>
<td>Prix</td>
<td><input type="text" name="prix" value="<?php echo $machines['prix']; ?> €" /></td>
</tr>

</table>

<br/>

<select name="action">
<option value="maj"> Enregistrer la fiche </option>
<option value="suppr"> Supprimer la fiche </option>
</select>
<input type="submit" value="effectuer">


</form>
</div>
</body>
</html>

<?php

mysql_close ($liendb);

?>

Merci d'avance pour votre aide

8 réponses

Bonjour

Si c'est dans le cas "maj", c'est tout simplement
$sql = "UPDATE articles SET qte = qte + '".$_POST['qte']."'
WHERE id_article = '".$_REQUEST['id']."'";
0
killersources Messages postés 23 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 18 janvier 2014
20 juin 2009 à 18:30
J'ai essayé comme ça mais la valeur introduite remplace quand même la valeur de la base au lieu de faire la mise à jour...

Je vois pas pourquoi. Y a t-il un type de champ particulier à mettre dans la table pour que ça fonctionne?
Je suis perdu...

Merci pour ton aide
0
Qte est un champ numérique (je suppose ! ) , ce sont sans doute les apostrophes qui empêchent l'addition :
$sql = "UPDATE articles SET qte = qte + ".$_POST['qte']." WHERE id_article = '".$_REQUEST['id']."'";
0
killersources Messages postés 23 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 18 janvier 2014
20 juin 2009 à 18:58
Non sans les apostrophes ça change rien au problème. Il remplace toujours la valeur.

Le champ de ma table est de type int valeur 10.

??? Mystère......
0

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

Posez votre question
fais un echo htmlentities($sql); pour t'assurer que la requête est bien ce que tu crois. Il y a peut-être un problème avec $_POST['qte'] ou $_REQUEST['id']
0
killersources Messages postés 23 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 18 janvier 2014
21 juin 2009 à 00:23
Merci pour ta réponse.

Le seul problème c'est que je suis super debutant et que j'ai placé echo htmlentities($sql); un peu partout sans rien voir de spécial mais sans savoir aussi ce que je dois faire ou voir.

Donc si tu te sents le courage de m'expliquer ça serait super sympa sinon pas de problème. C'est déjà très gentil de ta part d'avoir pris de ton temps pour m'aider.

J'espère te lire rapidement et encore merci
0
jeremieca Messages postés 178 Date d'inscription lundi 9 juillet 2007 Statut Membre Dernière intervention 16 mars 2015 28
21 juin 2009 à 23:22
Oui, juste après ça :

$sql = "UPDATE articles SET qte = qte + ".$_POST['qte']." WHERE id_article = '".$_REQUEST['id']."'";

Tu met echo $sql; et tu nous affiche le résultat :)

A plus !
0
killersources Messages postés 23 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 18 janvier 2014
22 juin 2009 à 11:50
Bonjour à tous,

J'ai trouvé mon erreur à savoir je renvoyait la méthode post vers mon fichier qui fait l'update de l'article normal donc ça marchait pas.

$sql = "UPDATE articles SET qte = qte + ".$_POST['qte']." WHERE id_article = '".$_REQUEST['id']."'";

Cette fonction fonctionne donc très bien.

Encore merci à tous pour votre aide
0