Additionner données dans base de données

Fermé
congela Messages postés 23 Date d'inscription samedi 2 juillet 2011 Statut Membre Dernière intervention 11 août 2011 - Modifié par congela le 6/07/2011 à 09:32
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 - 7 juil. 2011 à 10:19
Bonjour,




je souhaite additionner et soustraire des données d'une table reliée à une base de données


ma premiere page pour insérer les données est:
mysql_select_db("bdd", $con);   

  $query= mysql_query('SELECT nomproduit,quantite 
FROM utilisateur u 
INNER JOIN lien l ON l.login = u.login 
INNER JOIN materiel m ON m.idmateriel = l.idmateriel 
WHERE u.login = "'.$_SESSION["code"].'"'); 
     
  echo "<h1>liste du materiel</h1> 
  <table border='1'> 
  <tr> 
     <th>nomproduit</th> 
  <th>quantite</th> 
  <th>ajouter</th> 
  <th>retirer</th><FORM METHOD='POST' ACTION='modifier_materiel.php' > <INPUT TYPE='submit' value='envoyer' onClick='show_alert()'/> 
      </FORM>   
  </tr>"; 
    
   while($row = mysql_fetch_array($query)) 
    { 
    echo "<tr> 
    <td>".$row['nomproduit']."</td> 
    <td>".$row['quantite']." 
    </td> 
    <script type='text/javascript'> 
    function show_alert() 
     { 
     alert('hello!'); 
     } 
    </script> 
     
       
    <td> 
      <input type='number' value='0' name='ajouter'/> 
      </FORM> 
    </td>    
     
    <td> 
      <input type='number' value='0' name='retirer'/> 
    </td>  
       
    </tr>"; 
    }


ma deuxieme page recupere les données et les additionnes :

mysql_select_db("bdd", $con); 
   
  $query= mysql_query('SELECT nomproduit,quantite 
  FROM utilisateur u 
  INNER JOIN lien l ON l.login = u.login 
  INNER JOIN materiel m ON m.idmateriel = l.idmateriel 
  WHERE u.login = "'.$_SESSION["code"].'"'); 
   
  echo "<h1>liste du materiel</h1> 
  <table border='1'> 
  <tr> 
     <th>nomproduit</th> 
  <th>quantite</th> 
  </tr>"; 
   
  while($row = mysql_fetch_array($query)) 
  {   
    echo "<tr> 
    <td>".$row['nomproduit']."</td> 
    <td>".($row['quantite']+$_POST["ajouter"]-$_POST["retirer"])."</td> 
    </tr>"; 
  }


mais ca marche pas trop...
le probleme c'est ma requete en gras sur la 2eme page:($row['quantite']+$_POST["ajouter"]-$_POST["retirer"])


merci d'avance

5 réponses

creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
6 juil. 2011 à 11:59
Le problème est qu'il ne s'agit pas d'une requête, mais simplement d'une addition réalisée depuis PHP... Aucune influence sur SQL donc !
0
congela Messages postés 23 Date d'inscription samedi 2 juillet 2011 Statut Membre Dernière intervention 11 août 2011
6 juil. 2011 à 13:59
je m'en suis rendue compte après cout!
j'ai essayé de calculer en php, mais ca ne marche pas:

mysql_select_db("bdd", $con);
		
		$query= mysql_query('SELECT nomproduit,quantite
		FROM utilisateur u
		INNER JOIN lien l ON l.login = u.login
		INNER JOIN materiel m ON m.idmateriel = l.idmateriel
		WHERE u.login = "'.$_SESSION["code"].'"');
		
		echo "<h1>liste du materiel</h1>
		<table border='1'>
		<tr>
	    <th>nomproduit</th>
		<th>quantite</th>
		</tr>";
		
	$aj=$_POST['ajouter'];;
	$re=$_POST['retirer']
	$calc=($aj-$re);
		while($row = mysql_fetch_array($query))
	$calc=($row['aj']-$row['re']),
	$final=$calc+$row['quantite'];
		
		{		echo"".$row['nomproduit']]."";
				echo "<tr>
				<td>".$row['nomproduit']."</td>
				<td>".$final."</td>
				</tr>";
		}


mais l'erreur vient de $calc=($aj-$re)
0
creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
6 juil. 2011 à 20:58
Rien n'a changé... au sens où aucune modification n'est faite à la base de données.

Souhaites-tu faire des modifications sur une seule ligne ou sur plusieurs lignes à la fois ? Ton objectif ne m'est pas très clair.
0
congela Messages postés 23 Date d'inscription samedi 2 juillet 2011 Statut Membre Dernière intervention 11 août 2011
7 juil. 2011 à 00:23
merci de intéresser à mon problème!
En fait,
j'ai une table matériel:
avec idmateriel, nomproduit et quantite

je souhaite pouvoir modifier la quantité, malheureusement je n'arrive pas du tout à écrire la formule, j'ai essayé en php en javascript, mais je fais pire que mieux....

sur ma 1ere page
j'interroge la base de données et lui fait apparaitre tous les produits de l'utilisateur avec ses quantités. De plus, à coté de chaque produit j'ajoute une colonne ajouter et retirer en imput

sur ma 2eme page(celle qui récupère les données ajouter et retirer de la 1ere page)
j'essaie d'appliquer une addition soustraction que la quantité, puis avec un update le mettre à jour sur la base de données

donc pour les codes, ma 1ere page:
mysql_select_db("bdd", $con);
		
		

		$query= mysql_query('SELECT nomproduit,quantite
FROM utilisateur u
INNER JOIN lien l ON l.login = u.login
INNER JOIN materiel m ON m.idmateriel = l.idmateriel
WHERE u.login = "'.$_SESSION["code"].'"');
		 	
		echo "<h1>liste du materiel</h1>
		<FORM METHOD='POST' ACTION='modifier_materiel.php' >
		<table border='1'>
		<tr>
	    <th>nomproduit</th>
		<th>quantite</th>
		<th>ajouter</th>
		<th>retirer</th>
		</tr>";
			$indice=0;
			
			while($row = mysql_fetch_array($query))
				{
				$indice++;
				$i=$row["nomproduit"];
				$j=$row["quantite"];
				$k='ajouter'.$indice;
				$l='retirer'.$indice;
				echo 
				"<tr>
				<td>$i</td>
				<td>$j</td>
				<script type='text/javascript'>
				function show_alert()
					{
					alert('voulez-vous confirmer votre choix?');
					}
				</script>
				<td>
					<input type='number' value='0' name='ajouter'/>
				</td>			
				<td>
					<input type='number' value='0' name='retirer'/>
					<input type='hidden' name='numIndice' value='$indice'/>
				</td>	
				</tr>";
				
				}
				echo "<INPUT TYPE='submit' value='envoyer' onClick='show_alert()'/>
					</FORM>";


et pour la 2eme page:
$query= mysql_query('SELECT nomproduit,quantite
		FROM utilisateur u
		INNER JOIN lien l ON l.login = u.login
		INNER JOIN materiel m ON m.idmateriel = l.idmateriel
		WHERE u.login = "'.$_SESSION["code"].'"');
		echo "Debut <br>";
		echo "Fin <br>";
		echo "<h1>liste du materiel</h1>
		<table border='1'>
		<tr>
	    <th>nomproduit</th>
		<th>quantite</th>
		</tr>";
		while($row = mysql_fetch_array($query))
		{
				$indice = $_POST["numIndice"];
				if ( $indice > 1 ){
					for ($i=1; $i < $indice; $i++ ){
						$indexAj="ajouter".$i;
						$indexRet="retirer".$i;}
						$aj=$_POST["$indexAj"];
						$re=$_POST["$indexRet"];
						$calc=$aj-$re;
						$sol=$calc+$row["quantite"];
						$np=$row["nomproduit"];
	mysql_select_db("bdd", $con);
						$requete = mysql_query('UPDATE bdd.materiel SET quantite=$sol WHERE materiel.nomproduit="$np"');
						}

					echo "<tr>
						<td>".$row["nomproduit"]."</td>
						<td>".$row["quantite"]."</td>
						</tr>";
						}		




je sais plus quoi faire là....
0

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

Posez votre question
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
7 juil. 2011 à 10:19
$aj=$_POST['ajouter'];;
$re=$_POST['retirer']
$calc=($aj-$re);

Il n' y a pas une erreur sur les points virgules ici ?
$aj=$_POST['ajouter'];
$re=$_POST['retirer'];
$calc=($aj-$re);
0