8791 sujets

Développement web côté serveur, CMS

Bonsoir à tous !

Pour mon premier post sur ce forum, Je souhaiterai faire appel à vos connaissance afin d'éclairer mon problème Smiley smile

Mon projet se compose de la sorte :

- La page d'accueil listera les différents support (Playstation, Dreamcast, N64, ect... )

- Apres sélection, une nouvelle page apparaîtra et listera touts les jeux relatifs au support sélectionné ( transfert des données via l'url par la method GET puis capture de la variable au sein de la requête SQL au niveau de la page de résultat)

- Un menu de recherche en haut de la page donnera la possibilité au visiteur de filtrer à nouveau sa recherche grâce à un champ de type-text "recherche" et à une liste déroulante dynamique résumant les différents genre proposés (Select)

Cette dernière étape affichera sur une nouvelle page les résultats alors filtré par la balise SELECT ou par le champ recherche de type text OU les deux en même temps Smiley murf

A l'heure actuelle, la page d'accueil est finalisé ainsi que la deuxième étape concernant les jeux relatifs au support. Malheureusement je bloque complètement sur la troisième c'est pourquoi je m'adresse à vous !

En résumé, est-il possible d'obtenir un tel résultat avec du PHP ?



Voici les codes :

Accueil


<div id="div1">

<p align="right">
<a href="Support/Playstation.php?s=play1" title="playstation">Playstation</a><br>
<a href="Support/Dreamcast.php?s=dream" title="Dreamcast">Dreamcast</a><br>
<a href="...................
</p>


</div>



Page listant les jeux :



<div id="text">

<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=Cat', 'root', '');
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}


$req = $bdd->prepare('SELECT * FROM jeux WHERE support = ?');
$req->execute(array($_GET['s']));


while ($donnees = $req->fetch())

{

?>



<hr>

<div id="titre">

<?php echo $donnees['Titre'];?>

</div>


<div id="des">

<div id="header">

<strong><?php echo $donnees['text'];?></strong> <br>

</div>

<?php echo $donnees['genre'];?> <br>
<br>

<strong><?php echo $donnees['annee'];?>€<br></strong> <br>

</div>



<?php
}

$req->closeCursor(); 

?>


</div>




Menu de recherche interne au Support :




<div id="recherche">


<form action="URL" method="GET">

<input type="text" name="mot" placeholder="Mots clés..." style="height:30px; width: 500px;">


<select name="genre" size="1">


<option value="1">Action</option>
<option value="2">Course</option>
<option value="3">Tir</option>
<option value="4">Aventure</option>
<option value="5">RPG</option>
<option value=".....


</select>


<input type="submit" value="chercher" style="margin-left:20px; width:150px;">

</div>

Modifié par xero (07 Oct 2012 - 17:04)
Salut,

Pourquoi plusieurs pages pour ci peu?

Un formulaire de recherche et une page de résultats suffisent, nan?


<form action="/mapageresultat/" method="post">
  <input type="text" name="recherche" />
  <select name="console">
    <option value="360">XBox 360</option>
    <option value="ps">Playstation</option>
  </select>
</form>
Salut JJk801 !
Oui sa pourrait être une solution mais je tiens vraiment à garder cet aspect " listé " dés le départ Smiley biggrin !
Modifié par xero (02 Oct 2012 - 21:25)
Pas sur d'avoir compris le problème. Si c'est ce que je pense, tu fais une requête différente selon le champ rempli

if ($_POST['champtexte'] != "" && !isset($_GET['variableselect'])
{
   requete 1
}
else if ($_POST['champtexte'] != "")
{
   requete 2
}
else
{
   requete 3
}

Modifié par MattBPA (02 Oct 2012 - 22:38)
Après plusieurs essai raté je pense avoir trouvé la solution !

J'ai inséré à la page deux un champ de type Hidden gardant en mémoire le support sélectionné, + la variable de la balise SELECT qui sélectionne le genre.
J'ai envoyé le tout vers une page nommée "Recherche.php" en POST et miracle le filtrage fonctionne Smiley langue

Le code :



<form action="recherche.php" method="POST">

<input type="text" name="mot" placeholder="Mots clés..." style="height:30px; width: 500px;">

<input type="hidden" name="support" value="Dream">

<select name="genre" size="1">
.................
.....................
</select>



Requête SQL :




$req = $bdd->prepare('SELECT * FROM offres WHERE genre = ? AND support = ?');
$req->execute(array($_POST['genre'], $_POST['support']));


Modifié par xero (02 Oct 2012 - 23:45)