problème de boucle (surement)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème de boucle (surement)

Re: problème de boucle (surement)

par xaxa » 09 févr. 2011, 12:38

ok merci bien
bonne journée

Re: problème de boucle (surement)

par stealth35 » 09 févr. 2011, 12:32

oui oui mais je parlais de mon code à la toute base tout en haut, je faisais pas les choses comme ca donc je n'avais pas ce problème de non existence d'une variable
il existait puisque tu faisais :
$tab_cout[$row->choix] = $row->nb_produit;

Re: problème de boucle (surement)

par xaxa » 09 févr. 2011, 12:27

oui oui mais je parlais de mon code à la toute base tout en haut, je faisais pas les choses comme ca donc je n'avais pas ce problème de non existence d'une variable

Re: problème de boucle (surement)

par stealth35 » 09 févr. 2011, 12:24

parce que tu peux pas ajouter un valeur a quelque chose qui n'existe pas

Re: problème de boucle (surement)

par xaxa » 09 févr. 2011, 12:18

ca marcheeeeeeeeee
youpiii

je vous aime

Je v voir si je peux faire le même genre de chose pour les autres pages.

Je vous remercie.

(ceci dit j'aimerai bien qu'on m explique pourquoi mon code a moi à la base ne fonctionnait pas ..)

Re: problème de boucle (surement)

par stealth35 » 09 févr. 2011, 11:44

parce que il n'existe pas au debut

fais
while ($row = mysql_fetch_object($query_cout)) 
{
    if ($row->nb_produit > 5)
    {
        if(!isset($tab_cout[$row->choix]))
        {
            $tab_cout[$row->choix] = 0;
        }

        $tab_cout[$row->choix] += $row->nb_produit - 5;
    }
}

Re: problème de boucle (surement)

par xaxa » 09 févr. 2011, 11:40

Merci, mais ya un truc qui fonctionne pas .

Ca me renvoie une erreur : [Erreur]: Undefined index: 1
Pourtant si je fais un echo $row -> choix ca me renvoie 1 avt le message d erreur.

$tab_cout[$row->choix] = $row->nb_produit - 5;

En mettant un = à la place du += ca ne plante pas, et me renvoie Array ( [1] => 2 [2] => 3 [3] => 3 ) donc c presque ca sauf que évidement du coup pour février ben ca me fait plus la somme (2+3) ca ne met que le 3 puisque j'ai enlevé l'addition.
Mais l'addition génère l'erreur .

Re: problème de boucle (surement)

par Ryle » 09 févr. 2011, 00:24

Et pourquoi pas tout simplement faire :
$tab_cout = array();

while ($row = mysql_fetch_object($query_cout)) {
    
   if ($row->nb_produit > 5) {
      $tab_cout[$row->choix] += $row->nb_produit - 5;
   }

}

print_r($tab_cout);

problème de boucle (surement)

par xaxa » 08 févr. 2011, 18:46

Bonjour,

J'aurais besoin d'un peu d'aide. Je vais essayer de vous expliquer.
J'ai une requête qui dans phpmyadmin me renvoie ceci :

________________________
choix | id | nb_produit
---------------------------------
1 - 3 - 7
1 - 8 - 1
1 - 10 - 2
1 - 11 - 1
2 - 12 - 1
2 - 13 - 3
2 - 14 - 7
2 - 15 - 8
3 - 16 - 8

Chaque ligne représente une commande, avec le nombre de produits pour chacune trié par mois ( variable choix = mois, donc choix=1 >> janvier)
Je cherche à savoir combien j'ai de produits supérieur à 5. Par exemple pour la première ligne, j'ai 7 produits donc 2 produit supérieur à 5. J'additionne ensuite cette quantité par mois
donc je devrais avoir pour le mois de :
-Janvier (choix = 1) 2 produits
- Février = 5 produits (7-5)+(8-5)
- Mars = 3 produits.

Je me retrouve avec en sortie:
Janvier>> 2 produits
Février >> 7 produits
Mars >> 10 produits

Clairement, il additionne tout. pour février il a bien trouver 5 produit mais + les 2 de janvier, pour mars il a bien trouver les 3 produits mais il a rajouter les 7 de février.
En résumé >> janvier = les produits supérieur a 5 de janvier
février >> les produits de janvier et février
mars >> les produits de janvier février et mars. Il devrait pas faire ca.
J'en deviens fou. Une semaine que je cherche alors je me tourne vers vous.

Voici mon code, il doit y avoir un mini détail qui fait tt rater ..


$sql_cout = "SELECT $SELECT AS choix, id_commande AS id, count( id_produit ) AS nb_produit
FROM commandes_detail , commandes
WHERE commandes_detail.id_commande = commandes.id
AND commandes.statut
IN (
2, 3, 4, 100
)
$WHERE
GROUP BY (
id_commande
)";



sql_mysql_query ($sql_cout, 'cout');


$test = 0;
$val_sup = 0;


while ($row = mysql_fetch_object($query_cout)) {
    
        $tab_cout[ $row -> choix] = $row -> nb_produit;
        
        
        // si le nombre de produit est sup à 5
        if ($tab_cout[$row -> choix] = $row -> nb_produit > 5)
    
            {    
                
            $val_sup = 0;

    
                // stocke  le nombre de produit supérieur à 5 pour chaque commande (si 7 commande $sup = 2)
                $sup = ($tab_cout[$row -> choix] = $row -> nb_produit)-5;
 
                    
                    //somme les valeurs sup à 5                     
                    $val_sup +=   $sup;              
                    
            }
            
    //retourne val_sup
    $tab_cout[ $row -> choix] = $val_sup;
                                                                       } 

J'ai a peu pres tout essayer, bien remettre toutes les variables à zéro, mettre des prints, des message d erreurs partt..
Je vous remercie d'avance !!