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 :

développer les réponses venant d'un formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut développer les réponses venant d'un formulaire
    Bonjour,
    Avec Dreamweaver CS4 : Dans une page « seloger.php » j’ai fait un formulaire (pour des gens qui cherche à se loger) qui interroge une table « dormir » de la base « fds ». cette table « dormir » a les champs id, homme ,femme, couple, animaux, enfants, foyer, chambre, logement, nom, adresse, contact, beneficiaires, heuresdouverture, gestionnaire.
    Les résultats s’affichent dans une colonne gauche sur la page « selogerreponse.php » avec pour chaque réponse les champs nom et adresse.
    Je voudrais que lorsqu’on clique sur chacun des noms de ces résultats puissent apparaitre dans une autre colonne de la même page les champs nom, adresse, contact, beneficiaires, heuresdouverture, gestionnaire. Je ne sais pas faire cette dernière partie. Qui pourrait m’aider ? Je crois qu’il faut faire une session mais je ne sais pas faire… Merci pour vos réponses.


    voici le code

    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
     
    <?php
    // on fait une requête (les mots de la requête  :    where     order by     limit 
     
    if (isset ($_POST['homme'] ))
    {
    	$reponse = $bdd->query('SELECT * FROM dormir WHERE homme ="oui"' ); 
    }
     
    elseif (isset ($_POST['femme'] ))
    {
    	$reponse = $bdd->query('SELECT * FROM dormir WHERE femme ="oui" '); 
    }
     
    elseif(isset ($_POST['couple'] ))
    {
    	$reponse = $bdd->query('SELECT * FROM dormir WHERE couple ="oui" '); 
    }
     
    elseif(isset ($_POST['enfants'] ))
    {
    	$reponse = $bdd->query('SELECT * FROM dormir WHERE enfants ="oui" ');
    }
    elseif (isset ($_POST['animaux'] ))
    {
    	$reponse = $bdd->query('SELECT * FROM dormir WHERE animaux ="oui"  '); 
    }
     
    elseif (isset ($_POST['foyer'] ))
    {
    	$reponse = $bdd->query('SELECT * FROM dormir WHERE foyer ="oui"  '); 
    }
     
    elseif (isset ($_POST['chambre'] ))
    {
    	$reponse = $bdd->query('SELECT * FROM dormir WHERE chambre ="oui"  '); 
    }
    elseif (isset ($_POST['logement'] ))
    {
    	$reponse = $bdd->query('SELECT * FROM dormir WHERE logement ="oui" '); 
    }
    while ($donnees = $reponse->fetch())
    {    
     
    echo '<p></p>'; ?>
     
    <a class ="palatino16blanc" ><a href="/fds/scriptselogerdetails.php"><?php echo ($donnees['nom']).'<br />'; ?></a></a>
     
    <a class ="palatino14gris" >
    <?php  echo  nl2br ($donnees['adresse']).'<br />' ;?></a> 
     
    <a class ="palatino14grisitalic" >
    <?php	  echo '________________________________';
    }	
    ?></a>
    ]

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour commencer regarde comment tu pourrais mieux gérer ta recherche :

    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
    if (isset ($_POST['homme'] )) {
        $critere[] = "situation = 1"; 
    }
    elseif (isset ($_POST['femme'] )) {
        $critere[] = "situation = 2"; 
    }
    elseif(isset ($_POST['couple'] )) {
        $critere[] = "situation = 3";  
    }
     
    if (isset ($_POST['animaux'] )) {
    	$critere[] = "animaux = 1";
    }
     
    $sql = 'SELECT * FROM dormir';
     
    if (isset($critere)) {
      $sql .= " WHERE " . implode(" AND ", $critere);
    }
     
    $bdd->query($sql);
    La personne ne pouvant pas être à la fois un homme, une femme et un couple ca ne sert a rien d'avoir 3 champs différents dans la base ; donc ici je met 1 champ situation avec un numéro répresentant les cas.

    De la meme facon écrire "oui", "non" en informatique c'est de la perte d'energie ; un boolean est adapté pour une situation oui/non.

    Le reste de la modification te montre comment écrire une recherche multicritères et aussi surtout à ne pas répeter la requête entière.


    Pour ta question :
    Tu fais des liens du genre http://tapage.php?id=26454

    Dans tapage.php tu fais une lecture de la base pour l'id demandé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT nom, adresse, contact, beneficiaires, heuresdouverture, gestionnaire from ta_table WHERE id=" . inval($_GET['id']);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    merci sabotage pour ta réponse
    mais je ne comprends pas tout et surtout au départ, je me suis mal expliqué.
    Voilà où j'en suis :

    Ma table « dormir » a 40 enregistrements d’hébergements pour les gens de la rue
    Chaque hébergement est soit un foyer, soit une chambre, soit un logement
    Chaque hébergement accepte ou non les hommes, les femmes, les couples, les enfants, les animaux.
    J’ai donc une table qui a pour champs
    id, homme ,femme, couple, animaux, enfants, foyer, chambre, logement, nom, adresse, contact, beneficiaires, heuresdouverture, gestionnaire.
    Si un hébergement accepte les animaux je mets 1 dans le champ. Etc…

    En regardant ce que tu m'as dit, j'ai fait fait :

    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
    <?php
     
    if (isset ($_POST['homme'] )) {
        $critere[] = "situation = 1"; 
    }
    elseif (isset ($_POST['femme'] )) {
        $critere[] = "situation = 1"; 
    }
    elseif(isset ($_POST['couple'] )) {
        $critere[] = "situation = 1";  
    }
     
    elseif (isset ($_POST['animaux'] )) {
    	$critere[] = "situation = 1";
    }
    elseif (isset ($_POST['enfants'] )) {
    	$critere[] = "situation = 1";
    }
    elseif(isset ($_POST['foyer'] )) {
        $critere[] = "situation = 1"; 
    }
    elseif (isset ($_POST['chambre'] )) {
        $critere[] = "situation = 1"; 
    }
    elseif(isset ($_POST['logement'] )) {
        $critere[] = "situation = 1"; 
    }
     
    $sql = 'SELECT * FROM dormir';
     
     if (isset($critere)) {
      $sql .= " WHERE " . implode(" AND ", $critere);
    }
     
    $bdd->query($sql);
     
    {
     
    echo '<p></p>'; ?>
     
    <a class ="palatino16blanc" ><?php echo ($sql['nom']).'<br />'; ?></a></a>
     
    <a class ="palatino14gris" >
    <?php  echo  nl2br ($sql['adresse']).'<br />' ;?></a> 
     
    <a class ="palatino14grisitalic" >
    <?php	  echo '________________________________';
    }	
    ?></a>

    J’obtiens
    S
    S

    Peux-tu m’aider à avancer ?
    Merci.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Bonjour, merci sabotage pour ta réponse sur la page détail qui m'a aidé
    mais pour ce qui est du code suivant j'obtiens le message" Erreur SQL !
    WHERE
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE' at line 1"
    Je ne comprends pas . Peux-tu me dire ce qu'il faut faire. J'essaye de mettre WHERE mais sans résultats ?
    Merci de me répondre



    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
        <?php
    // aide sabotage pour requête 
     
    if (isset ($_POST['homme'] )) {
        $critere = " situation = 1"; 
     
    }
    if (isset ($_POST['femme'] )) {
        $critere ="situation = 1"; 
     
    }
    if(isset ($_POST['couple'] )) {
        $critere = "situation = 1";  
     
    }
    if (isset ($_POST['animaux'] )) {
        $critere = "situation = 1";
     
    }
    if (isset ($_POST['enfants'] )) {
        $critere = "situation = 1";
     
    }
    if(isset ($_POST['foyer'] )) {
        $critere ="situation = 1"; 
     
    }
    if (isset ($_POST['chambre'] )) {
        $critere = "situation = 1"; 
     
    }
    if(isset ($_POST['logement'] )) {
        $critere = "situation = 1"; 
     
    }
    $sql = 'SELECT * FROM dormir';
     
     
    if (isset($critere)) {
     $sql = " WHERE " . implode(" AND ", $critere);  
     
    }
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
     
          //on organise $req en tableau associatif  $data['champ']
            //en scannant chaque enregistrement récupéré
            //on en profite pour gérer l'affichage
     
             //boucle
            while ($row_Rsselogerreponses = mysql_fetch_array($req))
     
    ?>

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu as retiré les []

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    c'est vrai merci
    Je viens de les remettre

    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
        <?php
    // aide sabotage pour requête 
     
    if (isset ($_POST['homme'] )) {
        $critere [] = " situation = 1"; 
     
    }
    if (isset ($_POST['femme'] )) {
        $critere[] ="situation = 1"; 
     
    }
    if(isset ($_POST['couple'] )) {
        $critere []= "situation = 1";  
     
    }
    if (isset ($_POST['animaux'] )) {
        $critere[] = "situation = 1";
     
    }
    if (isset ($_POST['enfants'] )) {
        $critere []= "situation = 1";
     
    }
    if(isset ($_POST['foyer'] )) {
        $critere []="situation = 1"; 
     
    }
    if (isset ($_POST['chambre'] )) {
        $critere[] = "situation = 1"; 
     
    }
    if(isset ($_POST['logement'] )) {
        $critere[] = "situation = 1"; 
     
    }
    $sql = 'SELECT * FROM dormir';
     
     
    if (isset($critere)) {
     $sql = " WHERE " . implode(" AND ", $critere);  
     
    }
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
     
     
     
             //boucle
            while ($row_Rsselogerreponses = mysql_fetch_array($req))
     
    ?>



    mais j'obtiens:
    Erreur SQL !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE situation = 1 AND situation = 1
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE situation = 1 AND situation = 1' at line 1

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un effort de recopie pourrait etre utile.

    Tu as également enlevé le point dans $sql .=

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Tu as raison, j'avais bidouillé le code et n'étais pas revenu complètement au départ.
    Maintenant une page de résultats affiche les dix premiers enregistrements, sauf le premier dont la place on le voit est là mais ne s'affiche pas. Mais cette page de résultats ne tient pas compte des critères du formulaire. Soit ma requête est fausse, soit ma table est mal faite!
    Merci de tes réponses qui me font avancer. Peux-tu me dire comment je pourrais faire?

    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
     <div id= "colonnereponse">
        <?php
    // aide sabotage pour requête 
     
    if (isset ($_POST['homme'] )) {
        $critere [] = " situation = 1"; 
     
    }
    if (isset ($_POST['femme'] )) {
        $critere[] ="situation = 1"; 
     
    }
    if(isset ($_POST['couple'] )) {
        $critere []= "situation = 1";  
     
    }
    if (isset ($_POST['animaux'] )) {
        $critere[] = "situation = 1";
     
    }
    if (isset ($_POST['enfants'] )) {
        $critere []= "situation = 1";
     
    }
    if(isset ($_POST['foyer'] )) {
        $critere []="situation = 1"; 
     
    }
    if (isset ($_POST['chambre'] )) {
        $critere[] = "situation = 1"; 
     
    }
    if(isset ($_POST['logement'] )) {
        $critere[] = "situation = 1"; 
     
    }
    $sql = 'SELECT * FROM dormir';
     
     
    if (isset($critere)) {
     $sql.= " WHERE " . implode(" AND ", $critere);  
     
    }
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
     
          //on organise $req en tableau associatif  $data['champ']
            //en scannant chaque enregistrement récupéré
            //on en profite pour gérer l'affichage
     
             //boucle
            while ($row_Rsselogerreponses = mysql_fetch_array($req))
     
    ?>
     
    <?php echo '<p></p>'; ?>
     
       <?php do { ?>
           <a class ="palatino16blanc" ><a href="selogerreponsesancienagarder.php?id= <?php echo $row_Rsselogerreponses['id']; ?>">
         <?php echo $row_Rsselogerreponses['nom']. '<br />'; ?></a></a>
     
          <a class ="palatino14gris" > <?php echo $row_Rsselogerreponses['adresse'].'<br />' ;?></a> 
     
          <a class ="palatino14grisitalic" >   <?php echo '________________________________ '?></a>
          <?php echo " ",'<br />'; ?> 
          <?php } while ($row_Rsselogerreponses = mysql_fetch_assoc($Rsselogerreponses)); ?>
     
     </div>
     
     
      <div id="colonnereponsedetailleetitre"></div>
    <div class="palatino14gris" id="colonnereponsedetaillee">
    <?php echo '<p></p>'; ?>
    <span class="palatino16blanc"><?php echo $row_Rsreponsedetails['nom']. '<br />'; ?></span> 
    <?php echo $row_Rsreponsedetails['adresse']. '<br />'; ?> 
    <?php echo $row_Rsreponsedetails['contact']. '<br />'; ?>
    <?php echo '<p>    </p> ';?>
     Bénéficiaires : <?php echo $row_Rsreponsedetails['beneficiaires']. '<br />'; ?>
     Heures d'ouverture : <?php echo $row_Rsreponsedetails['heuresdouverture']. '<br />'; ?>
     <?php echo '<p></p>'; ?>
     Plan : <?php echo '<p></p>'; ?> <?php echo $row_Rsreponsedetails['map']. '<br />'; ?>
     <?php echo '<p></p>'; ?><?php echo $row_Rsreponsedetails['photomap']; ?>
     
      </div>
     
    </div>

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as mis situation = 1 partout.


    Et cette ligne n'a aucun sens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php } while ($row_Rsselogerreponses = mysql_fetch_assoc($Rsselogerreponses)); ?>

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    dans ma table "dormir" qui est une table de propositions d'hébergements
    pour chacun des champs
    foyer, logement, chambre, homme, femme, etc
    j'ai mis 1 si la condition était remplie
    par exemple si
    l'hébergement id =1 est un foyer accueillant uniquement que des hommes
    j'ai mis 1 dans le champ foyer
    et j'ai mis 1 dans le champ hommes
    dans les autres champs j'ai mis 0

    autre exemple
    pour l'hébergement id=2 qui est un foyer accueillant des hommes ou des femmes
    j'ai mis 1 dans les champs foyer, homme, femme

    Je ne sais pas si c'est ainsi qu'il fallait faire

    faut-il que je change cette manière et faut-il que je mette 1 pour foyer à chaque fois que ce sera un foyer
    puis 2 pour logement chaque fois que ce sera un logement

    Ou faut-il que je mette simplement dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $critere [] = " situation = 1"; pour homme
     
    $critere [] = " situation = 2"; pour femme
    etc...

    pour le code qui sert à rien, je pensais qu'il me permettait de passer tous les enregistrements en revue!

    qu'est-ce que j'en fais?

    je suis un peu paumé!

    encore merci de me répondre

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans mon exemple "situation" c'etait le nom d'un champ qui regrouperait homme/femme/enfant.

    Si tu conserves ton champs homme, et que tu mets 1 dans le champ quand il est actif, ta condition est homme = 1.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    je vais essayer

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    En faisant ça , je n'obtiens pas de tri mais les dix premiers enregistrements sans distinction ?


    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
     
    <div id= "colonnereponse">
        <?php
    // aide sabotage pour requête 
     
    if (isset ($_POST['homme'] )) {
        $critere [] = " homme = 1"; 
     
    }
    if (isset ($_POST['femme'] )) {
        $critere[] ="femme = 1"; 
     
    }
    if(isset ($_POST['couple'] )) {
        $critere []= "couple = 1";  
     
    }
    if (isset ($_POST['animaux'] )) {
    	$critere[] = "animaux = 1";
     
    }
    if (isset ($_POST['enfants'] )) {
    	$critere []= "enfants = 1";
     
    }
    if(isset ($_POST['foyer'] )) {
        $critere []="foyer = 1"; 
     
    }
    if (isset ($_POST['chambre'] )) {
        $critere[] = "chambre = 1"; 
     
    }
    if(isset ($_POST['logement'] )) {
        $critere[] = "logement = 1"; 
     
    }
    $sql = 'SELECT * FROM dormir';
     
     
    if (isset($critere)) {
     $sql.= " WHERE " . implode(" AND ", $critere);  
     
    }
     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
     
          //on organise $req en tableau associatif  $data['champ']
            //en scannant chaque enregistrement récupéré
            //on en profite pour gérer l'affichage
     
    		 //boucle
            while ($row_Rsselogerreponses = mysql_fetch_array($req))
     
    ?>
     
    <?php echo '<p></p>'; ?>
     
       <?php do { ?>
           <a class ="palatino16blanc" ><a href="selogerreponsesancienagarder.php?id= <?php echo $row_Rsselogerreponses['id']; ?>">
         <?php echo $row_Rsselogerreponses['nom']. '<br />'; ?></a></a>
     
          <a class ="palatino14gris" > <?php echo $row_Rsselogerreponses['adresse'].'<br />' ;?></a> 
     
          <a class ="palatino14grisitalic" >   <?php echo '________________________________ '?></a>
    	  <?php echo " ",'<br />'; ?> 
          <?php } while ($row_Rsselogerreponses = mysql_fetch_assoc($Rsselogerreponses)); ?>
     
     </div>
     
     
      <div id="colonnereponsedetailleetitre"></div>
    <div class="palatino14gris" id="colonnereponsedetaillee">
    <?php echo '<p></p>'; ?>
    <span class="palatino16blanc"><?php echo $row_Rsreponsedetails['nom']. '<br />'; ?></span> 
    <?php echo $row_Rsreponsedetails['adresse']. '<br />'; ?> 
    <?php echo $row_Rsreponsedetails['contact']. '<br />'; ?>
    <?php echo '<p>    </p> ';?>
     Bénéficiaires : <?php echo $row_Rsreponsedetails['beneficiaires']. '<br />'; ?>
     Heures d'ouverture : <?php echo $row_Rsreponsedetails['heuresdouverture']. '<br />'; ?>
     <?php echo '<p></p>'; ?>
     Plan : <?php echo '<p></p>'; ?> <?php echo $row_Rsreponsedetails['map']. '<br />'; ?>
     <?php echo '<p></p>'; ?><?php echo $row_Rsreponsedetails['photomap']; ?>
     
      </div>

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme je te l'ai déjà dit, cette ligne ne rime a rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php } while ($row_Rsselogerreponses = mysql_fetch_assoc($Rsselogerreponses)); ?>

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <?php do { ?>
     
    <?php } while ($row_Rsselogerreponses = mysql_fetch_assoc($Rsselogerreponses)); ?>
    C'est une région répétée. Si je l'enlève je n'obtiens que le premier enregistrement qui ne veut d'ailleurs toujours pas s'afficher et je ne trouve pas non plus pourquoi.

    Quand je mets ce comportement de dreamweaver, j'obtiens la lecture des enregistrements
    mais peut-être faut-il que je procède autrement pour obtenir non l'affichage des 10 premiers enregistrements mais seulement ceux définis par le tri du formulaire.
    Help!

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La boucle qui lit les enregistrements c'est celle la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($row_Rsselogerreponses = mysql_fetch_array($req))
    Si tu ne veux que 10 enregistrements ajoute LIMIT 10 à la fin de la requête.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    J'ai enlevé la région répétée d'affichage.
    Je n'ai plus en réponse que le premier enregistrement qui ne 'affiche même pas (mais ça, ça le faisait même avec la région répétée)
    mais je pense que le vrai problème est d'obtenir un tri qui ne se fait pas.
    Et ça, je ne sais pas faire. Si tu peux voir où est la faille, je suis preneur.
    Encore merci de ton aide.

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ecris ton code proprement
    - en supprimant les ouvertures/fermetures du code PHP incessantes
    - en indentant nettement entre le debut du while et sa fin et en mettant bien les {}

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php echo '<p></p>'; ?>
    <span class="palatino16blanc"><?php echo $row_Rsreponsedetails['nom']. '<br />'; ?></span> 
    <?php echo $row_Rsreponsedetails['adresse']. '<br />'; ?>
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '<span class="palatino16blanc">' . $row_Rsreponsedetails['nom']. '<br /></span>'
    . $row_Rsreponsedetails['adresse']. '<br />';

    On y verra plus clair

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Super! Super! ET UN GRAND MERCI.
    Comme tu me l'as conseillé, j'ai enlevé la région répétée, J'ai nettoyé un peu le code comme j'ai pu pour les réponses.
    Le tri se fait tout à fait correctement.
    Maintenant, il me reste un dernier petit souci :
    quand je clique sur le nom d'un hébergement dans la page réponse, j'obtiens bien le détail mais l'affichage de la colonne des hébergements sélectionnés passe à un affichage de tous les enregistrements. (J'ai enlevé la limite de 10 que j'avais mise.)
    Comment faire pour garder les résultats sélectionnés?

    Merci de m'aider à terminer.



    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
     
    <div id="colonnereponsetitre"></div>
     
    <div class="palatino14gris" id= "colonnereponse">
        <?php
     
     
    $sql = 'SELECT * FROM dormir WHERE 1=1 ';
     
    if (isset ($_POST['homme'] )) {
        $sql .= " AND homme = 1 "; 
     
    }
    if (isset ($_POST['femme'] )) {
        $sql .= " AND femme = 1 "; 
     
    }
    if(isset ($_POST['couple'] )) {
        $sql .= " AND couple = 1 ";  
     
    }
    if (isset ($_POST['animaux'] )) {
        $sql .= " AND animaux = 1 ";
     
    }
    if (isset ($_POST['enfants'] )) {
        $sql .= " AND enfants = 1 ";
     
    }
    if(isset ($_POST['foyer'] )) {
        $sql .= " AND foyer = 1 "; 
     
    }
    if (isset ($_POST['chambre'] )) {
        $sql .= " AND chambre = 1 "; 
     
    }
    if(isset ($_POST['logement'] )) {
        $sql .= " AND logement = 1 "; 
     
    }
     
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
     
          //on organise $req en tableau associatif  $data['champ']
            //en scannant chaque enregistrement récupéré
            //on en profite pour gérer l'affichage
     
    		  //boucle
            while ($row_Rsselogerreponses = mysql_fetch_array($req))
     
     
       {        
              // on affiche les résultats 
     
     echo '<p></p>'; ?>
      <a class ="palatino16blanc"><a href="selogerreponsesancienagarder.php?id=<?php echo $row_Rsselogerreponses['id']; ?>"><?php echo $row_Rsselogerreponses['nom']. '<br />'; ?></a></a> 
      <a class ="palatino14gris" ><?php echo $row_Rsselogerreponses['adresse'].'<br />' ;?></a>
      <a class ="palatino14grisitalic" > <?php echo '________________________________ '?></a> 
      <?php echo " ",'<br />';}?></div>
     
     
     
    <div id="colonnereponsedetailleetitre"></div>
    <div class="palatino14gris" id="colonnereponsedetaillee">
    <?php echo 
    '<p></p>',
    $row_Rsreponsedetails['nom'].'<br />', 
    $row_Rsreponsedetails['adresse']. '<br />',
    $row_Rsreponsedetails['contact']. '<br />',
    '<p></p>',
    "Bénéficiaires : ",$row_Rsreponsedetails['beneficiaires'].'<br />',
    "Heures d'ouverture : ",$row_Rsreponsedetails['heuresdouverture'].'<br />',
    '<p></p>',
    "Plan :", '<br />',
    $row_Rsreponsedetails['map'].'<br />' ; ?>
     
      </div>
     
    </div>
     
    <?php mysql_free_result ($req);  
     
            //On ferme sql
            mysql_close ();  ?>
    <?php
    mysql_free_result($Rsselogerreponses);
     
    mysql_free_result($Rsreponsedetails);
    ?>

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Deux possibilités pour conserver les données de page en page :
    - passer les paramètres dans ton lien
    - utiliser une session PHP

Discussions similaires

  1. formulaire- que les réponses soient publiées et visibles de tous
    Par hariboum dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 29/03/2012, 13h43
  2. formulaire + recuperé les réponses
    Par lol88 dans le forum Langage
    Réponses: 4
    Dernier message: 24/11/2009, 22h41
  3. [formulaire (QCM)] denombrer les réponses
    Par namstou3 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/07/2007, 18h33
  4. Réponses: 2
    Dernier message: 03/11/2005, 20h48

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