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

Langage PHP Discussion :

Affichage données lorsque champ égal select


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 43
    Points
    43
    Par défaut Affichage données lorsque champ égal select
    Bonjour,

    J'ai un formulaire avec un select qui envoi à une page le select choisi:

    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
    <form method="post" action="items.php" onsubmit="return validateForm()">
    <select name="Categorie">
    <?php 
     
     
    $fp = fopen($_SERVER["DOCUMENT_ROOT"]."/frimousse/Categorie.csv", 'r');
    // Headrow
    $head = fgetcsv($fp, 4096, ';', '"');
     
    // Rows
    while($column = fgetcsv($fp, 4096, ';', '"'))
    {
        $column = array_combine($head, $column);
     
    ?>
     
    <option name="categorieNom" value="<?php echo $column['Nom']?>"><?php echo $column['Nom']?></option>
    <?php
     }
     
    ?>
    </select>
    <input name="" type="submit" />
    </form>
    J'aimerais que la page items.php affiche seulement les données lorsque le champs "$columnitems['Catégorie']" correspond au select choisi (a variable $columnitems['Catégorie'] est changer par la variable $cat [version texte]):

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    <body>
     <?php 
    $CatNom  = $_POST["Categorie"];
     
    $fpitems = fopen($_SERVER["DOCUMENT_ROOT"]."/frimousse/Item.csv", 'r');
    // Headrow
    $headitems = fgetcsv($fpitems, 4096, ';', '"');
     
    // Rows
    while($columnitems = fgetcsv($fpitems, 4096, ';', '"'))
    {
     
        $columnitems = array_combine($headitems, $columnitems);
    	if ($columnitems['Catégorie'] == "1") {
        $cat = "Jeu de motricité";
    } elseif ($columnitems['Catégorie'] == "2") {
        $cat = "Jeu d'habileté/rapidité";
    	} elseif ($columnitems['Catégorie'] == "3") {
        $cat = "Jeu sensoriel";
    	} elseif ($columnitems['Catégorie'] == "4") {
        $cat = "Jeu de rôles";
    	} elseif ($columnitems['Catégorie'] =="5") {
        $cat = "Jeu de hasard";
    	} elseif ($columnitems['Catégorie'] == "6") {
        $cat = "Jeu de construction/assemblage";
    	} elseif ($columnitems['Catégorie'] == "7") {
        $cat = "Jeu de créativité/artistique";
    	} elseif ($columnitems['Catégorie'] == "8") {
        $cat = "Jeu de stratégie/réflexion";
    	} elseif ($columnitems['Catégorie'] == "9") {
        $cat = "Jeu de vocabulaire";
    	} elseif ($columnitems['Catégorie'] == "10") {
        $cat = "Jeu mathématique";
    	} elseif ($columnitems['Catégorie'] == "11") {
        $cat = "Jeu d'apprentissage/connaissance";
    	} elseif ($columnitems['Catégorie'] == "12") {
        $cat = "Jeu de mémoire";
    	} elseif ($columnitems['Catégorie'] == "13") {
        $cat = "Jeu de plein air";
    	} elseif ($columnitems['Catégorie'] == "14") {
        $cat = "Livre avec dessins seulement";
    	} elseif ($columnitems['Catégorie'] == "15") {
        $cat = "Livre avec textes et dessins";
    	} elseif ($columnitems['Catégorie'] == "16") {
        $cat = "Livre avec textes seulement";
    	} elseif ($columnitems['Catégorie'] == "17") {
        $cat = "Livre de bricolages";
    	} elseif ($columnitems['Catégorie'] == "18") {
        $cat = "Livre destiné aux parents";
    	} elseif ($columnitems['Catégorie'] == "19") {
        $cat = "Cassette vidéo - Dessins animés";
    	} elseif ($columnitems['Catégorie'] == "20") {
        $cat = "Cassette vidéo - Film";
    	} elseif ($columnitems['Catégorie'] == "21") {
        $cat = "Cassette audio";
    	} elseif ($columnitems['Catégorie'] == "22") {
        $cat = "CD-Rom audio";
    	} elseif ($columnitems['Catégorie'] == "23") {
        $cat = "CD-Rom informatique";
    } else {
    }
    ?>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td style="width:100px"><?php echo $columnitems['Titre']?></td>
        <td style="width:100px"><?php echo $cat ?></td>
        <td  style="width:100px"><?php
    if (empty($columnitems['IdPhoto']))
    {
     
    } else {
    ?>
    <img src="<?php $_SERVER['DOCUMENT_ROOT'];?>/frimousse/dataimg/i<? echo $columnitems['IdPhoto']?>.jpg">
     
    <?php 
     }
     ?>
     </td>
      </tr>
    </table>
    <?php }
     
    ?>
    </body>
    </html>
    Comment faire?

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 43
    Points
    43
    Par défaut
    Pour être plus simple. J'ai un csv avec 2 colonnes (IdCategorie;Nom) et un 2ie csv avec 6 colonnes (#Item;Titre;Catégorie;Âge visé;Multi-joueurs;IdPhoto).

    La colonne Catégorie du 2ie csv correspond à la colonne IdCategorie du premier csv.

    J'aimerais pouvoir afficher un tableau avec les colonnes du 2ie csv mais en remplaçant la colonne Catégorie par le Nom de celle-ci.

    Présentement j'y arrive, mais ce n'est pas très beau:
    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
    <?php
     
    $fpitems = fopen($_SERVER["DOCUMENT_ROOT"]."/frimousse/Item.csv", 'r');
    // Headrow
    $headitems = fgetcsv($fpitems, 4096, ';', '"');
     
    // Rows
    while($columnitems = fgetcsv($fpitems, 4096, ';', '"'))
    {
     
        $columnitems = array_combine($headitems, $columnitems);
            if ($columnitems['Catégorie'] == "1") {
        $cat = "Jeu de motricité";
    } elseif ($columnitems['Catégorie'] == "2") {
        $cat = "Jeu d'habileté/rapidité";
            } elseif ($columnitems['Catégorie'] == "3") {
        $cat = "Jeu sensoriel";
            } elseif ($columnitems['Catégorie'] == "4") {
        $cat = "Jeu de rôles";
            } elseif ($columnitems['Catégorie'] =="5") {
        $cat = "Jeu de hasard";
            } elseif ($columnitems['Catégorie'] == "6") {
        $cat = "Jeu de construction/assemblage";
            } elseif ($columnitems['Catégorie'] == "7") {
        $cat = "Jeu de créativité/artistique";
            } elseif ($columnitems['Catégorie'] == "8") {
        $cat = "Jeu de stratégie/réflexion";
            } elseif ($columnitems['Catégorie'] == "9") {
        $cat = "Jeu de vocabulaire";
            } elseif ($columnitems['Catégorie'] == "10") {
        $cat = "Jeu mathématique";
            } elseif ($columnitems['Catégorie'] == "11") {
        $cat = "Jeu d'apprentissage/connaissance";
            } elseif ($columnitems['Catégorie'] == "12") {
        $cat = "Jeu de mémoire";
            } elseif ($columnitems['Catégorie'] == "13") {
        $cat = "Jeu de plein air";
            } elseif ($columnitems['Catégorie'] == "14") {
        $cat = "Livre avec dessins seulement";
            } elseif ($columnitems['Catégorie'] == "15") {
        $cat = "Livre avec textes et dessins";
            } elseif ($columnitems['Catégorie'] == "16") {
        $cat = "Livre avec textes seulement";
            } elseif ($columnitems['Catégorie'] == "17") {
        $cat = "Livre de bricolages";
            } elseif ($columnitems['Catégorie'] == "18") {
        $cat = "Livre destiné aux parents";
            } elseif ($columnitems['Catégorie'] == "19") {
        $cat = "Cassette vidéo - Dessins animés";
            } elseif ($columnitems['Catégorie'] == "20") {
        $cat = "Cassette vidéo - Film";
            } elseif ($columnitems['Catégorie'] == "21") {
        $cat = "Cassette audio";
            } elseif ($columnitems['Catégorie'] == "22") {
        $cat = "CD-Rom audio";
            } elseif ($columnitems['Catégorie'] == "23") {
        $cat = "CD-Rom informatique";
    } else {
    }
     
    ?>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td style="width:100px"><?php echo $columnitems['Titre']?></td>
        <td style="width:100px"><?php echo $cat ?></td>
        <td  style="width:100px"><?php
    if (empty($columnitems['IdPhoto']))
    {
     
    } else {
    ?>
    <img src="<?php $_SERVER['DOCUMENT_ROOT'];?>/frimousse/dataimg/i<? echo $columnitems['IdPhoto']?>.jpg">
     
    <?php
     }
     ?>
     </td>
      </tr>
    </table>
    <?php }
    ?>
    J'aimerais aussi avoir un select m'affichant la catégorie et en soumettant que la page affiche que les items de la catégorie demandé. Présentement j'ai ça:

    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
     
    <form method="post" action="items.php" onsubmit="return validateForm()">
    <select name="Categorie">
    <?php
     
     
    $fp = fopen($_SERVER["DOCUMENT_ROOT"]."/frimousse/Categorie.csv", 'r');
    // Headrow
    $head = fgetcsv($fp, 4096, ';', '"');
     
    // Rows
    while($column = fgetcsv($fp, 4096, ';', '"'))
    {
        $column = array_combine($head, $column);
     
    ?>
     
    <option name="categorieNom" value="<?php echo $column['Nom']?>"><?php echo $column['Nom']?></option>
    <?php
     }
     
    ?>
    </select>
    <input name="" type="submit" />
    </form>
    Mais je n'arrive pas à faire afficher que les items de la catégorie demandé.

    Merci de votre aide.

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 100
    Points : 4 445
    Points
    4 445
    Par défaut
    Bonjour,

    on a inventer le SQL et les bases de données pour faire exactement cela !

    Tu aimes te compliquer la vie malheureusement pour toi : pas moi
    $moi= ( !== ) ? : ;

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 43
    Points
    43
    Par défaut
    J'utilise des fichiers csv car ma base de données est protege (fichier mde) et la seule exportation possible est en excel, mais si vous avez une idée pour faire ce que je veux faire en transférant en sql, je suis partant.

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 100
    Points : 4 445
    Points
    4 445
    Par défaut
    Citation Envoyé par eiffel74 Voir le message
    ...mais si vous avez une idée pour faire ce que je veux faire en transférant en sql, je suis partant.
    Il est tres simple d'importer un fichier .csv dans une table mysql avec php myadmin (bouton importer - format csv)

    sinon écrire sois même le script d'import
    http://php.developpez.com/faq/?page=...ts_extrairecsv

    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
    $file = "mon_fichier.csv";
    $delimiteur = ";";
    /* ouverture en lecture */
    if($fp = fopen($file,"r")) {
        /* extraction d'une ligne */
        while ($ligne = fgetcsv($fp, 0, $delimiteur)) {
            /* affichage des champs */
            $sql='INSERT into table values(';
            foreach($ligne as $elem) {
                $sql.= '"'.trim($elem).'",';
            }
            $sql= substr($sql,0,-1).')'; 
            echo $sql;  // mysqli_query($sql);
        }
        /* fermeture fichier */
        fclose ($fp);
    } else {
        echo "Ouverture impossible.";
    }
    $moi= ( !== ) ? : ;

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 43
    Points
    43
    Par défaut
    Mais dans mon cas je dois importer un fichier csv avec la valeur dans une colonne venant d'un deuxième csv

  7. #7
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 100
    Points : 4 445
    Points
    4 445
    Par défaut
    oui, une table avec tous les items et une autre avec toutes les categories
    mais si tu n'as aucune idée de ce que sont des tables
    $moi= ( !== ) ? : ;

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 43
    Points
    43
    Par défaut
    Je sais c'est quoi un table, je sais quoi faire, mais je ne sais pas comment faire.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 43
    Points
    43
    Par défaut
    J'ai trouvé mon problème:

    J'ai commencé par changer la valeur de mon select (j'y ai mis <?php echo $column['id']?> qui correspond $columnitems['Catégorie']) par la suite j'ai ajouté a mon loop:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( $_POST['categorieNom'] == $columnitems['Catégorie'] )
    ce que je faisait de mal c'est que j'inversait $_post avec $colomnitems dans mon if

    Maintenant comment faire une pagination? Si vous pouviez m'aider.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/06/2009, 09h12
  2. Affichage données selon un autre champ : Requête ou VBA?
    Par Noemy23 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/07/2007, 13h13
  3. [MySQL] Problème affichage lorsque champ non renseigné
    Par fannoche dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/04/2007, 10h10
  4. Réponses: 7
    Dernier message: 05/01/2007, 12h24
  5. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27

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