Recherche et affichage plusieur page

PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005 - 7 août 2005 à 15:47
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005 - 17 août 2005 à 19:46
Bonjour a tous

Voila je viens chercher un peu d'aide, car je suis debutant et apres avoir fouille le site et le forum j'arrive toujours pas a me depatouiller de mon probleme.

Donc ca vas etre un peu long mais je vais essayer de tout expliquer et d'etre le plus claire possible.

J'ai une base de donnee avec plusieur champs que j'affiche dans un tableau....jusque la aucun probleme....Pour un meilleur affichage je decide donc de decouper tout cela page par page avec 4 lignes par page et un petit "suivant" "precedent" pour changer de page....impecable tout fonctionne.
Du coup j'y ajoute une fonction recherche....la aucun probleme ca marche impecable aussi temps que j'affiche tout les resultats sur une seule page....
du coup a ce stade je decide de faire le meme affichage (page par page avec 4resultats par page) comme j'avais fait au dessu....
Mais la le probleme c'est que la recherche marche bien, il m'indique le bon nombre de resultat, affiche bien les 4premier, mais quand je clic sur "suivant" il me donne bien le nombre de resultat mais les affiches pas dans le tableau et si je fais un retour la aussi y a erreur je reviens pas sur ma page de resultat.....

Donc je pense pas que mon code soit totalement faux, mais simplement qu'il y a un truc que j'ai zappe ou qui me depasse.....
Donc si quelqu'un a la solution ou une idée de la chose....en sachant que je suis vraiment Debutant....
MERCI a Tous.....

