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 :

Recherche selon plusieurs champs


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut Recherche selon plusieurs champs
    Bonjour tt le monde,
    j'ai pas encore executer le code suivant pour savoir s'il fonctionne . la 1ere erreur que je reçoi c'est dans la derniere ligne le "?>" qui est la fin de mon code et de ma page
    l'erreur est : Parse error: parse error, unexpected $end in c:\program files\easyphp1-8\www\xoops\modules\recherche\rech_mat2.php on line 98
    le code est :
    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
    <?
    $nom_foureph=$_POST['nom_foureph'];
    $departementh=$_POST['departementh'];
     
    if($nom_foureph == 'Toutes' && $departementh == 'Toutes')
    {
    $result = mysql_query("SELECT * FROM historique");
    while($row=mysql_fetch_row($result))
    {
    print_r($row);
    }
    }
    else
    {
    // TEST POUR CHAMPS ADMINISTRATION ORGANISATRICE SELECTIONNE (MINISTERE)
    $requete  = "SELECT * FROM historique WHERE";
    switch($nom_foureph)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= ' id_hist='.$nom_foureph.' AND';
    break;
    }
     
    switch($departement)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= ' id_hist='.$departement.' AND';
    break;
    }
    $length = strlen($requete)-4; //4 caractères pour " AND"
    $requete=substr($requete, 0, $length); //on enlève le dernier " AND"
     
    $result1 = mysql_query($requete);
     
    while($row2=mysql_fetch_row($result1))
    {
    print_r($row2);
    }
    mysql_close(); // Déconnexion de MySQL 
    include_once '../../footer.php'; //importAnt à inclure pour mettre en place//pour que le formulqire soit inclus dans la page de xoops
    ?>
    s'il vous plait si quelqu'un peut me trouver la solution de cette erreur pour pouvoir continuer.
    et merci
    Ne pensez pas trop

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Il manque une accolade fermante a ton code (celle du else{ )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while($row2=mysql_fetch_row($result1))
    {
    print_r($row2);
    }
     
    }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    merci bcp c'ete ça mon premier probleme.
    maintenant si je fait mes choix il me donne page vide.
    et si je les ai laisse par defaut "toutes" il m'affiche
    Array ( [0] => 3 ) Array ( [0] => 3 ) Array ( [0] => 3 )
    j'ai pas compris cela.
    Ne pensez pas trop

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    Citation Envoyé par brajae85 Voir le message
    maintenant si je fait mes choix il me donne page vide.
    parce que certainement la requete renvoie aucune ligne

    Citation Envoyé par brajae85;3250990et si je les ai laisse par defaut "toutes" il m'affiche
    Array ( [0
    => 3 ) Array ( [0] => 3 ) Array ( [0] => 3 )
    j'ai pas compris cela.
    il faut parcourir le tableau $row afin d'afficher son contenu. le print_r ne sert qu'a afficher globalement le tableau.
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par ouatmad Voir le message
    parce que certainement la requete renvoie aucune ligne

    Si il ya des element à recuprer j'ai verifier le contenu de la table.

    il faut parcourir le tableau $row afin d'afficher son contenu. le print_r ne sert qu'a afficher globalement le tableau.
    est ce que c'est possible de me donner comment faire ???
    et merci infiniment pour tes reponses
    Ne pensez pas trop

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par ouatmad Voir le message
    parce que certainement la requete renvoie aucune ligne



    il faut parcourir le tableau $row afin d'afficher son contenu. le print_r ne sert qu'a afficher globalement le tableau.
    desolee j'ai melangé ma reponse,
    pr la 1ere j'ai verifié ma base et il faut qu'elle retourne des donnees

    pour la deuxieme print_r est ce que c'est possible de me dire comment faire.je suis hyperdebutante en php
    Ne pensez pas trop

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    si on part du fait que la table historique a comme champ (id_hist,id_materiel_hist,..), le code pourrait etre le suivant

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?
    if($nom_foureph == 'Toutes' && $departementh == 'Toutes')
    {
    $result = mysql_query("SELECT * FROM historique");
    while($row=mysql_fetch_row($result))
    {
    echo "num historique->"$row['id_hist']."code_materiel ->" $row['materiel_hist'];
    }
    }
    else
    .........
    ?>
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par ouatmad Voir le message
    si on part du fait que la table historique a comme champ (id_hist,id_materiel_hist,..), le code pourrait etre le suivant

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?
    if($nom_foureph == 'Toutes' && $departementh == 'Toutes')
    {
    $result = mysql_query("SELECT * FROM historique");
    while($row=mysql_fetch_row($result))
    {
    echo "num historique->"$row['id_hist']."code_materiel ->" $row['materiel_hist'];
    }
    }
    else
    .........
    ?>
    je reçois cette erreur arse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in c:\program files\easyphp1-8\www\xoops\modules\recherche\rech_mat2.php on line 27
    ligne 27 est "echo........... que j'ai ajouté
    Ne pensez pas trop

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    il manque une concatenation

    echo "num historique->"$row['id_hist']."code_materiel ->" . $row['materiel_hist'];
    }
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  10. #10
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    Désolée mais encore le même problème voila le code de ma 1ere page : rech_mat.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
    <form id="form1" name="form1" method="post" action="rech_mat2.php">
     <label>Fournisseur :</label> 
     
    <?php
     
    $sql = 'SELECT nom_foureph FROM historique'; 
     
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    echo '<select name="nom_foureph">';
    echo '<option value="Toutes"></option>';
     
    while($data = mysql_fetch_assoc($req)) 
        { 
     
    echo '<option value="'.$data['nom_foureph'].'">'.$data['nom_foureph'].'</option>'; 
        } 
     
    echo '</select>';
     
     
    ?>
     
    </br>
     
    <label>Catégorie materiel:</label> 
     
    <?php
    $sql = 'SELECT categorie_math FROM historique'; 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo '<select name="categorie_math">';
    echo '<option value="Toutes"></option>';
    while($data = mysql_fetch_assoc($req)) 
        { 
        echo '<option value="'.$data['categorie_math'].'">'.$data['categorie_math'].'</option>'; 
        } 
    echo '</select>';
    ?>
    </br>
     
    <label>Date d'achat:</label> 
     
    <?php
    $sql = 'SELECT date_achath FROM historique'; 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo '<select name="date_achath">';
    echo '<option value="Toutes"></option>';
    while($data = mysql_fetch_assoc($req)) 
        { 
        echo '<option value="'.$data['date_achath'].'">'.$data['date_achath'].'</option>'; 
        } 
    echo '</select>';
    ?>
    </br>
    <label>Date d'affectation:</label> 
     
    <?php
    $sql = 'SELECT date_affectationh FROM historique'; 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo '<select name="date_affectationh">';
    echo '<option value="Toutes"></option>';
    while($data = mysql_fetch_assoc($req)) 
        { 
        echo '<option value="'.$data['date_affectationh'].'">'.$data['date_affectationh'].'</option>'; 
        } 
    echo '</select>';
    ?>
    </br>
    <label>Departement:</label> 
     
    <?php
    $sql = 'SELECT departementh FROM historique'; 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo '<select name="departementh">';
    echo '<option value="Toutes"></option>';
    while($data = mysql_fetch_assoc($req)) 
        { 
        echo '<option value="'.$data['departementh'].'">'.$data['departementh'].'</option>'; 
        } 
    echo '</select>';
    ?>
    </br>
        </table>
      </div>
      <p align="center">
        <label>
        <input type="reset" name="Submit" value="Annuler" />
        </label>
        <input type="submit" name="Submit2" value="chercher" />
      </p>
      <p align="center">&nbsp;</p>
      <p align="center">&nbsp;</p>
    </form>
    et voila le code de la 2eme page : rech_mat2.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
    <div align="center">
    <p align="center"><span class="Style7">Recherche d'un numéro d'inventaire</span></p>
    <p align="left"><span class="Style7"><br></span></p></div>
    <?
     
    $nom_foureph=$_POST['nom_foureph'];
    $categorie_math=$_POST['categorie_math']; 
    $date_achath=$_POST['date_achath']; 
    $date_affectationh=$_POST['date_affectationh']; 
    $cdepartementh=$_POST['departementh']; 
     
    if($nom_foureph == 'Toutes' && $categorie_math == 'Toutes' && $date_achath == 'Toutes' && $date_affectationh == 'Toutes' && $departementh == 'Toutes')
    {
    $result = mysql_query("SELECT num_inventaireh FROM historique");
    while($row=mysql_fetch_row($result))
    {
    echo "num_inventaireh->"$row['num_inventaireh']."categorie_math ->".$row['categorie_math'];
    print_r($row);
    }
    }
    else
    {
     
    $requete  = "SELECT num_inventaireh FROM historique WHERE";
    switch($nom_foureph)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= ' nom_foureph='.$nom_foureph.' AND';
    break;
    }
     
    switch($categorie_math)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= ' categorie_math='.$categorie_math.' AND';
    break;
    }
    switch($date_achath)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= 'date_achath='.$date_achath.' AND';
    break;
    }
    switch($date_affectationh)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= 'date_affectationh='.$date_affectationh.' AND';
    break;
    }
    switch($departementh)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= 'departementh='.$departementh.' AND';
    break;
    }
    $length = strlen($requete)-4; //4 caractères pour " AND"
    $requete=substr($requete, 0, $length); //on enlève le dernier " AND"
     
    $result1 = mysql_query($requete);
     
    while($row2=mysql_fetch_row($result1))
    {
    print_r($row2);
    }
    }
    mysql_close(); // Déconnexion de MySQL 
    ?>
    Le but de ces deux pages est de trouver le numéro d'inventaire du matériel qui répond à ces critères.
    aidez moi svp je suis plantée
    j'ai encore cette erreur :
    [quote]Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in c:\program files\easyphp1-8\www\xoops\modules\recherche\rech_mat2.php on line 31[/code]
    ligne 31 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "num_inventaireh->"$row['num_inventaireh']."categorie_math ->".$row['categorie_math'];
    Ne pensez pas trop

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    faut bien lire tes echo, il manque le point de concatenation entre num_inventaireh et $row. copie cette ligne
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "num_inventaireh->" . $row['num_inventaireh']."categorie_math ->".$row['categorie_math'];
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  12. #12
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    Bonjour ,
    merci bien pour ta reponse,maintenant pas d'erreur mais il m'affiche rien pourtant ma requete retourne des donnees.
    Ne pensez pas trop

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    Citation Envoyé par brajae85 Voir le message
    Bonjour ,
    merci bien pour ta reponse,maintenant pas d'erreur mais il m'affiche rien pourtant ma requete retourne des donnees.
    meme pas num_inventaire-> ?
    de toute façon ajoute cette ligne dans ton code, juste avant le select (ça permet de savoir le nombre de ligne q ton select renvoie). comme ceci
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    .....
    if($nom_foureph == 'Toutes' && $categorie_math == 'Toutes' && $date_achath == 'Toutes' && $date_affectationh == 'Toutes' && $departementh == 'Toutes')
    {
    $result = mysql_query("SELECT num_inventaireh FROM historique");
    echo "le nombre de ligne ramené est ". mysql_num_rows($result);
    while($row=mysql_fetch_row($result))
    {
    echo "num_inventaireh->".$row['num_inventaireh']."categorie_math ->".$row['categorie_math'];
    print_r($row);
    ...
    }
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  14. #14
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 109
    Points : 35
    Points
    35
    Par défaut
    j'ai ajouté la lingne demandée même cette ligne ne s'affiche pas " le nombre de ligne ramené"
    Ne pensez pas trop

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    Citation Envoyé par brajae85 Voir le message
    j'ai ajouté la lingne demandée même cette ligne ne s'affiche pas " le nombre de ligne ramené"
    certainement que ta requete bug. faut la revoir
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

Discussions similaires

  1. Filtrer un formulaire - Recherche dans plusieurs champs
    Par LaurentD dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/11/2007, 11h19
  2. Réponses: 6
    Dernier message: 30/04/2007, 23h36
  3. [Débutant]Recherche sur plusieurs champs
    Par Touareg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/03/2007, 14h04
  4. [SQL Server] rechercher dans plusieurs champs d'une table
    Par houla! dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/08/2006, 09h37
  5. Réponses: 2
    Dernier message: 30/11/2004, 09h42

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