récupération à partie d'une liste déroulante ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : récupération à partie d'une liste déroulante ?

par artotal » 29 juin 2006, 03:42

j'ai trouvé mais c'est petit, tous les champs s'affiche mais par ordre de la catégorie, se qui fait que j'ai quand même la catégorie en premier.
$categorie=$_GET['categorie'];
$select = "SELECT ".$categorie.", leprojet, facultatif FROM eprojet order by ".$categorie." desc";
$result = mysql_query($select,$lien) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
print "nombre d'enregistrement dans cette table :::: ".$total;
if($total) {
    print '<table bgcolor="#FFFFFF">'."\n";
        print '<tr>';
        print '<td bgcolor="#fc6"><b><u>catégorie</u></b></td>';
        print '<td bgcolor="#fc6"><b><u>le projet</u></b></td>';
        print '</tr>'."\n";
    while($row = mysql_fetch_array($result)) {
        print '<tr>';
        print '<td bgcolor="#CCCCCC"> <br />'.$row["$categorie"].'</td>';
        print '<td bgcolor="#CCCCCC"> <br />'.$row["leprojet"].'</td>';
        print '<td bgcolor="#CCCCCC"> <br />'.$row["facultatif"].'</td>';	   	   
    }
    print '</table>'."\n";
}
else print 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);

par artotal » 29 juin 2006, 03:26

J'ai quelque chose de probant, en faisant simple tout va mieux !
Mais là encore je ne comprend pas comment je pourrai afficher d'autre champs qui ne sont pas dans le formulaire transméteur en fonction du résultat de ma variable catégorie, comme tu l'a dit si je ne la spécifie pas dans ma requête elle ne peux s'afficher, mais quand je spéficie l'attribut en question "leprojet" tous les 61 attribut se remplissent. Alors que justement c'est une recherche par la catégorie sélectionner.
Merci
$categorie=$_GET['categorie'];
$select = "SELECT ".$categorie." FROM eprojet";
$result = mysql_query($select,$lien) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
print "nombre de ligne dans cette table :::: ".$total;
if($total) {
    print '<table bgcolor="#FFFFFF">'."\n";
        print '<tr>';
        print '<td bgcolor="#669999"><b><u>catégorie</u></b></td>';
        print '</tr>'."\n";
    while($row = mysql_fetch_array($result)) {
        print '<tr>';
        print '<td bgcolor="#CCCCCC"> <br />'.$row["$categorie"].'</td>';
    }
    print '</table>'."\n";
}
else print 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);

par artotal » 28 juin 2006, 20:59

$numligne=mysql_num_rows($res);
 echo "<p>Nombre de lignes renvoyées ".$numligne."</p>";
mysql me rend 61 enregistrement == au nombre que contient la table et sa pour tous les champs de select.
C'est duraille mysql

par mere-teresa » 28 juin 2006, 17:27

  • As-tu PHPMyAdmin ?
    Peux-tu tester les résultats obtenus par ta requête ?
    select voisinage_convivialite from eprojet
  • Et y a pas un problème là ?
[/color]
$numligne = mysql_num_rows($res);
echo "<p>Nombre de lignes renvoyées ".$res."</p>";
// c'est pas echo $numligne plutôt ?
  • Et puis tu cherches à afficher $row["pseudo"] alors que tu ne fais jamais de SELECT pseudo FROM table...c'est soucieux, non ?
[/color]

par artotal » 28 juin 2006, 16:28

j'ai mis la page ici :
http://creatif-web.be/projet/essai.php
à l'appel la requette arrive, je vais essayer ta solution du test sous mysql de requete.
Mais petite modif :
		foreach ($_REQUEST['categorie'] as $choix) {
		echo " résultat du choix du formulaire :::::::::::::: ".$choix;
		}
	
	$sql="select ".$choix." from eprojet";
	$res=mysql_query($sql) or die("$requete --- " . mysql_error($sql));
	print "<br /><br />La requette est :::::::::::::: '".$sql."'<br />";
	$numligne=mysql_num_rows($res);
 echo "<p>Nombre de lignes renvoyées ".$res."</p>";
// la fonction mysql_num_rows() retourne le nombre de ligne d'un résultat, là je stock...
for ($i=0; $i<$numligne; $i++) {
	// traitement
	$row=mysql_fetch_assoc($res);
	print "<br /><br /><div class='resultatprojet'>".($i+1)."/ 	<span class='red'> ".ucfirst(stripslashes($row["pseudo"]))."</span> nous à communiquer sont projet le <span class='dateprojet'>".$row["date"]."</span></div> ";
	print "<br />Projet dans cette catégorie :<table><tr><td class='contenuprojet'>".$row["$choix"];

	print "<br /><tr><td class='contenuprojet'>".nl2br(stripslashes($row["leprojet"]))."</td><td class='entre'></td>";
	print "<td class='contenuprojet'>Les informations du contributeur de se projet : <br />".stripslashes($row["facultatif"])."</td></tr></table>";
}