Mon code a l'heure actuel:
<?php require_once('Connections/infos.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];


$maxRows_INFOSresultat = 4;
$pageNum_INFOSresultat = 0;
if (isset($_GET['pageNum_INFOSresultat'])) {
$pageNum_INFOSresultat = $_GET['pageNum_INFOSresultat'];
}
$startRow_INFOSresultat = $pageNum_INFOSresultat * $maxRows_INFOSresultat;


$colname_INFOSresultat = "0";
if (isset($_POST['recherche'])) {
$colname_INFOSresultat = (get_magic_quotes_gpc()) ? $_POST['recherche'] : addslashes($_POST['recherche']);
}
mysql_select_db($database_infos, $infos);
$query_INFOSresultat = sprintf("SELECT DEPARTEMENT, LIEUX, style, description, acces, details FROM infos WHERE DEPARTEMENT LIKE '%%%s%%' OR LIEUX LIKE '%%%s%%' OR style LIKE '%%%s%%' OR description LIKE '%%%s%%' OR details LIKE '%%%s%%'", $colname_INFOSresultat,$colname_INFOSresultat,$colname_INFOSresultat,$colname_INFOSresultat,$colname_INFOSresultat);
$query_limit_INFOSresultat = sprintf("%s LIMIT %d, %d", $query_INFOSresultat, $startRow_INFOSresultat, $maxRows_INFOSresultat);
$INFOSresultat = mysql_query($query_limit_INFOSresultat, $infos) or die(mysql_error());
$row_INFOSresultat = mysql_fetch_assoc($INFOSresultat);


if (isset($_GET['totalRows_INFOSresultat'])) {
$totalRows_INFOSresultat = $_GET['totalRows_INFOSresultat'];
} else {
$all_INFOSresultat = mysql_query($query_INFOSresultat);
$totalRows_INFOSresultat = mysql_num_rows($all_INFOSresultat);
}
$totalPages_INFOSresultat = ceil($totalRows_INFOSresultat/$maxRows_INFOSresultat)-1;


$queryString_INFOSresultat = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_INFOSresultat") == false &&
stristr($param, "totalRows_INFOSresultat") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_INFOSresultat = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_INFOSresultat = sprintf("&totalRows_INFOSresultat=%d%s", $totalRows_INFOSresultat, $queryString_INFOSresultat);
?>
<link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.Style2 {
color: #00FFFF;
font-weight: bold;
}
.Style3 {color: #FF00FF}
.Style4 {color: #000000}
-->
</style>

<form action="INFOSresultat.php" method="post" name="recherche" id="recherche">

RECHERCHE :,



</form>
Il y a <?php echo $totalRows_INFOSresultat ?> réponses.



DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS,

<?php do { ?>
----

<?php echo $row_INFOSresultat['DEPARTEMENT']; ?>,
<?php echo $row_INFOSresultat['LIEUX']; ?>,
<?php echo $row_INFOSresultat['style']; ?>,
<?php echo $row_INFOSresultat['description']; ?>,
<?php echo $row_INFOSresultat['acces']; ?>,
" target="_blank">,

<?php } while ($row_INFOSresultat = mysql_fetch_assoc($INFOSresultat)); ?>



">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="30" height="30">

http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="30" height="30">
</object>
PRECEDENT,
">SUIVANT
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="30" height="30">

http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="30" height="30">
</object>


<?php
mysql_free_result($INFOSresultat);
?>

53 réponses

arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
10 août 2005 à 18:52
ok, et bien on avance !
Quelle est la requête que tu attendais ?
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
10 août 2005 à 18:57
heuuuuuuuu je sais pas is on avance mais la c pire pour moi suis encore plus perdu LOL....

car en faisant cette ligne de code il me supprime des jeux d'enregistrement....dans Dream....
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
10 août 2005 à 18:59
mince le message etait pas entier...

Donc je te disais que ct juste un moteur de recherche simple dans une base de donne....et que je voulais avoir le resultat sous forme de tableau 4 ligne par page.....et non me retrouver avec 50resultats sur une seule page....
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
10 août 2005 à 19:03
oui, j'avais compris...
0

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

Posez votre question
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
10 août 2005 à 19:08
Vi je suppose mais vu ta reponse j'ai eu un doute....ou peut etre j'ai pas saisi la chose....

Fo dire que la je rame complet.....le cerveau ne suis plus....

Si tu veux mon MSN ca sera peut etre plus simple que sur le forum....
Par contre si on arrive au resultat voulu bas le script v le partager ca aidera peut etre d'autre personne....

mon MSN: pitchaude@hotmail.com
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
10 août 2005 à 19:13
bon pour aujourd'hui j'abandonne....

Je reprendrais ca demain....

Merci de ton aide en tout cas....
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
12 août 2005 à 15:48
Je relance la chose car toujours pas trouve l'erreur.....
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
12 août 2005 à 15:58
Salut !
Bon, alors tu m'as dit qu'en mettant

echo 'query_limit_resrecherche : '.$query_limit_resrecherche.'
';

juste avant

$resrecherche = mysql_query($query_limit_resrecherche, $infos) or die(mysql_error());

l'affichage était :

query_limit_resrecherche : SELECT DEPARTEMENT, LIEUX, style, description, acces, details FROM infos WHERE DEPARTEMENT LIKE '%*%' or LIEUX LIKE '%*%' or style LIKE '%*%' or description LIKE '%*%' LIMIT 0, 4

MOTEUR de Recherche

Entrez votre recherche
Il y a 0 réponses


DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS

=-1&totalRows_resrecherche=0 SUIVANT

Ceci c'est dès la 1e page, ou après avoir cliqué sur le lien suivant ? Est-ce que c'est pareil dans les 2 cas, sinon quel est l'autre affichage ?

Arn;o)
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
12 août 2005 à 16:14
Donc voila ce que ca donne a la premiere page:
query_limit_resrecherche : SELECT DEPARTEMENT, LIEUX, style, description, acces, details FROM infos WHERE DEPARTEMENT LIKE '%*%' or LIEUX LIKE '%*%' or style LIKE '%*%' or description LIKE '%*%' LIMIT 0, 4

MOTEUR de Recherche


<FORM id="form recherche" name="form recherche" action=i-recherche.php method=post>Entrez votre recherche </FORM>
Il y a 0 réponses


DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS

SUIVANT

Et une fois clic sur suivant:
query_limit_resrecherche : SELECT DEPARTEMENT, LIEUX, style, description, acces, details FROM infos WHERE DEPARTEMENT LIKE '%*%' or LIEUX LIKE '%*%' or style LIKE '%*%' or description LIKE '%*%' LIMIT -4, 4
Erreur de syntaxe près de '-4, 4' à la ligne 1
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
12 août 2005 à 16:17
Par contre ca me f une erreur dans Dream au niveau des jeux d'enregistrement.....
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
12 août 2005 à 16:29
Et bien dans un 1er temps, tu peux te concentrer sur la requête dès la 1e page ! Tu avais dit : « Mais la le probleme c'est que la recherche marche bien, il m'indique le bon nombre de resultat, affiche bien les 4premier, »... euh, c'est pas flagrant !
Ensuite, tu pourras corriger ton lien (ou le calcul de $query_limit_resrecherche) parce que là, LIMIT -4, 4, ça ne risque pas marcher !

Arn;o)
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
12 août 2005 à 16:38
Pour la premiere page je confirme ca marche bien....aucun probleme de ce cote la....

Par contre pour la suite c sure que la ca merdouille....justement c bien la mon probleme de base...cette affichage page/page

Avec toi on est 4 sur ce probleme....a croire que j'ai pondu un truc hallucinant....car personne ne trouve le hic

Je vais en conclure que Dream n'est pas si formidable que ca...
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
12 août 2005 à 16:43
Euh... je comprends pas... dans tu post du 12/08/2005 16:14:34, tu affichais le résultat : « 0 réponses », et le tableau vide... donc la requête ne retourne rien... donc ça marche pas
???
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
12 août 2005 à 16:51
sisi
j'aurai peut etre pas du faire comme ca, je t'ai mis dans l'erreur.....

C'est que simplement a la premiere affichage de la page on affiche aucun resultat ( c voulu pour avoir un tableau vierge), par contre si on tape une recherche ca fonctionne tres bien.....

Voila la page lors de l'arrivee:
query_limit_resrecherche : SELECT DEPARTEMENT, LIEUX, style, description, acces, details FROM infos WHERE DEPARTEMENT LIKE '%*%' or LIEUX LIKE '%*%' or style LIKE '%*%' or description LIKE '%*%' LIMIT 0, 4

MOTEUR de Recherche


<FORM id= "form recherche" name="form recherche" action=i-recherche.php method=post>Entrez votre recherche </FORM>
Il y a 0 réponses


DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS

SUIVANT

La avec une recherche :


MOTEUR de Recherche



<FORM id ="form recherche" name= "form recherche" action=i-recherche.php method=post>Entrez votre recherche </FORM>


Il y a 5 réponses



DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS,
----

4,
4,
4,
4,
ok,
4,
----

4,
4,
4,
4,
ok,
4,
----

4,
4,
44,
444,
ok,
4,
----

44,
44,
44,
44,
ok,
44

SUIVANT


Donc la on voit bien que pour la recherche "4" on a 5 resultats et l'affichage de 4 resultat sur une page donc tout est correct....donc on clic sur "suivant" pour afficher le 5eme resultat et la on arrive sur ca:


MOTEUR de Recherche



<FORM id ="form recherche" name="form recherche" action=i-recherche.php method=post>Entrez votre recherche </FORM>


Il y a 5 réponses



DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS

SUIVANT
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
12 août 2005 à 17:01
OK, je comprends mieux
mais t'as pas mis l'affichage de la requête lors des 1ers résultats de la recherche, ni celle après le clic sur suivant... ça donne quoi ?
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
12 août 2005 à 17:09
sisi je te l'ai mis au dessu, mais ca a bugger a l'envois il a melange les couleurs et taille de texte....a croire que j'ai la poisse en ce moment....

Voila la page lors de l'arrivee:
query_limit_resrecherche : SELECT DEPARTEMENT, LIEUX, style, description, acces, details FROM infos WHERE DEPARTEMENT LIKE '%*%' or LIEUX LIKE '%*%' or style LIKE '%*%' or description LIKE '%*%' LIMIT 0, 4

MOTEUR de Recherche

Entrez votre recherche
Il y a 0 réponses


DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS

SUIVANT


La avec une recherche :


MOTEUR de Recherche


Entrez votre recherche


Il y a 5 réponses



DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS,
----

4,
4,
4,
4,
ok,
4,
----

4,
4,
4,
4,
ok,
4,
----

4,
4,
44,
444,
ok,
4,
----

44,
44,
44,
44,
ok,
44

SUIVANT

Donc la on voit bien que pour la recherche "4" on a 5 resultats et l'affichage de 4 resultat sur une page donc tout est correct....donc on clic sur "suivant" pour afficher le 5eme resultat et la on arrive sur ca:


MOTEUR de Recherche


Entrez votre recherche


Il y a 5 réponses



DEP,
LIEUX,
STYLE,
DESCRIPTION,
ACCES,
DETAILS

SUIVANT
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
12 août 2005 à 17:13
La requête n'est affichée qu'une fois sur les 3 cas ?
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
12 août 2005 à 17:21
sur la premiere page la requete s'affiche car je lui demande d'afficher un "*" qui n'existe pas dans la base...ce qui donne un tableau vierge....

si j'entre une recherche, la le moteur effectue bien sont travail et m'affiche correstement la requete....dans l'exemple ci dessu je lui demande de cherche le nombre "4" donc il me dit bien qu'il y a 5 resultat (ca c exact) et du coup il m'affiche les 4 premiers (comme demande)....donc a ce niveau pas de probleme....

Par contre qd je clic sur "suivant" il me dit bien qu'il y a toujours 5 resultat mais par contre m'affiche plus rien....ni les 4premier ni la nouvelle page avec le 5eme comme il devrait faire....

Tu as pas MSN ca sera peut etre plus simple, non?
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
12 août 2005 à 17:30
J'ai bien compris le pb, mais je te demandais juste de me montrer les 3 requêtes... Tu me dis que tu as cherché '4', mais je n'ai pas vu de requête avec le caractère '4'...Enfin si tu dis que dans les deux 1ers cas ça marche, ne t'inquiètes pas des requêtes.

Penche-toi sur le passage de paramètre dans ton lien suivant et sur la lecture de ces paramètres sur la page suivante...
Après avoir cliqué sur suivant, qu'est-ce qu'il y a dans la barre d'adresse ?

Bon courrage et a+

Arn;o)
0
PETITDAVID Messages postés 36 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 15 septembre 2005
12 août 2005 à 17:37
en effet je pense qu'il y a un truc que j'ai du zapper au niveau du liens.....

adresse de la premiere page:
http://localhost/dav/i-recherche2.php

adresse de la page avec une recherche:
http://localhost/dav/i-recherche.php

adresse de la page une fois clic sur suivant:
http://localhost/dav/i-recherche.php?pageNum_resrecherche=1&totalRows_resrecherche=5

adresse de la page une fois clic sur precedent:
http://localhost/dav/i-recherche.php?pageNum_resrecherche=0&totalRows_resrecherche=5
0
Rejoignez-nous