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 :

Calcul entre deux champs est-ce possible ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut Calcul entre deux champs est-ce possible ?
    Bonjour,

    J'ai deux champs dans ma table "no" et "cp" Je souhaite faire une soustraction "cp" -"no" ---> dans un future champ qui se nommera calcul

    par contre le champ calcul n'existe pas dans ma table à ce jour comment l'afficher avec la sous traction "cp" -"no" ?

    comment faire ?

    merci pour votre aide



    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
    <html>
    <body>
    <?php
     
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'import';
     
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // début du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>titre</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>phone</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>email</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>no</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>cp</u></b></td>';
    		echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row['prenom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['titre'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['phone'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['email'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['no'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['cp'].'</td>';
     
    		echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
    </body>
    </html>

  2. #2
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    Bonjour,

    Premièrement tu ajoutes cette nouvelle colonne dans ta table, soit manuellement, soit par un ALTER TABLE.

    Ensuite, utilise la syntaxe INSERT (x,x,x) SELECT pour remplir automatiquement ton champ à partir d'un résultat ( dans lequel tu feras ta soustraction ).
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonjour,

    Rien ne t'empêche de faire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT(a-b) AS resultat FROM ta_table
    Tu auras le résultat dans un champ calculé nommé "resultat"

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    Merci mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT(a-b) AS resultat FROM ta_table

    ou dois-je l 'insérer dans mon code ?

    Pour info je souhaite avoir le champ calcal est les résultats à l 'affichage merci



    dois-je conserver mon code ou autre

    merci de vos explications.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    SANS besoin de créer de champs supplémentaire dans la BDD, et JUSTE pour l'afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp,(cp-no) AS calcul FROM tfi2003_contacts ';
    ?>
    Et pour l'afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $row['calcul']; ?>

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    merci jreaux62 sa fonctionne j'ai trouvé merci pour votre aide j'y vois plus clair

  7. #7
    Invité
    Invité(e)
    Par défaut
    Comment veux-tu qu'on corrige un code que tu ne donnes pas ??

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    merci jreaux62 sa fonctionne j'ai trouvé merci pour votre aide j'y vois plus clair.

    Une autre question comment puis-je faire dans mon affichage une mise en forme conditionnelle ?

    Exemple dans le calcul et au niveau de l'affichage tout les résultat compris entre 50 et 100 colorié la cellule du tableau en orange.

    Merci pour votre aide

  9. #9
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td<?php if($row['calcul']>=50 && $row['calcul']<=100){ echo ' style="background-color:#ffcc66;"'; } ?>><?php echo $row['calcul']; ?></td>

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    Merci pour l'info mais lors de l'insertion après l 'affichage echo une erreur s'affiche est ce l’emplacement qui n'est pas approprié ? ci dessous mon insertion



    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
    <html>
    <body>
    <?php
     
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'import';
     
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ';
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp,(cp-no) AS calcul FROM tfi2003_contacts ';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // début du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>titre</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>phone</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>email</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>no</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>cp</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>calcul</u></b></td>';
     
    		echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row['prenom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['titre'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['phone'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['email'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['no'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['cp'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['calcul'];
    		<td<?php if($row['calcul']>=50 && $row['calcul']<=100){ echo ' style="background-color:#ffcc66;"'; } ?>>
    		echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
    </body>
    </html>

  11. #11
    Invité
    Invité(e)
    Par défaut
    Tu es déjà en php dans un echo. Il faut donc s'y prendre autrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		echo '<td'; 
    		if($row['calcul']>=50 && $row['calcul']<=100){ echo ' bgcolor="#ffcc66"'; } else { echo ' bgcolor="#CCCCCC"'; }
    		echo'>'.$row['calcul'].'</td>';

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    merci vous êtes fortiche bien vu



    Merci pour votre aide sur autre question svp :

    2-/ J'ai une liste déroulante en html pour déclencher 4 requêtes mais cela ne fonctionne pas je ne vois pas ou est l'erreur je n'arrive pas à lancer les requêtes ni à faire le lien entre le fichier Html et Php. Pouvez vous m'aider ?

    Requête 1 : je voudrais sélectionner et afficher toute la table
    sa j'arrive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ';
    Requête 2 : tout les nom rempli et pas de phone c'est dire vide
    Requête 3 : tout les emails remplis
    Requête 4 : tout les noms qui commence par la lettre D
    mon code html liste déroulante :

    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
    <html>
    <head>
    <title>rechercher</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body bgcolor="#FFFFFF" text="#000000">
    <form ENCTYPE="multipart/form-data" action="clients2.php" METHOD="POST">
    <select name="tri"> 
    <option value="Nom">Requête1</option>
    <option value="Prenom">Requête2</option>
    <option value="Age">Requête3</option>
    <option value="Age">Requête4</option>
    </select>
    <input type="submit" value="Exécuter">
    </form>
     
    </body>
    </html>

    mon php :

    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
    <html>
    <body>
    <?php
     
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'import';
     
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ';
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp,(cp-no) AS calcul FROM tfi2003_contacts ';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // début du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>titre</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>phone</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>email</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>no</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>cp</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>calcul</u></b></td>';
                    echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row['prenom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['titre'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['phone'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['email'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['no'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['cp'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['calcul'];
                    echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
    </body>
    </html>

  13. #13
    Invité
    Invité(e)
    Par défaut
    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
    <?php
    // on récupère le choix
    $choixTri = $_POST['Tri'];
    // valeurs possible (d'après les <option value="..."> du formulaire) : 'Nom' ou 'Prenom' ou 'Age' ou ...
     
    // construction de la requete selon le choix :
    $select = "SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ";
    switch ($choixTri)
    {
        case 'Nom':
            $select .= " WHERE nom = '".$choixTri."' ";
            break;
        case 'Prenom':
            $select .= " WHERE prenom = '".$choixTri."' ";
            break;
        case 'Age':
            $select .= " WHERE age = '".$choixTri."' ";
            break;
    	default:
            $select .= "";
    }
    ?>
    Voir : switch (php)

    Pour le cas "tout les noms qui commence par la lettre D" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            $select .= " WHERE nom LIKE '".$choixTri."%' ";
    Le signe % remplace "tous les caractères"
    Voir : Opérateur LIKE (SQL)

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    Merci je ne vois pas comment vous faites le lien ??

    Récapitulatif :

    Vous utilisez php pour faire une liste déroulante ?
    Moi j'utilise voir ci-dessous html

    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
    <?php
    // on récupère le choix
    $choixTri = $_POST['Tri'];
    // valeurs possible (d'après les <option value="..."> du formulaire) : 'Nom' ou 'Prenom' ou 'Age' ou ...
     
    // construction de la requete selon le choix :
    $select = "SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ";
    switch ($choixTri)
    {
        case 'Nom':
            $select .= " WHERE nom = '".$choixTri."' ";
            break;
        case 'Prenom':
            $select .= " WHERE prenom = '".$choixTri."' ";
            break;
        case 'Age':
            $select .= " WHERE age = '".$choixTri."' ";
            break;
    	default:
            $select .= "";
    }
    ?>
    ma liste déroulante html MON FORMULAIRE qui fonctionne mais sans lien:

    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
    <html>
    <head>
    <title>rechercher</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body bgcolor="#FFFFFF" text="#000000">
    <form ENCTYPE="multipart/form-data" action="clients2.php" METHOD="POST">
    <select name="tri"> 
    <option value="Nom">Requête1</option>
    <option value="Prenom">Requête2</option>
    <option value="Age">Requête3</option>
    <option value="Age">Requête4</option>
    </select>
    <input type="submit" value="Exécuter">
    </form>
     
    </body>
    </html>
    mon code php

    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
    <html>
    <body>
    <?php
     
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'import';
     
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ';
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp,(cp-no) AS calcul FROM tfi2003_contacts ';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // début du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>titre</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>phone</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>email</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>no</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>cp</u></b></td>';
                    echo '<td bgcolor="#669999"><b><u>calcul</u></b></td>';
                    echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row['prenom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['titre'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['phone'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['email'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['no'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['cp'].'</td>';
                    echo '<td bgcolor="#CCCCCC">'.$row['calcul'];
                    echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
    </body>
    </html>
    maintenant j'aimerais savoir comment faire le lien pour faire fonctionner tout cela, le résumé :

    depuis le formulaire html sélectionner une des 4 requêtes de la liste déroulante et afficher le résultat


    merci pour votre aide

  15. #15
    Invité
    Invité(e)
    Par défaut
    Le choix est récupéré et traité dans clients2.php.

    PS : on ne code pas comme on fait de la soupe.
    Il faut de l'ordre et de la rigueur. Les actions s'enchainent logiquement.
    Dernière modification par Invité ; 28/04/2012 à 11h43.

  16. #16
    Invité
    Invité(e)
    Par défaut
    En ré-écrivant ton code "proprement :
    LE FORMULAIRE :
    Code html : 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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<title>rechercher</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body bgcolor="#FFFFFF" text="#000000">
     
    <form action="clients2.php" method="post">
    	<label for="idtri">Sélectionner : </label>
    	<select id="idtri" name="tri"> 
    		<option value="1">Requête 1 : Sélectionner tout</option>
    		<option value="2">Requête 2 : tous les noms remplis et pas de phone</option>
    		<option value="3">Requête 3 : tous les emails remplis</option>
    		<option value="4">Requête 4 : tous les noms qui commence par la lettre D</option>
    	</select>
    	<input type="submit" value="Exécuter" />
    </form>
     
    </body>
    </html>

  17. #17
    Invité
    Invité(e)
    Par défaut
    TRAITEMENT et AFFICHAGE : fichier clients2.php
    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
    <?php
    // --------------------
    // CONNEXION à la BdD
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'import';
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
    // --------------------
    // TRAITEMENT DU FORMULAIRE
    // on récupère le choix
    $choixTri = $_POST['Tri']; // valeurs possibles : 1, 2, 3 ou 4
    // --------------------
    // construction de la requete selon le choix :
    $select = "SELECT prenom,nom,titre,phone,email,no,cp,(cp-no) AS calcul FROM tfi2003_contacts ";
    switch ($choixTri)
    {
        case '1':	// Requête 1 : Sélectionner tout
            $select .= "";
            break;
        case '2':	// Requête 2 : tous les noms remplis et pas de phone
            $select .= " WHERE nom != '' AND telephone = '' ";
            break;
        case '3':	// Requête 3 : tous les emails remplis
            $select .= " WHERE email != '' ";
            break;
        case '4':	// Requête 4 : tous les noms qui commence par la lettre D
            $select .= " WHERE nom LIKE 'D%' ";
            break;
    	default:	// par défaut : Sélectionner tout
            $select .= "";
    }
    // --------------------
    // envoi et resultat de la requete :
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    // --------------------
    // AFFICHAGE DU RESULTAT :
    ?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<title>traitement et résultat</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <style type="text/css">
    	<!-- ON ECRIT LES STYLE CSS ICI, ou dans une feuille de style séparée -->
    #table_resultat {
    	background-color: #FFFFFF;
    }
    #table_resultat th {
    	background-color: #669999;
    	font-weight: bold;
    }
    #table_resultat td {
    	background-color: #CCCCCC;
    }
     
    </style>
     
    </head>
    <body>
     
    <?php
    // si on a récupéré un résultat on l'affiche.
    if($total > 0) 
    {
    	// PERSONNELLEMENT, JE RECOMMANDE DE "SORTIR" LE CODE HTML DU CODE PHP :
    ?>
    	<table id="table_resultat">
            <thead> <!-- entête du tableau -->
    		<tr>
    			<th>Prénom</th>
    			<th>nom</th>
    			<th>titre</th>
    			<th>phone</th>
    			<th>email</th>
    			<th>no</th>
    			<th>cp</th>
    			<th>calcul</th>
    		</tr>
    		</thead>
    		<tbody> <!-- corps du tableau -->
    <?php
    	// lecture et affichage des résultats : 1 résultat par ligne.
        while($row = mysql_fetch_array($result)) 
    	{
    ?>
    		<tr>
    			<td><?php echo $row['prenom']; ?></td>
    			<td><?php echo $row['nom']; ?></td>
    			<td><?php echo $row['titre']; ?></td>
    			<td><?php echo $row['phone']; ?></td>
    			<td><?php echo $row['email']; ?></td>
    			<td><?php echo $row['no']; ?></td>
    			<td><?php echo $row['cp']; ?></td>
    			<td<?php if($row['calcul']>=50 && $row['calcul']<=100){ echo ' style="background-color:#ffcc66;"'; } ?>><?php echo $row['calcul']; ?></td>
    		</tr>
    <php
        } // fin while
    ?>
    		</tbody>
    	</table>
    <?php 
    } else {
    ?>
    	Pas d'enregistrements dans cette table...
    <?php
    } // fin if else
     
    // on libère le résultat
    mysql_free_result($result);
    ?>
     
    </body>
    </html>

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    je test mais il ya une erreur à l'affichage ?


    Parse error: parse error in C:\wamp\www\IMPORT2012\clients2.php on line 106

    Faut- il faire un découpage entre le code html et php ?

    Car bcps d'erreurs s'affiche ?? est ce le switch tri qui prend pas je recherche avec plusieurs test

  19. #19
    Invité
    Invité(e)
    Par défaut
    Ligne 100 : <php au lieu de <?php

    PS : au lieu de demander à chaque fois (et de m'envoyer des MP),
    OUVRE LES YEUX, et essaie de trouver les réponses par toi-même !
    C'est le meilleur moyen d'apprendre !

    Je pense qu'il te manque aussi des bases essentielles,
    et je t'engage à lire très attentivement ce tuto et à faire les exercices proposés : PHP : Le tutoriel pour grands débutants pressés

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    MERCI pour l'info j'avoue que j'ai bcps appris avec vous encore une fois MERCI

    j'avais vu mais MAIS d 'autre ERREURS AU NIVEAU DE L affichage

    un peu plus complexe Il y avait une autre erreur à la ligne 13 Tri j'ai modifié par tri et sa FONCTIONNE je suis content je comprends un peu sa me motive merci!!!

    Notice: Undefined index: Tri in C:\wamp\www\IMPORT2012\clients2.php on line 13

    je vote !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [8.3] Une clé primaire commune entre deux tables, est-ce possible ?
    Par selmagsi dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 03/06/2014, 21h25
  2. Cle etrangere entre deux schemas : est-ce possible ?
    Par fpoirier dans le forum Oracle
    Réponses: 2
    Dernier message: 13/09/2007, 14h16
  3. [Noobie]Calcul entre deux champs datetime
    Par bigltnt dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/07/2007, 10h37
  4. Comment effectuer un calcul entre deux champs
    Par Pitchoune557 dans le forum IHM
    Réponses: 3
    Dernier message: 22/02/2007, 11h48
  5. calcul entre deux champs dans une table
    Par pomar dans le forum Access
    Réponses: 7
    Dernier message: 29/11/2006, 18h27

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