print <<<EOA
<form action="essai1.php" method="get">
<div>
par catégorie<br />
  <select name='categorie[]' class='inputtexte' size='16'> 
	<option value='adolescents'>adolescents</option>
	<option value='animaux'>animaux</option>
	<option value='arts_culture'>arts / culture</option>
	<option value='commerces_administrations'>commerces / administrations</option>
	<option value='embellissement_du_quartier'>embellissement du quartier</option>
	<option value='emploi_creation_d_activitee'>emploi / création</option>
	<option value='enfants'>enfants</option>
	<option value='espaces_verts'>espaces verts</option>
	<option value='fetes'>fêtes</option>
	<option value='histoire_temoignages'>histoire & témoignages</option>
	<option value='jeunes'>jeunes</option>
	<option value='loisirs_sports'>loisirs / sports</option>
	<option value='protection_environnement'>protection de l'environnement</option>
	<option value='solidarite_handicap_solitude'>solidarité / handicap / solitude</option>
	<option value='voisinage_convivialite'>voisinage / convivialité</option>
	<option value='autres_domaines'>autres domaines</option>
  </select><br />
 <input type='submit' value='Allez' class='envoie' />
</div>
</form>
EOA;

par mere-teresa » 28 juin 2006, 16:11

Fais un echo $sql;
Regarde comment est réellement la requête (avec les variables dedans) et teste la dans PHPMyAdmin ou Eskuel (si tu as ces outils).

Que donne ta requête, quand tu fais un echo ?

par artotal » 28 juin 2006, 16:07

Alors en faite j'ai refais le script, mais en faite le problème c'est que tous les champs de la tables s'affiche même ceux avec des valeurs vides, d'ailleurs il ne prend en compte que les values='$____' sans traiter les informations, j'y comprend rien ?
$sql="select ".$choix." from eprojet where ".$choix." like ".$choix."";
	$res=mysql_query($sql) or die("$requete --- " . mysql_error($sql));
	$numligne=mysql_num_rows($res);
 echo "<p>".$res."</p>";
// la fonction mysql_num_rows() retourne le nombre de ligne d'un résultat, là je stock...
for ($i=0; $i<$numligne; $i++) {
	// traitement
	$row=mysql_fetch_assoc($res);
	print "<br /><br /><div class='resultatprojet'>".($i+1)."/ 	<span class='red'> ".ucfirst(stripslashes($row["pseudo"]))."</span> nous à communiquer sont projet le <span class='dateprojet'>".$row["date"]."</span></div> ";
	print "<br />Projet dans cette catégorie :<table><tr><td class='contenuprojet'>".$row["$choix"]./*', '.$row["animaux"].', '.$row["arts_culture"].', '.$row["commerces_administrations"].', '.$row["embellissement_du_quartier"].', '.$row["emploi_creation_activite"].', '.$row["enfants"].', '.$row["espaces_verts"].', '.$row["fetes"].', '.$row["histoire_temoignages"].', '.$row["jeunes"].', '.$row["loisirs_sports"].', '.$row["protection_environnement"].', '.$row["solidarité_handicap_solitude"].','.$row["voisinage_convivialite"].', '.$row["autres_domaines"].', '.*/"</td></tr><td></td>";
	print "<br /><tr><td class='contenuprojet'>".nl2br(stripslashes($row["leprojet"]))."</td><td class='entre'></td>";
	print "<td class='contenuprojet'>Les informations du contributeur de se projet : <br />".stripslashes($row["facultatif"])."</td></tr></table>";
}

par artotal » 27 juin 2006, 19:55

en faite avec cette requete :

Code : Tout sélectionner

$requete="SELECT * FROM eprojet ".$cherche_categorie."";
j'ai un résultat approchant, mais il n'y a pas de trie, il me renvoie tous les champs de ma liste ?
Cette requete :

Code : Tout sélectionner

$requete="SELECT ".$cherche_categorie." FROM eprojet";
Me renvoie tous les champs de la catégorie sans distinction ?
J'ai aussi pensé que ma façon de poser le problème ne semble pas optimale ?
Si c'est comme en php je pourrai construire ma requete sur un test :
Mais on ne peux surement pas mettre de PHP

