Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/04/2011, 16h42   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 0
Points : 0
Par défaut Problème INSERT boucle for.

Bonjour à tous,

J'ai un petit soucis sur mon appli, je pense qu'il s'agit d'un problème d'algorithme...

Le but de mon code est de comparer 2 quantités (celles recues par le client et celle véritablement commandé) pour plusieurs produits.

Un bout de mon formulaire :

Code :
1
2
3
4
5
6
 
<th WIDTH="34%" class="tableau" height="30"><input class="Special" type="text" name="qteco<?php echo $i ;?>" value="<?php echo $c01 ;?>" READONLY></td>
 
<th WIDTH="34%" class="tableau" height="30"><input class="Bordereau" type="text" name="qte<?php echo $i ;?>">
 
<input type="hidden" name="id" value="<?php echo $i ;?>">
Un bout de ma page de traitement :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
	for ($i = 0 ; $i < $_POST['id'] ; $i++)  
	{
		$difference = $_POST['qteco'.$i] - $_POST['qte'.$i] ;
// calcul de la différence pour chaque produit.		
 
		if ($difference > 0)
		{	
                  // si il y a une différence pour un produit ou plusieurs, nous allons créer une seconde commande, le soucis, c'est que pour chaque produit ou il y a une différence il me crée une nouvelle commande...
                }
                else
                      {
                              else réception complète...
                       }
Quelqu'un voit il comment sortir de la boucle pour pouvoir créer une seule commande pour toutes les quantités de produits manquantes ?

D'avance merci.
Francis59000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 11h50   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 709
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 709
Points : 3 279
Points : 3 279
Salut

Le plus simple à mon sens serait de revoir la manière de créer le formulaire, comme exploiter les tableaux, qui au bout facilite grandement la récupèration des données.

Exemple :
Code :
1
2
3
4
5
6
7
8
9
 
<?php
// Exemple avec une boucle
for ($i = 0; $i < 10; $i++) {
    echo '<input class="Special" type="text" name="quantite['.$i.'][qteco]" value="'.$c01.'" readonly="readonly" />';
 
    echo '<input class="Bordereau" type="text" name="quantite['.$i.'][qte]" />';
}
?>
Au bout, c'est un tableau (à plusieurs dimensions) qui sera obtenu au nom de "quantite".
Une simple boucle foreach() permet de le parcourir, de même de faire la comparaison entre les 2 données.
(il n'est plus utile d'indiquer le nombre dans un champ caché).

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
$les_quantite = $_POST['quantite'];
 
foreach ($les_quantite as $quantite) {
    if ($quantite['qteco'] == $quantite['qte']) {
        // Les 2 valeurs sont identiques
    }
    else {
        // Les 2 valeurs sont différentes
    }
}
?>
Le HTML permet de structurer les données dans un formulaire.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 12h45   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Gère ta commande comme une pile et pousse les éléments à commander dessus dans ta boucle.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h40.


 
 
 
 
Partenaires

Hébergement Web