Mettre à jour une table

Fermé
hope10 - 8 mai 2013 à 12:32
 hope10 - 12 mai 2013 à 15:25
Bonjour, j'ai fait une application sur la gestion des stock sous php et j'aimerais faire la mise a jour de l'état du stock à partir d'un tableau ou je modifie les quantité, mais le probleme c'est qu'il prend la meme valeur pour toutes les lignes de la table.

si quelqu'un peut m'aider c'est vraiment urgent !!!

merci d'avance ...
A voir également:

4 réponses

loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
Modifié par loupix57 le 8/05/2013 à 12:44
Tu fait ça comment ? Avec MySQL, php ..

un bout de code serait le bienvenus !
0
slt, oui j'utilise php et mysql voici un aperçu du code.

donc en premier je fais un select pour afficher les données dans un tableau et je laisse une colonne vide pour les nouvelles quantités.


$sql = "SELECT id,design from produit order by design" ;
$requete=mysql_query($sql,$cnx);
$total = mysql_num_rows($requete);

// lecture et affichage des résultats
while($row = mysql_fetch_array($requete))
{
echo '<tr>';
echo '<td width="80" bgcolor="#e0541d">'.'<center>'.'<font face="arial" size="3" color="black">'.'<b>'.$row['id'].'</b>'.'</font>'.'</center>'.'</td>';
echo '<td width="350" bgcolor="lightgrey">'.'<center>'.'<font face="arial" size="3" color="black">'.'<b>'.$row['design'].'</b>'.'</center>'.'</font>'.'</td>';
echo '<td width="200" bgcolor="lightgrey">'.'<center>'.'<font face="arial" size="3" color="black">'.'<b>'.'</b>'.'</center>'.'</font>'.
'<input type="text" name="quantit" size="30" onKeypress="if((event.keyCode < 45 || event.keyCode > 57) && event.keyCode != 32
&& event.keyCode != 8 && event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)
&& event.which != 32 && event.which != 8 && event.which != 0 ) return false;">'.'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
echo '</div>'."\n";

// fin du tableau.

ensuite je fais appel un une autre page pour le update.

<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "dbprotect" ) ;

//données a renseigner
$quantit = $_POST['quantit'];
//$design = $_POST['design'];
//fin des données


if($cnx)
{
foreach ($_POST as $quantit)
{
$requete1 = "update stock set qte='$quantit'";
$execution = mysql_query($requete1,$cnx) or die( mysql_error() );
if($execution)
{
header("Location:consomliv.php?add=ok");
}
else
{
header("Location:consomliv.php?erreur=err");
}
}
}
?>


MERCI POUR VOTRE AIDE ...
0
loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
9 mai 2013 à 11:51
ah, ta requête vas modifier Toutes les lignes .. lol

il faut mettre un WHERE !!!

UPDATE stock SET qte='$quantit' WHERE id='$id'

tout bêtement
0
slt, j'ai déja fait un where mais le problème c'est que je n'arrive pas à recuperer le "id" de chaque ligne .

merci ...
0
loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
12 mai 2013 à 11:26
Il faudrait que tu montre le formulaire en entier ?
a tu bien un input avec name='id' value='".$row['id']."'
0
pour etre claire, moi j'ai un tableau de trois colonne, 1- id, 2- désignation 3-input type text que j'ai nommé 'quantit'.

moi j'aimerais que toute les valeurs saisies dans ces textes soient mises à jour dans la base de données, le probleme c'est quand je clique sur le bouton valider toutes les lignes de la table dans la bdd prennent la meme valeur( celle de la derniere zone de texte dans le tableau)

j'ai tout essayé mais je bloque toujours, voici mon code:

<form action="insertion4.php" method="post" name="add">
<p align="center">

<?php if(isset($_GET['add']) && ($_GET['add'] == "ok")) { // Affiche l'erreur ?>
<span class="reussite"><strong><font face="arial" size="2" color="darkred"><i>Validation effectuée avec succés !</i></strong></font></span>
<?php } ?>

</p>

<?php require_once('connexion.php'); ?>
<?php
session_start(); // On relaye la session
?>

<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "dbstock" ) ;

$sql = "SELECT id,design from produit order by design" ;
$requete=mysql_query($sql,$cnx);
$total = mysql_num_rows($requete);

$sql2 = "SELECT design from produit order by design" ;
$requete2=mysql_query($sql2,$cnx);
$qte2 = mysql_fetch_array($requete2);

// si on a récupéré un résultat on l'affiche.
if($total)
{
// début du tableau

echo '<div style="min-height:370px;height:370px;min-width:680px;width:680px;overflow:auto">';
echo '<table align="center" bgcolor="#FFFFFF">'."\n";

// première ligne
echo '<td bgcolor="steelblue"><center><font face="arial" size="4" color="white"><b>N°</b></font></center></td>';
echo '<td bgcolor="steelblue"><center><font face="arial" size="4" color="white"><b>Désignation</b></font></center></td>';
echo '<td bgcolor="steelblue"><center><font face="arial" size="4" color="white"><b>Quantité</b></font></center></td>';

// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($requete))
{
echo '<tr>';
echo '<td width="80" bgcolor="#e0541d">'.'<center>'.'<font face="arial" size="3" color="black">'.'<b>'.$row['id'].'</b>'.'</font>'.'</center>'.'</td>';
echo '<td width="350" bgcolor="lightgrey">'.'<center>'.'<font face="arial" size="3" color="black">'.'<b>'.$row['design'].'</b>'.'</center>'.'</font>'.'</td>';
echo '<td width="200" bgcolor="lightgrey">'.'<center>'.'<font face="arial" size="3" color="black">'.'<b>'.'</b>'.'</center>'.'</font>'.
'<input type="text" name="quantit" size="30" onKeypress="if((event.keyCode < 45 || event.keyCode > 57) && event.keyCode != 32
&& event.keyCode != 8 && event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)
&& event.which != 32 && event.which != 8 && event.which != 0 ) return false;">'.'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
echo '</div>'."\n";

// fin du tableau.
}
else
{
echo '<font face="arial" size="2" color="darkred">'.'Pas d\'enregistrements dans cette table...'.'</font>';
}

// on libère le résultat

mysql_free_result($requete);
?>

<br>
<td height="50" colspan="2"><div align="center">
<input type="submit" name="Submit" value="Valider" style="width: 100px; height: 30px">
<input type="submit" name="Submit" value="Annuler" style="width: 100px; height: 30px">
</td>
</form>
</body>
******************************************************

la page insertion4.php pour faire le update

<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "dbstock" ) ;

//données a renseigner
$quantit = $_POST['quantit'];

foreach ($_POST as $quantit)
{
$requete1 = "update stock set qte='$quantit'";
$execution = mysql_query($requete1,$cnx) or die( mysql_error() );
if($execution)
{
header("Location:consomliv.php?add=ok");
}
else
{
header("Location:consomliv.php?erreur=err");
}
}

?>



j'espere que quelqu'un pourra m'aider, merci ...
0