Nombre de résultats par page

Résolu
Eternity -  
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Alors voila: J'ai fait un beau script de recherche <3 mais le problème c'est qu'il risque d'avoir trop de résultat par page apres une recherche. J'ai cherché un peu partout mais je n'ai pas très bien compris >< ou je n'arrivais pas à l'adapter pour mon code.
Voici mon script: ($global nuked => pour se connecter).
Le site que je fait est un site de vente d'objet virtuel en ligne (objets du jeux acheté avec de l'argent virtuel du dit jeu.)
Et si aussi vous arriviez a comprendre pourquoi quand je clique sur entré quand je suis dans mon formulaire, la page s'actualise, sa m'aiderai beaucoup :p !
Voila le code:


<html>
<body>
<center>
<table border=1>
<tr><td colspan=2 align=center> .: Recherche :.</td></tr>
<tr><td>
<form method="post" action="index.php?file=Page&name=Liste_ventes">
Objet recherché :
</td>
<td>
<input type="text" name="recherche" />
</td>
<tr>
<td>
Mode de recherche :
</td>
<td>
<select name="mode">
<option value="">Type de recherche</option>
<option value="un_mot">Au moins un mot</option>
<option value="expression_exacte">Expression exacte</option>
<option value="tous_les_mots">Tous les mots</option>
</select>
</td>
<tr >
<td height="20" colspan=2 align=center >
<input type="submit" value="Rechercher" name="rechercher" />
</td>
</form>
</tr>
</table>
</center>

<?php
global $nuked;
if (isset($_POST['rechercher'])) 
{
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); 
$mode = mysql_real_escape_string(htmlspecialchars($_POST['mode']));

if ($mode == "tous_les_mots")
{
$and_ou_or = 'AND'; 
}
else
{
$and_ou_or = 'OR'; 
}
if ($mode == "expression_exacte") 
{
$selection_recherche = mysql_query("SELECT * FROM nuked_vente WHERE  classe LIKE '%$recherche%' ORDER BY nom");
}
else 
{
$mots = explode(" ", $recherche); 
$nombre_mots = count ($mots); 
$valeur_requete = '';
for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) 
{
$valeur_requete .= '' . $and_ou_or . ' classe LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; 
}
$valeur_requete = ltrim($valeur_requete,$and_ou_or); 
$selection_recherche = mysql_query("SELECT *
FROM nuked_vente
WHERE $valeur_requete ORDER BY nom"); 
}
$nombre_resultats = mysql_num_rows($selection_recherche); 
if ($nombre_resultats == 0) 
{
echo '<br /><center>Aucun résultats.<br />
<br /><a href="index.php?file=Page&name=Liste_ventes">Recommencer</a></center>';
}
else 
{

echo '<br><u>Nombre d\'objet(s) correspondant(s) à votre recherche : ' . $nombre_resultats . '</u><br /><br />'; 
echo '
<table width="75%" style="text-align:center; float: left;" >
<tr>
<td  background="themes/df_counterview/images/menu_hoover.png">Objet</td>
<td  background="themes/df_counterview/images/menu_hoover.png">Prix</td>
<td  background="themes/df_counterview/images/menu_hoover.png">Type de vente</td>
<td  background="themes/df_counterview/images/menu_hoover.png">Durée</td>
</tr>';
while($resultats = mysql_fetch_array($selection_recherche) ) 
{
?>
<tr>
<td background="themes/df_counterview/images/menu.png">
<a href="#" style="TEXT-DECORATION:none;" title="<?php echo $resultats['commentaire']; ?>">
<?php echo stripslashes($resultats['nom']); ?></a><br />
</td>
<td background="themes/df_counterview/images/menu.png"><?php echo $resultats['prix']; ?> PO</td>
<td background="themes/df_counterview/images/menu.png"><?php echo $resultats['typevente']; ?></td>
<td background="themes/df_counterview/images/menu.png"><?php echo $resultats['duree']; ?></td>
</tr>

<?php
}
echo '
</table>
';
}
}
?>
A voir également:

13 réponses

arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Pour un affichage page par page: http://www.lephpfacile.com/howto/...

Pour ce qui est de la touche entré, la page n'est pas "réactualisé". Enfin en un sens si.
Quand tu es dans un champ input, la touche entré envoi le formulaire, comme si tu cliquais sur le bouton submit. Dans un textarea, elle permet de passer à la ligne.
0
Eternity
 
