Affichage de données selon choix du visiteur

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Affichage de données selon choix du visiteur

Message le Dim Mai 28, 2006 20:36

Bonjour ...

je suis en train de developper un script mais je bloque ...

je voudrais faire un affichage des données d'une table mais en fonction d'un choix possible pour le visiteur ... exemple il a deux listes deroulantes et on affiche selon les options des listes ... avec un affichage par defaut qui n'est pas dans les listes ...

je sais pas du tout comment faire cela ... qqun pourrais me mettre sur la voie ?

mon formulaire d'ajout de données dans la table est deja réalisé et fonctionne parfaitement ...

Code: Tout sélectionner
<body>
            <form method="post" action="ajout.php">
                  <div align="center">
                    <p>&nbsp;</p>
                    <p class="Style1">Ajout d'une astuce </p>
                    <table align="center" width="80%" border="0">
                      <tr align="right">
                        <td colspan="2" valign="middle"><div align="center">
                          <p>Titre :
                            <input name="titre" type="text" value="Titre de l'astuce ..." size="80" maxlength="255" />
                          </p>
                          </div></td>
        </tr>
                      <tr align="center" valign="middle">
                        <td width="49%" align="right" valign="middle"><div align="center">
                          <p>Catégorie :
                            <select name="categorie">
                              <option value="optimisation">Optimisation</option>
                              <option value="systeme">Système</option>
                              <option value="securite">Sécurité</option>
                              <option value="internet">Internet</option>
                              <option value="reseau">Réseau</option>
                              <option value="personalisation">Personalisation</option>
                              <option value="autres">Autres</option>
                            </select></p>
                          </div></td>
          <td width="51%" align="center" valign="middle"><div align="center">
            <p>O.S. :
                      <select name="os">
                          <option value="winnt">Windows NT</option>
                          <option value="win2k">Windows 2000</option>
                          <option value="winxphome">Windows XP Familial</option>
                          <option value="winxppro">Windows XP Pro</option>
                          <option value="win2003serveur">Windows 2003 Serveur</option>
                          <option value="win98">Windows 98</option>
                          <option value="win95">Windows 95</option>
                    </select></p>
            </div></td>
        </tr>
                <tr align="center">
                        <td colspan="2" valign="middle">
                                <div align="center">
                                <textarea name="preview" rows="5" cols="90">Preview ici.</textarea>
                                </div>
                                </td>
                  </tr>
                      <tr align="right">
                        <td colspan="2" valign="middle"><div align="center">
                          <p>
                            <textarea name="contenu" rows="20" cols="90">Votre astuce ici.</textarea>
                          </p>
            <p><input type="submit" value="Ajouter" /></p>
          </div></td>
        </tr>
                    </table>
              </div>
            </form>
               
                <?php
mysql_connect("******", "*******", "****");
mysql_select_db("*********");

$preview = nl2br($preview); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

$contenu = nl2br($contenu); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

mysql_query("INSERT INTO astuces VALUES('', '" . $titre . "', '" . $preview . "', '" . $contenu . "', '" . $categorie . "', '" . $os . "')");
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
</body>


Merci d'avance


schtroumpf
WRInaute impliqué
WRInaute impliqué
 
Messages: 382
Inscription: Dim Oct 26, 2003 11:46

Message le Lun Mai 29, 2006 8:23

Si j'ai bien compris, c'est une sorte de moteur de recherche que tu veux faire.
Ce n'est pas compliqué :
- tu crée un formulaire avec les listes pour que l'utilisateur choisisse l'(les)item(s) qu'il veut voir.
- tu récupère les donnée du formulaire
- tu récupère les données voulues via une requète :
Code: Tout sélectionner
SELECT * FROM table1, table2, ... WHERE param1='donnée_formulaire1', param2='donnée_formulaire2'

- tu affiches les données.

Arnaud

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Lun Mai 29, 2006 11:22