Code : Tout sélectionner

if (isset($cherche_categorie)) print 'SELECT * FROM eprojet ".$cherche_categorie."'; $requete="SELECT * FROM eprojet ".$cherche_categorie."";

par guilt92 » 27 juin 2006, 09:14

Euh je ne comprend pas ta requete... La clause WHERE sert a definir une conidition spécial, par exemple WHERE variable=2, pour dire de selectionner les valeur ou tel champ est égal a telle valeur.

Ainsi un "SELECT * FROM eprojet where protection_environnement" est incompléte, tu lui demande de selectionner la où protection_environnement. Il manque quelque chose, c est un peu comme demander "Quelle est la différence entre un pigeon ? (coluche ;) )

Bref soit tu veux tous les résultats , alors la requete : SELECT * FROM eprojet

ou alors ceux ou le champ contient une valeur particulière qu il faut spécifier...

récupération à partie d'une liste déroulante ?

par artotal » 27 juin 2006, 02:16

Bonjour,
je cherche à récupérer à parir d'un formulaire des données donc j'ai écris sa :
PS : le moteur de recherche visible ici
http://creatif-web.be/projet/projet.php

Alors pourtant ma requete ne contient rien de spécial, ainsi en fonction de la catégorie choisis, j'ai bien le champs afficher

Code : Tout sélectionner

SELECT * FROM eprojet where protection_environnement
Je patauge...
xhtml

Code : Tout sélectionner

<li> <form action="http://creatif-web.be/projet/resultat_categorie.php" method="post"> <div> par catégorie<br /> <select name='cherche_categorie' class='inputtexte'> <option value="adolescents">adolescents</option> <option value="animaux">animaux</option> <option value="arts_culture">arts / culture</option> <option value="commerces_administrations">commerces / administrations</option> <option value="embellissement_du_quartier">embellissement du quartier</option> <option value="emploi_creation_d_activitee">emploi / création</option> <option value="enfants">enfants</option> <option value="espaces_verts">espaces verts</option> <option value="fetes">fêtes</option> <option value="histoire_temoignages">histoire & témoignages</option> <option value="jeunes">jeunes</option> <option value="loisirs_sports">loisirs / sports</option> <option value="protection_environnement">protection de l'environnement</option> <option value="solidarite_handicap_solitude">solidarité / handicap / solitude</option> <option value="voisinage_convivialite">voisinage / convivialité</option> <option value="autres_domaines">autres domaines</option> </select><br /> <input type='submit' value='Allez' class='envoie' /> </div> </form> </li>
php
$requete="SELECT * FROM eprojet where ".$cherche_categorie."";
$resultat=mysql_query($requete, $lien) or die("$requete --- " . mysql_error());
$numligne=mysql_num_rows($resultat);
 echo "<p>".$requete."</p>";
// la fonction mysql_num_rows() retourne le nombre de ligne d'un résultat, là je stock...
for ($i=0; $i<$numligne; $i++) {
	// traitement
	$row=mysql_fetch_assoc($resultat);
	print "<br /><br /><div class='resultatprojet'>".($i+1)."/ 	<span class='red'> ".ucfirst(stripslashes($row["pseudo"]))."</span> nous à communiquer sont projet le <span class='dateprojet'>".$row["date"]."</span></div> ";
	print "<br />Projet dans cette catégorie :<table><tr><td class='contenuprojet'>". stripslashes($row["adolescents"]) . stripslashes($row["animaux"]) . stripslashes($row["arts_culture"]) . stripslashes($row["commerces_administrations"]) . stripslashes($row["embellissement_du_quartier"]) . stripslashes($row["emploi_creation_activite"]) . stripslashes($row["enfants"]) . stripslashes($row["espaces_verts"]) . stripslashes($row["fetes"]) . stripslashes($row["histoire_temoignages"]) . stripslashes($row["jeunes"]) . stripslashes($row["loisirs_sports"]) . stripslashes($row["protection_environnement"]) . stripslashes($row["solidarité_handicap_solitude"]) . stripslashes($row["voisinage_convivialite"]) . stripslashes($row["autres_domaines"]) ."</td></tr><td></td>";
	print "<br /><tr><td class='contenuprojet'>".nl2br(stripslashes($row["leprojet"]))."</td><td class='entre'></td>";
	print "<td class='contenuprojet'>Les informations du contributeur de se projet : <br />".stripslashes($row["facultatif"])."</td></tr></table>";
}
// mysql_free_result($resultat);
mysql_close($lien);
Merci d'avance[/code]