Ou est le rapport? J'écris dans mon imput et quand j'ai fini d'écrire et que j'appuie sur la touche entrée, sa devrait envoyer le formulaire? non? tandis que la, la page se réactualise (enfin d'après ce que je vois...)
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Si ta page de traitement est la même sur celle du formulaire, il peux y avoir une erreur dans le script de traitement qui au final ne l'execute pas.

Exemple:

<?php
if(isset($_POST['envoi']))
{
echo 'Formulaire envoyé';
}
else {
echo'<form method="post" action="form.php">
<p>Test: <input name="message" /></p>
<p><input type="submit" name="envoi" value="Envoyer" /></p>
</form>';
}

si tu envoi ce formulaire, le formulaire disparait et le texte "Formulaire envoyé" s'affiche.
C'est pourtant le même fichier.

Maintenant, glissons une erreur.
<?php
if(isset($_POST['envoi']) && $_POST['envoi']=='Envoyé')
{
echo 'Formulaire envoyé';
}
else {
echo'<form method="post" action="form.php">
<p>Test: <input name="message" /></p>
<p><input type="submit" name="envoi" value="Envoyer" /></p>
</form>';
}

Dans ce deuxième cas, tu retournes au formulaire...
Je te laisse chercher l'erreur.

Vérifie donc sérieusement ton code.
0
Eternity
 
Je vois bien l'erreur dans ton exemple, mais j'ai du mal avec le mien >< sinon merci pour ton premier lien.
0
Eternity
 
Mon formulaire est relativement clair et propre, je trouve pas l'erreur ...

<center>
<table border=1>
<tr><td colspan=2 align=center> .: Recherche :.</td></tr>
<tr><td>
<form method="post" action="index.php?file=Page&name=Liste_ventes">
Objet recherché :
</td>
<td>
<input type="text" name="recherche" />
</td>
<tr>
<td>
Mode de recherche :
</td>
<td>
<select name="mode">
<option value="">Type de recherche</option>
<option value="un_mot">Au moins un mot</option>
<option value="expression_exacte">Expression exacte</option>
<option value="tous_les_mots">Tous les mots</option>
</select>
</td>
<tr >
<td height="20" colspan=2 align=center >
<input type="submit" value="Rechercher" name="rechercher" />
</td>
</form>
</tr>
</table>
</center>
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
index.php?file=Page&name=Liste_ventes corresponds à quoi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Eternity
 
L'Url de ma page
0
Eternity
 
L'erreur serait l'oublie du &? (désolé pour le double post, je n'ai pas tilité sur le coup)
0
SigNell
 
Eternity, c'est
&amp;
Oublie pas les balise code...
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Ce que je voulais dire c'est où est le code traitement du formulaire ?
0
Eternity
 
Juste en dessous. Regarde mon premier post.
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Vérifie tes conditions une par une.
Voici comment je procède personnellement.
Exemple:
if(isset($var))
{
echo'yes';
[...]
}


La ligne en gras est celle que je rajoute volontaire lors de mes tests pour tester qu'une condition passe bien. Ensuite je l'enlève et je passe à la condition suivante.
Tu pourra ainsi cibler l'erreur plus facilement.
0
Eternity
 
Ok, je vais les tester alors
0
Eternity
 
J'ai trouvé >< c'est le mode de recherche...
Il prend pas la premiere valeur qui est par defaut mot clef ><
Il faut obligatoirement que l'utilisteur en selectionne une ><
Il y a pas un moyen pour faire passer une valeur par défaut?
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Avec quelques de ce genre:
if(isset($var)) //Tu vérifie que la variable est déclaré
	{
	if($var=='valeur1') //Tu test la valeur de la variable
		{
		[...]
		}
	elseif($var=='valeur2') //Tu test la valeur de la variable
		{
		[...]
		}
	elseif($var=='valeur3') //Tu test la valeur de la variable
		{
		[...]
		}
	else {
		$var='valeur_par_defaut'; //Tu appliques une valeur par défaut.
		}
	}


A réadapter suivant ton cas bien entendu.
0
Eternity
 
Merci :) je crois que tout est bon
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Content d'avoir pu t'aider.
0