merci pour cette reponse .. je n'ai pas le temps de voir ca haujourd'hui ... peut etre ce soir ... je te tient au courrant ...

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Mar Mai 30, 2006 11:09

j'ai essayer de travailler sur mon script mais j'ai encore qques soucis ..

voila le code de la page affichage.php

Code: Tout sélectionner
<body>
<form method="post" action="affichage.php">
<table width="100%" border="0">
  <tr>
    <td align="center" height="50" colspan="2">Catégorie :
      <select name="choix1">
        <option value="all" selected="selected">toutes</option>
              <option value="optimisation">Optimisation</option>
              <option value="systeme">Syst&egrave;me</option>
              <option value="securite">S&eacute;curit&eacute;</option>
              <option value="internet">Internet</option>
              <option value="reseau">R&eacute;seau</option>
              <option value="personalisation">Personalisation</option>
              <option value="autres">Autres</option>
          </select>
    <br />
      O.S. :
        <select name="choix2">
          <option value="all" selected="selected">tous</option>
              <option value="winnt">Windows NT</option>
              <option value="win2k">Windows 2000</option>
              <option value="winxphome">Windows XP Familial</option>
              <option value="winxppro">Windows XP Pro</option>
              <option value="win2003serveur">Windows 2003 Serveur</option>
              <option value="win98">Windows 98</option>
              <option value="win95">Windows 95</option>
        </select>
      <br />
      <input type="submit" value="Ok" />
      </td>
  </tr>
  <tr>
    <td width="44%" height="287" align="left" valign="middle">
<?php
mysql_connect("localhost", "********", "********");
mysql_select_db("********");

$reponse = mysql_query('SELECT * FROM astuces WHERE $choix1, $choix2');

while ($donnees = mysql_fetch_array($reponse))
{
    echo '<p>' . $donnees['categorie'] . ' <br />' . $donnees['os'] . ' <br />' . $donnees['preview'] . ' <br />' . $donnees['titre'] . ' <br />' . $donnees['contenu'] . '</p>';
}

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
</td>
  </tr>
</table>
</form>
</body>


suite a ca il me met l'erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\www\optim-pc.com\htdocs\astuces\affichage.php on line 47 qui est la ligne :
Code: Tout sélectionner
while ($donnees = mysql_fetch_array($reponse))


je ne vois quel argument pourrait etre invalid ... qqun vois mon erreur ?

merci d'avance


schtroumpf
WRInaute impliqué
WRInaute impliqué
 
Messages: 382
Inscription: Dim Oct 26, 2003 11:46

Message le Mar Mai 30, 2006 14:41

A mon avis, c'est ta requète qui n'est pas bonne. Du coup mysql_query renvoit 'false'.
Dans la clause WHERE, sépare les tests par AND à la place de la virgule.

Arnaud

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Mar Mai 30, 2006 15:26

j'ai fais ce que tu m'as dit et rien ... toujours une erreur ...

j'ai essayer le code
Code: Tout sélectionner
$reponse = mysql_query('SELECT * FROM astuces WHERE categorie='$choix1' AND os='choix2' ');


Parse error: syntax error, unexpected T_VARIABLE

et

Code: Tout sélectionner
$reponse = mysql_query('SELECT * FROM astuces WHERE categorie=$_POST['choix1'] AND os=$_POST['choix2'] ');


Parse error: syntax error, unexpected T_STRING

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Mar Mai 30, 2006 16:00

j'ai mis la ligne suivante :

Code: Tout sélectionner
$reponse = mysql_query('SELECT * FROM astuces WHERE categorie="$choix1" AND os="$choix2" ');


et plus d'erreur ...

par contre je n'ai pas d'affichage de mes donnees ...

j'ai ceci juste apres ma requete :

Code: Tout sélectionner
while ($donnees = mysql_fetch_array($reponse))
{
    echo '<p>' . $donnees['categorie'] . ' <br />' . $donnees['os'] . ' <br />' . $donnees['titre'] . ' <br />' . $donnees['preview'] . ' <br />' . $donnees['contenu'] . '</p>';
}
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>


