IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Utilisation des valeur choix multiple pour executer une requete une valeur a la fois


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut Utilisation des valeur choix multiple pour executer une requete une valeur a la fois
    Bonjour à tous,


    Je suis sur une page php ou je coince.

    Dans une page j'ai une liste à choix multiple, je sélectionne les éléments que je veut, puis je valide.

    J'arrive sur le seconde page, et c'est ici que je voudrait utilisé les valeurs du choix multiple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html lang="fr">
     
    <head>
     
     
    <?php
     
    $matricule = $_POST['matricule'];
    //$matricule = 23;
    print("<center>1 $matricule</center>");
    $server="****";
    $user="*****";
    $pass="*****";
    $db="pdr";
     
    mysql_connect($server,$user,$pass) or die('erreur de connexion');
     
    mysql_select_db($db) or die ('impossible de se connecter a la base'); 
     
    echo '<br>';
     
    echo '<br>';
    $listeMatriculeSQL = array();
    echo '<br>';
     
    echo $listeMatriculeSQL;
    echo '<br>';
     
     
    if(isset($_POST['matricule'])){
    foreach ($_POST['matricule'] as $matricule) {
    $listeMatriculeSQL[] = '\'' . mysql_real_escape_string($matricule) . '\'';
    }
    }
    echo '<br>';
    $req = implode(', ', $listeMatriculeSQL);
     
    echo '<br>';
    echo '3';
    echo $req;
    $requete = "SELECT 
    ref_pdt, 
    
      
    (SELECT FORMAT(SUM(qte_m*pu_m)/(SUM(qte_m)-(SUM(qte_m)/100)*perte_pdt)*poids_u_m_pdt,4) as prix_u_m  
    FROM recette  
    INNER JOIN matiere ON recette.code_m=matiere.code_m  
    INNER JOIN produit ON recette.ref_pdt=produit.ref_pdt  
    WHERE produit.ref_pdt IN ($req)AND recette.fourrage_rctt=0) 
    AS somme1, 
      
    (SELECT FORMAT(SUM(qte_m*pu_m)/(SUM(qte_m)-(SUM(qte_m)/100)*perte_pdt)*poids_u_f_pdt,4) as prix_u_f 
    FROM recette 
    INNER JOIN matiere ON recette.code_m=matiere.code_m 
    INNER JOIN produit ON recette.ref_pdt=produit.ref_pdt 
    WHERE produit.ref_pdt IN ($req)AND recette.fourrage_rctt=1) 
    AS somme2, 
    
    (SELECT FORMAT(SUM(qte_emb*pu_emb)/nbre_piece_fab_main,4) AS test2  
    FROM recette_emb  
    LEFT JOIN emballage ON recette_emb.id_emb=emballage.id_emb  
    LEFT JOIN main_d_oeuvre ON recette_emb.ref_pdt = main_d_oeuvre.ref_pdt 
    LEFT JOIN produit ON produit.ref_pdt=recette_emb.ref_pdt 
    WHERE produit.ref_pdt IN ($req))
    AS somme3,
    
    (SELECT FORMAT((nbre_per_main*nbre_heure_main*taux_hor_main)/nbre_piece_fab_main,4) AS pdr_m_o_u 
    FROM main_d_oeuvre 
    INNER JOIN produit ON main_d_oeuvre.ref_pdt=produit.ref_pdt 
    WHERE produit.ref_pdt IN ($req))
    AS somme4,
      
    (SELECT FORMAT(SUM(qte_m*pu_m)/(SUM(qte_m)-(SUM(qte_m)/100)*perte_pdt)*poids_u_m_pdt,4) as prix_u_m  
    FROM recette  
    INNER JOIN matiere ON recette.code_m=matiere.code_m  
    INNER JOIN produit ON recette.ref_pdt=produit.ref_pdt  
    WHERE produit.ref_pdt IN ($req)AND recette.fourrage_rctt=0)  
    + 
    (SELECT FORMAT(SUM(qte_m*pu_m)/(SUM(qte_m)-(SUM(qte_m)/100)*perte_pdt)*poids_u_f_pdt,4) as prix_u_f 
    FROM recette 
    INNER JOIN matiere ON recette.code_m=matiere.code_m 
    INNER JOIN produit ON recette.ref_pdt=produit.ref_pdt 
    WHERE produit.ref_pdt IN ($req)AND recette.fourrage_rctt=1) 
    +
    (SELECT FORMAT(SUM(qte_emb*pu_emb)/nbre_piece_fab_main,4) AS test2  
    FROM recette_emb  
    LEFT JOIN emballage ON recette_emb.id_emb=emballage.id_emb  
    LEFT JOIN main_d_oeuvre ON recette_emb.ref_pdt = main_d_oeuvre.ref_pdt 
    LEFT JOIN produit ON produit.ref_pdt=recette_emb.ref_pdt 
    WHERE produit.ref_pdt IN ($req))
    +
    (SELECT FORMAT((nbre_per_main*nbre_heure_main*taux_hor_main)/nbre_piece_fab_main,4) AS pdr_m_o_u 
    FROM main_d_oeuvre 
    INNER JOIN produit ON main_d_oeuvre.ref_pdt=produit.ref_pdt 
    WHERE produit.ref_pdt IN ($req))
    AS total 
      
    FROM produit 
      
    WHERE ref_pdt IN ($req);";
    echo '<br>';
    echo $requete;
    echo '<br>';
    $query= mysql_query($requete) or die('erreur');
    //$query2= mysql_query($requete2) or die('erreur');
     
    //$tabArray = array ();
    //while($ligne= mysql_fetch_array($query,MYSQL_NUM)) {
    //		$prix_u_m = $ligne[1];
    //		array_unshift ($tabArray, $ligne);
    //		}
    //print_r($tabArray);
    while($ligne = mysql_fetch_assoc($query)){
    	echo '<br>';
    	echo '<b>1=> Ref_pdt : '.$ligne["ref_pdt"].'</b>';echo '<br>';
    	echo '<b>1=> Somme Matiere Premiere : '.$ligne["somme1"].'</b>';echo '<br>';
    	echo '<b>1=> Somme Fourrage : '.$ligne["somme2"].'</b>';echo '<br>';
    	echo '<b>1=> Somme Emballage : '.$ligne["somme3"].'</b>';echo '<br>';
    	echo '<b>1=> Somme Mains D oeuvre : '.$ligne["somme4"].'</b>';echo '<br>';
    	echo '<b>1=>Somme Total : '.$ligne["total"].'</b>';echo '<br>';
     
    }
     
    //while( $ligne2 = mysql_fetch_assoc($query2)){
    //	echo '<br>';
    //	echo '<b>2=>'.$ligne2["prix_u_f"].'</b>';
    //}
    print_r($_POST)
    ?>

    Se que je voudrait faire c'est récupérer les valeur (normalement ça c'est bon, regardé mon code), et les utilisé une apres les autres.

    En exemple cela ferait ceci:

    On prend la valeur 22 on fait l'ensemble de ma requete mySQL, puis on l'affiche, on passe a la second valeur 23 on fait pareille, on passe a la valeur 4098 etc...

    Comment faire pour réaliser ceci

    Merci d'avance pour vos réponse.

    guigui69

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Par défaut
    question bête, t'as essayé de mettre la requette puis l'affichage
    dans une boucle?
    genre qui débute à la 1ere valeur passé aux server et qui s'arrète à
    la fin de la table ou quand tu veux?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Bonjour et merci de m'avoir répondu,

    Je n'est pas compris ta réponse. (pourrait-tu me donner un exemple)

    Merci

    guigui69

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    C'est bon je pense avoir trouvé, petite question encore.

    Des fois lorsqu'une requête s'exécute il n'y a pas de résultat (c'est normal) mais comment mettre dans ma page web un 0 a la place d'un Blanc ?

    Merci d'avance

    guigui69

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Par défaut
    Citation Envoyé par guigui69 Voir le message
    C'est bon je pense avoir trouvé, petite question encore.

    Des fois lorsqu'une requête s'exécute il n'y a pas de résultat (c'est normal) mais comment mettre dans ma page web un 0 a la place d'un Blanc ?

    Merci d'avance

    guigui69
    tu fais un test s'il n'y a pas de résultat tu renvois 0.

    pour savoir s'il y a des résultats tu peux demander qu'on te renvoie le nombre d'enregistrements retournés par la requête et voir si c'est 0 et si c'est 0 tu renvoies 0. avec mysql c'est mysql_num_rows()

    ou alors tu peux jouer avec des variables en fonction d'un passage ou pas dans la boucle de traitement (mais c'est plus brouillon :p)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Ok d'accord mais comment je pourrait faire car, j'ai une requete qui realise des sous requetes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    SELECT 
    ref_pdt, 
     
     
    (SELECT FORMAT(SUM(qte_m*pu_m)/(SUM(qte_m)-(SUM(qte_m)/100)*perte_pdt)*poids_u_m_pdt,4) as prix_u_m  
    FROM recette  
    INNER JOIN matiere ON recette.code_m=matiere.code_m  
    INNER JOIN produit ON recette.ref_pdt=produit.ref_pdt  
    WHERE produit.ref_pdt IN ($req)AND recette.fourrage_rctt=0) 
    AS somme1, 
     
    (SELECT FORMAT(SUM(qte_m*pu_m)/(SUM(qte_m)-(SUM(qte_m)/100)*perte_pdt)*poids_u_f_pdt,4) as prix_u_f 
    FROM recette 
    INNER JOIN matiere ON recette.code_m=matiere.code_m 
    INNER JOIN produit ON recette.ref_pdt=produit.ref_pdt 
    WHERE produit.ref_pdt IN ($req)AND recette.fourrage_rctt=1) 
    AS somme2, 
     
    (SELECT FORMAT(SUM(qte_emb*pu_emb)/nbre_piece_fab_main,4) AS test2  
    FROM recette_emb  
    LEFT JOIN emballage ON recette_emb.id_emb=emballage.id_emb  
    LEFT JOIN main_d_oeuvre ON recette_emb.ref_pdt = main_d_oeuvre.ref_pdt 
    LEFT JOIN produit ON produit.ref_pdt=recette_emb.ref_pdt 
    WHERE produit.ref_pdt IN ($req))
    AS somme3,
     
    (SELECT FORMAT((nbre_per_main*nbre_heure_main*taux_hor_main)/nbre_piece_fab_main,4) AS pdr_m_o_u 
    FROM main_d_oeuvre 
    INNER JOIN produit ON main_d_oeuvre.ref_pdt=produit.ref_pdt 
    WHERE produit.ref_pdt IN ($req))
    AS somme4,
     
    (SELECT FORMAT(SUM(qte_m*pu_m)/(SUM(qte_m)-(SUM(qte_m)/100)*perte_pdt)*poids_u_m_pdt,4) as prix_u_m  
    FROM recette  
    INNER JOIN matiere ON recette.code_m=matiere.code_m  
    INNER JOIN produit ON recette.ref_pdt=produit.ref_pdt  
    WHERE produit.ref_pdt IN ($req)AND recette.fourrage_rctt=0)  
    + 
    (SELECT FORMAT(SUM(qte_m*pu_m)/(SUM(qte_m)-(SUM(qte_m)/100)*perte_pdt)*poids_u_f_pdt,4) as prix_u_f 
    FROM recette 
    INNER JOIN matiere ON recette.code_m=matiere.code_m 
    INNER JOIN produit ON recette.ref_pdt=produit.ref_pdt 
    WHERE produit.ref_pdt IN ($req)AND recette.fourrage_rctt=1) 
    +
    (SELECT FORMAT(SUM(qte_emb*pu_emb)/nbre_piece_fab_main,4) AS test2  
    FROM recette_emb  
    LEFT JOIN emballage ON recette_emb.id_emb=emballage.id_emb  
    LEFT JOIN main_d_oeuvre ON recette_emb.ref_pdt = main_d_oeuvre.ref_pdt 
    LEFT JOIN produit ON produit.ref_pdt=recette_emb.ref_pdt 
    WHERE produit.ref_pdt IN ($req))
    +
    (SELECT FORMAT((nbre_per_main*nbre_heure_main*taux_hor_main)/nbre_piece_fab_main,4) AS pdr_m_o_u 
    FROM main_d_oeuvre 
    INNER JOIN produit ON main_d_oeuvre.ref_pdt=produit.ref_pdt 
    WHERE produit.ref_pdt IN ($req))
    AS total 
     
    FROM produit 
     
    WHERE ref_pdt IN ($req);
    C'est les sommes 1à 4 qui peut me renvoyer 0 mais vu que c'est une seul requête je ne sais pas comment faire.

    Merci d'avance

    guigui69

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/10/2012, 08h49
  2. Coder des une liste de choix multiples pour Tableaux croisés
    Par piflechien73 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2011, 22h04
  3. Utiliser des champs de recherche pour une valeur calculée.
    Par MasterJul dans le forum SharePoint
    Réponses: 0
    Dernier message: 08/02/2008, 12h47
  4. Utilisation des choix d'une zdl à choix multiples pour une requête
    Par Nanouche dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 10/10/2007, 02h57
  5. Utilisation des liste à choix multiples
    Par mic79 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/07/2005, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo