A voir également:
- Probleme php sql
- Easy php - Télécharger - Divers Web & Internet
- Récupération serveur sql - Télécharger - Gestion de données
- Sql lister les tables ✓ - Forum Programmation
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
9 réponses
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
219
Modifié par tryan44 le 12/06/2012 à 16:56
Modifié par tryan44 le 12/06/2012 à 16:56
Voici comment je procéderai (ce n'est peut être pas la meilleurs solution et je ne sais pas si ça fonctionne) :
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
<?php //La page est rechargé if(isset($_POST["categorie"])){ //on sélectionne tout ce qui correspond à la catégorie envoyé par POST $PointsMaps = mysql_query('SELECT * FROM map WHERE cat_id = '.$_POST['categorie'].''); } else{ //La page n'est pas rechargé, on sélectionne tout par défaut $PointsMaps = mysql_query('SELECT * FROM map'); } //on boucle while ($donnees = mysql_fetch_array($PointsMaps)) { $nom = stripslashes($donnees['nom']); $prenom = stripslashes($donnees['prenom']); $adresse = stripslashes($donnees['adresse']); $ville = stripslashes($donnees['ville']); $pays = stripslashes($donnees['pays']); $numero = stripslashes($donnees['numero']); $mail = stripslashes($donnees['mail']); $info = stripslashes($donnees['info']); $horaire = stripslashes($donnees['horaire']); $cat1 = stripslashes($donnees['cat1']); $cat2 = stripslashes($donnees['cat2']); $cat3 = stripslashes($donnees['cat3']); $cat4 = stripslashes($donnees['cat4']); $map->disableDirections(); $map->addMarkerByAddress($adresse.' '.$ville.' '.$pays ,$adresse ,$adresse.' '.$ville .'<br>'.$info.'<br>'.$numero.'<br>'.$mail.'<br>'.$horaire, $adresse); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Carte </title> <?php $map->printHeaderJS(); ?> <?php $map->printMapJS(); ?> </head> <body onload="onLoad();"> <?php $map->printMap();?> <form name="formulaire" method="POST"> <!-- à la sélection du formulaire on recharge la page--> <select name="categorie" onchange="javascript:submit(this)"> <option value="0">Choix</option> <?php //on sort les catéorie $query = mysql_query("SELECT cat_id,catNom FROM categorie"); while($categorie = mysql_fetch_array($query)) { echo '<option value=\''.$categorie['cat_id'].'\'>'.$categorie['catNom'].'</option>'; } ?> </select> </form> </body> </html>
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
219
11 juin 2012 à 20:50
11 juin 2012 à 20:50
Salut,
Cette partie de point doit s'afficher sous quelle conditions?
Cette partie de point doit s'afficher sous quelle conditions?
Ces points doivent s'afficher sous la condition de la sélection du nom de catégorie dans un menu déroulant.
En gros, j'ai un menu de 4 entrées différentes, en fonction du choix fait (catégorie 1, catégorie 2, catégorie 3 ou catégorie 4) je voudrais que les points ayant pour catégorie la "catégorie 1" s'affichent, mais pas les autres. C'est ni plus ni moins qu'un filtrage par catégorie comme sur beacoup de sites (e-bay, leboncoin etc...) mais c'est plus simple à dire qu'à faire.
En gros, j'ai un menu de 4 entrées différentes, en fonction du choix fait (catégorie 1, catégorie 2, catégorie 3 ou catégorie 4) je voudrais que les points ayant pour catégorie la "catégorie 1" s'affichent, mais pas les autres. C'est ni plus ni moins qu'un filtrage par catégorie comme sur beacoup de sites (e-bay, leboncoin etc...) mais c'est plus simple à dire qu'à faire.
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
219
12 juin 2012 à 13:01
12 juin 2012 à 13:01
Dans l'hypothèse que la table qui contient les données des points possède un champ qui contient les numéros des catégories associées, il suffit de faire une simple condition avec la clause "WHERE" :
ou "$categorie" correspond à la sélection du menu déroulant (POST ou GET).
SELECT * FROM ma_table WHERE id_categorie = $categorie
ou "$categorie" correspond à la sélection du menu déroulant (POST ou GET).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est justement ce que je fais,mais je pense qu'il y a un souci quelque part, j'utilise la méthode "GET" pour mon formulaire de choix, la selection se fait, mais rien ne change dans mes marqueurs. Voici le code que je fais :
$PointsMaps = mysql_query('SELECT * FROM map'); --> création de mes points
while ($donnees = mysql_fetch_array($PointsMaps))
{
$nom = stripslashes($donnees['nom']);
$prenom = stripslashes($donnees['prenom']);
$adresse = stripslashes($donnees['adresse']);
$ville = stripslashes($donnees['ville']);
$pays = stripslashes($donnees['pays']);
$numero = stripslashes($donnees['numero']);
$mail = stripslashes($donnees['mail']);
$info = stripslashes($donnees['info']);
$horaire = stripslashes($donnees['horaire']);
$cat1 = stripslashes($donnees['cat1']);
$cat2 = stripslashes($donnees['cat2']);
$cat3 = stripslashes($donnees['cat3']);
$cat4 = stripslashes($donnees['cat4']);
$map->disableDirections();
$map->addMarkerByAddress($adresse.' '.$ville.' '.$pays ,$adresse ,$adresse.' '.$ville .'<br>'.$info.'<br>'.$numero.'<br>'.$mail.'<br>'.$horaire, $adresse);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Carte </title>
<?php $map->printHeaderJS(); ?>
<?php $map->printMapJS(); ?>
</head>
<body onload="onLoad();">
<?php $map->printMap();?>
<form method="GET" action="" > ---> ma méthode GET
trier par :
<?php
$query = mysql_query("SELECT cat_id,catNom FROM categorie");
$id = stripslashes($donnees['cat_id']);
echo('<select name="categorie">');
if($produit=="")
{
echo('<option value="\' . $cat_id' . '">< Choisir ></option>');
}
else
{
echo('<option value="\' . $cat_id' . '">'.'</option>');
}
while ($ligne1=mysql_fetch_object($query))
{
//la concatenation des champs se fait ici
echo('<option VALUE=">'.$ligne1->cat_id .'">' . $ligne1->catNom. $ligne1->NULL.'</option>');
}
echo('</select>');
/*if ($ligne1 = $id) ---> Partie d'essaie mais pas concluante
{
$requete = mysql_query("SELECT * from map WHERE cat1 = $ligne1 OR cat2 = $ligne1 OR cat3= $ligne1 OR cat4 = $ligne1 OR cat5 = $ligne1");
$query = mysql_result($requete);
echo $query;
}*/
mysql_close();
?>
<?php $SQL='SELECT * FROM map WHERE cat_id = '.$_GET['cat_id'];?> ---> Ma requête avec le WHERE
<input type="submit" name="Envoyer" name="envoyer">
</form>
</body>
</html>
$PointsMaps = mysql_query('SELECT * FROM map'); --> création de mes points
while ($donnees = mysql_fetch_array($PointsMaps))
{
$nom = stripslashes($donnees['nom']);
$prenom = stripslashes($donnees['prenom']);
$adresse = stripslashes($donnees['adresse']);
$ville = stripslashes($donnees['ville']);
$pays = stripslashes($donnees['pays']);
$numero = stripslashes($donnees['numero']);
$mail = stripslashes($donnees['mail']);
$info = stripslashes($donnees['info']);
$horaire = stripslashes($donnees['horaire']);
$cat1 = stripslashes($donnees['cat1']);
$cat2 = stripslashes($donnees['cat2']);
$cat3 = stripslashes($donnees['cat3']);
$cat4 = stripslashes($donnees['cat4']);
$map->disableDirections();
$map->addMarkerByAddress($adresse.' '.$ville.' '.$pays ,$adresse ,$adresse.' '.$ville .'<br>'.$info.'<br>'.$numero.'<br>'.$mail.'<br>'.$horaire, $adresse);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Carte </title>
<?php $map->printHeaderJS(); ?>
<?php $map->printMapJS(); ?>
</head>
<body onload="onLoad();">
<?php $map->printMap();?>
<form method="GET" action="" > ---> ma méthode GET
trier par :
<?php
$query = mysql_query("SELECT cat_id,catNom FROM categorie");
$id = stripslashes($donnees['cat_id']);
echo('<select name="categorie">');
if($produit=="")
{
echo('<option value="\' . $cat_id' . '">< Choisir ></option>');
}
else
{
echo('<option value="\' . $cat_id' . '">'.'</option>');
}
while ($ligne1=mysql_fetch_object($query))
{
//la concatenation des champs se fait ici
echo('<option VALUE=">'.$ligne1->cat_id .'">' . $ligne1->catNom. $ligne1->NULL.'</option>');
}
echo('</select>');
/*if ($ligne1 = $id) ---> Partie d'essaie mais pas concluante
{
$requete = mysql_query("SELECT * from map WHERE cat1 = $ligne1 OR cat2 = $ligne1 OR cat3= $ligne1 OR cat4 = $ligne1 OR cat5 = $ligne1");
$query = mysql_result($requete);
echo $query;
}*/
mysql_close();
?>
<?php $SQL='SELECT * FROM map WHERE cat_id = '.$_GET['cat_id'];?> ---> Ma requête avec le WHERE
<input type="submit" name="Envoyer" name="envoyer">
</form>
</body>
</html>
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
219
12 juin 2012 à 14:14
12 juin 2012 à 14:14
Je ne suis pas un fan de votre code ( je code à l'ancienne :)).
Vous ne récupérez pas la valeur du formulaire la ou je me plante?
ça ne serait pas plutôt $_GET['categorie']?
<?php $SQL='SELECT * FROM map WHERE cat_id = '.$_GET['cat_id'];?>
Vous ne récupérez pas la valeur du formulaire la ou je me plante?
ça ne serait pas plutôt $_GET['categorie']?
Merci de votre réponse rapide, mais lorsque je change mon $_GET et que je met ['categorie'] le navigateur me dit :
Notice: Undefined index: categorie in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\carte\map2.php on line 91
ça c'est normal parce que je ne sélectionne pas de catégorie. Une fois qu'un choix est fait, l'erreur disparaît, mais le filtrage ne s'applique pas. Si vous avez d'autres suggestion je suis à votre écoute parce-que cela fais déjà 4 forum où je poste mon problème et personnes n'a su m'aider, pourtant dans l'idée j'ai pas l'impression de faire quelque chose de compliqué, ebay le propose, leboncoin le propose (par region ou genre d'objet), je dois avoir un problème dans la rédaction de la fonction de filtrage mais je ne sais pas où ^^
Notice: Undefined index: categorie in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\carte\map2.php on line 91
ça c'est normal parce que je ne sélectionne pas de catégorie. Une fois qu'un choix est fait, l'erreur disparaît, mais le filtrage ne s'applique pas. Si vous avez d'autres suggestion je suis à votre écoute parce-que cela fais déjà 4 forum où je poste mon problème et personnes n'a su m'aider, pourtant dans l'idée j'ai pas l'impression de faire quelque chose de compliqué, ebay le propose, leboncoin le propose (par region ou genre d'objet), je dois avoir un problème dans la rédaction de la fonction de filtrage mais je ne sais pas où ^^
Bonjour et merci pour votre aide, votre code à l'air de fonctionner, j'ai tout ce qu'il faut après avoir ajouté ma connection à la base de données avec mysql_connect et mysql_db, mais malheureusement il reste une erreur à partir du moment où je fais le choix de catéorie.
L'erreur c'est :
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\carte\carte_ccm.php on line 32
la ligne 32 c'est : while ($donnees = mysql_fetch_array($PointsMaps))
J'ai déjà eu ce souci mais j'avais réussi à le régler, mais la question c'est "comment j'ai fait déjà" ^^
Si vous pouviez me donner un dernier coup de main et régler ce soucis, mon projet serait enfin bouclé et je pourrais le mettre en ligne.
Merci encore et à très bientôt.
L'erreur c'est :
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\carte\carte_ccm.php on line 32
la ligne 32 c'est : while ($donnees = mysql_fetch_array($PointsMaps))
J'ai déjà eu ce souci mais j'avais réussi à le régler, mais la question c'est "comment j'ai fait déjà" ^^
Si vous pouviez me donner un dernier coup de main et régler ce soucis, mon projet serait enfin bouclé et je pourrais le mettre en ligne.
Merci encore et à très bientôt.
Problème résolue, en fait, dans votre code vous aviez marqué :
if(isset($_POST["categorie"]))
{
//on sélectionne tout ce qui correspond à la catégorie envoyé par POST
$PointsMaps = mysql_query('SELECT * FROM map WHERE cat_id = '.$_POST['categorie'].' )
}
En réalité il aurait fallu écrire à la place de cat_id --> "cat1", "cat2", "cat3", "cat4" et "cat5" .
Dans la table map je n'avais pas d'entrée "cat_id", celle là était dans la table categorie.
Enfin ça marche, merci encore de votre aide utiliser le javascript était une bonne idée et franchement ça à beaucoup alléger mes lignes de codes à rallonge pour la sélection de catégorie ^^
Merci du temps que vous m'avez accordé, bonne continuation et peut-être à bientôt si j'ai d'autres problèmes en php et sql ;)
if(isset($_POST["categorie"]))
{
//on sélectionne tout ce qui correspond à la catégorie envoyé par POST
$PointsMaps = mysql_query('SELECT * FROM map WHERE cat_id = '.$_POST['categorie'].' )
}
En réalité il aurait fallu écrire à la place de cat_id --> "cat1", "cat2", "cat3", "cat4" et "cat5" .
Dans la table map je n'avais pas d'entrée "cat_id", celle là était dans la table categorie.
Enfin ça marche, merci encore de votre aide utiliser le javascript était une bonne idée et franchement ça à beaucoup alléger mes lignes de codes à rallonge pour la sélection de catégorie ^^
Merci du temps que vous m'avez accordé, bonne continuation et peut-être à bientôt si j'ai d'autres problèmes en php et sql ;)