je vois pas trop ou ca coince non plus lol


schtroumpf
WRInaute impliqué
WRInaute impliqué
 
Messages: 382
Inscription: Dim Oct 26, 2003 11:46

Message le Mar Mai 30, 2006 17:19

Ok, y'avait un problème avec les " et '. Essaie de te familiariser avec leur emploi, ça t'évitera bien des problèmes par la suite.

Pour le dernier point, je ne vois pas. Ta requète est bien censée donner un résultat non-vide?

Arnaud

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Mar Mai 30, 2006 17:40

en principe j'affiche les donnees en fonction des choix 1 et 2 ...

je ne dois pas avoir de resultat vide ...

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Mer Mai 31, 2006 9:35

j'ai trouver pourquoi je n'avais pas d'affichage ...

j'ai changer ma requete et ca fonctionne ...

Code: Tout sélectionner
$reponse = mysql_query("SELECT * FROM `astuces` WHERE `categorie`='".$choix1."' AND `os`='".$choix2."'");


reste a faire l'affichage par defaut qd le visiteur arrive et avant qu'il fasse un choix :)

DaMonkey
WRInaute discret
WRInaute discret
 
Messages: 79
Inscription: Ven Fév 20, 2004 20:16

Message le Mer Mai 31, 2006 10:35

après ta requête, met ce code afin de voir ou se trouve l'erreur :

Code: Tout sélectionner
$reponse = mysql_query("SELECT * FROM `astuces` WHERE `categorie`='".$choix1."' AND `os`='".$choix2."'") OR die ("Impossible d'exécuter la requête : ".mysql_error());


Et vois où est le problème...

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Mer Mai 31, 2006 16:59

en fait je n'ai plus de probleme a proprement parler :)

pour l'instant tout fonctionne ...

il faut juste que j'affiche tous les champs "titres" sur la page a l'arrivee du visiteur avant qu'il fasse un choix ... ce qui m'amene a la question ...

une variable de formulaire est elle vide par defaut ? avant de faire un choix et valider par le bouton ...

si oui je pense savoir comment faire mon petit shmilblique :p


schtroumpf
WRInaute impliqué
WRInaute impliqué
 
Messages: 382
Inscription: Dim Oct 26, 2003 11:46

Message le Mer Mai 31, 2006 21:00

GhostShell a écrit:
une variable de formulaire est elle vide par defaut ? avant de faire un choix et valider par le bouton ...

si oui je pense savoir comment faire mon petit shmilblique :p


Pour les input, le paramètre value="valeur" est le texte qui sera présent dans la case. P. ex
Code: Tout sélectionner
<input type="text" name="input1" value="valeur1" />
affichera "valeur1" dans la case.

Pour les textarea, c'est différent et de la forme :
Code: Tout sélectionner
<textarea name="textarea1">ton texte</textarea>


Et pour les select, il faut ajouter selected dans l'option sélectionnée par défaut :
Code: Tout sélectionner
<select name="select1">
<option value"valeur1">valeur1</option>
<option value"valeur2" selected>valeur2</option>
<option value"valeur3">valeur3</option>
</select>


L'option 2 sera sélectionnée par défaut.

Arnaud

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Jeu Juin 01, 2006 0:17

pour moi tout ca c'est bon c'est déjà fait ... ce que je voulais savoir c'est lorsque la page est chargée et avant que le visiteur fasse un choix dans les listes et valide, une variable prends elle une valeur ou est-elle vide ? ... ou $variable == NULL si tu préfères ...

GhostShell
Nouveau WRInaute
 
Messages: 22
Inscription: Jeu Jan 26, 2006 17:49

Message le Sam Juin 03, 2006 9:13

merci pour vos reponses ... mais j'ai fini par trouver ce que je voulais savoir ...


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités