begin process at 2012 05 31 09:00:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

recherche+pagination


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recherche+pagination

mardi 5 octobre 2010 à 21:45:40 | recherche+pagination

squago

Bonjour à tous,
C’est un homme au bord de la crise de nerfs qui vous écrit…
Je cherche à adapter un code de recherche et pagination que j’ai récupéré un peu partout, et que j’ai testé avec une petite table comportant 105 lignes, et dans laquelle je fais une recherche simple, je lui demande de m’afficher les entrées comportant un « f » (LIKE '%f%') . Tout marche, il me donne 42 résultats, qu’il m’affiche sur 5 pages, puisque je lui ai demandé 10 lignes par page. Si vous voulez, je vous envoie le code…
Maintenant, j’essaie d’y adapter une requête, avec laquelle je permets à mes visiteurs de lancer une recherche dans mon catalogue, en entrant un ou plusieurs mots. Ce script fonctionne également parfaitement seul, sans la pagination, je l’ai essayé.
J’ai un peu bricolé pour assembler le tout, et adapter la pagination. J’avais, entre autres, le souci de compter le nombre de lignes, avant de mettre le nombre de pages. J’ai testé dans le petit script de pagination, en incluant une requête en parallèle, qui me donne le nombre de lignes, et par le même, le nombre de pages, en éclipsant le « LIMIT ». Tout ceci fonctionne sur le script avec la recherche simple, sans aucun problème.
Mais sur mon bricolage (pardon pour les puristes), la première page, c’est super, deuxième page, tout blanc, pas plus de réponse à la requête que de n° de page. Et quand j’affiche le code, je n’ai que la première ligne, où sont les liens css.
De plus, quand je fais une recherche avec plusieurs mots, sur la première page, il m’indique bien le nombre de résultats, et le nombre de pages qui va avec, mais entre c’est deux lignes, j’ai juste un message d’erreur sur la ligne 63 (while...). Quant aux pages suivantes, elles sont toujours blanches.
Voilà le topo, si quelqu’un avait une idée, je serais volontiers preneur.
Merci d’avance.
Squago

Code PHP :
<link rel="stylesheet" href="pagination.css" type="text/css" />
<?php include("fonction_pagination.php"); ?>
 <?php
 if(isset($_GET['q'])){
	if (strlen($q)<=3) {
        echo "Vous n'avez pas entré assez de caractères pour une recherche.<hr size='1'>";
		} else {		
		
        //connection à la base de données
        mysql_connect('xxxxxx', 'xxxx', 'xxxx');   
    	mysql_select_db('xxxxxx'); 
		
			// Numero de page (1 par défaut)
			if( isset($_GET['page']) && is_numeric($_GET['page']) )
				$page = $_GET['page'];
			else
				$page = 1;
	
			// Nombre d'info par page
			$pagination = 10;

			// Numéro du 1er enregistrement à lire
			$limit_start = ($page - 1) * $pagination;

			// Préparation de la requête			
			echo "Vous cherchez <b>$q</b>. ";
			$q=$_GET['q'];
			$s=explode(" ",$q);          
			$sql="SELECT libelle_produit,marque,poids FROM catalogue";
			$i=0;
			foreach($s as $mot){
				if($i==0){
					$sql.=" WHERE ";
				}
				else{
					$sql.=" OR ";
				}
					$sql.="libelle_produit LIKE '%$mot%'";
					$sql.="LIMIT $limit_start, $pagination";
					$i++;	
				
				$aaa="SELECT libelle_produit,marque,poids FROM catalogue";
				$i=0;
				foreach($s as $mot){				
					if($i==0){	
					$aaa.=" WHERE ";
					}
					else{
					$aaa.=" OR ";
					}
					$aaa.="libelle_produit LIKE '%$mot%'";
					$i++;		
			}
		}
		// Requête SQL  
		$resultat = mysql_query($sql);
		$resu = mysql_query($aaa);
		$f = mysql_num_rows($resu);
				echo "Il y a $f résultat(s) trouvé(s)<hr size='1'>";
				
			// Traitement et affichage des données
			while($donnee = mysql_fetch_assoc($resultat)){ 
    
				echo "<p>{$donnee["libelle_produit"]}</p>";
			    echo "<p>{$donnee["marque"]}</p>";
				echo "<p>{$donnee["poids"]}</p><hr size='3'>";
				
		}
 
			// Pagination
			$nb_pages = ceil($f / $pagination); 

			// Affichage
			echo '<p class="pagination">' . pagination($page, $nb_pages) . '</p>';
	}
}

?
mardi 5 octobre 2010 à 21:47:51 | Re : recherche+pagination

squago

Je remets le message, car je trouve qu'il a un drôle de tête. Comment on fait pour mettre les n° des lignes sde codes?
Bonjour à tous,
C&#8217;est un homme au bord de la crise de nerfs qui vous écrit&#8230;
Je cherche à adapter un code de recherche et pagination que j&#8217;ai récupéré un peu partout, et que j&#8217;ai testé avec une petite table comportant 105 lignes, et dans laquelle je fais une recherche simple, je lui demande de m&#8217;afficher les entrées comportant un « f » (LIKE '%f%') . Tout marche, il me donne 42 résultats, qu&#8217;il m&#8217;affiche sur 5 pages, puisque je lui ai demandé 10 lignes par page. Si vous voulez, je vous envoie le code&#8230;
Maintenant, j&#8217;essaie d&#8217;y adapter une requête, avec laquelle je permets à mes visiteurs de lancer une recherche dans mon catalogue, en entrant un ou plusieurs mots. Ce script fonctionne également parfaitement seul, sans la pagination, je l&#8217;ai essayé.
J&#8217;ai un peu bricolé pour assembler le tout, et adapter la pagination. J&#8217;avais, entre autres, le souci de compter le nombre de lignes, avant de mettre le nombre de pages. J&#8217;ai testé dans le petit script de pagination, en incluant une requête en parallèle, qui me donne le nombre de lignes, et par le même, le nombre de pages, en éclipsant le « LIMIT ». Tout ceci fonctionne sur le script avec la recherche simple, sans aucun problème.
Mais sur mon bricolage (pardon pour les puristes), la première page, c&#8217;est super, deuxième page, tout blanc, pas plus de réponse à la requête que de n° de page. Et quand j&#8217;affiche le code, je n&#8217;ai que la première ligne, où sont les liens css.
De plus, quand je fais une recherche avec plusieurs mots, sur la première page, il m&#8217;indique bien le nombre de résultats, et le nombre de pages qui va avec, mais entre c&#8217;est deux lignes, j&#8217;ai juste un message d&#8217;erreur sur la ligne 63. Quant aux pages suivantes, elles sont toujours blanches.
Voilà le topo, si quelqu&#8217;un avait une idée, je serais volontiers preneur.
Merci d&#8217;avance.
Squago


Cette discussion est classée dans : nombre, page, recherche, pages, pagination


Répondre à ce message

Sujets en rapport avec ce message

Pagination avec nombre de pages [ par sebalex ] Salut à tous,Voilà, j'ai une liste résultant d'une recherche. Cette liste se limite à 5 résultats par page. A présent, je souhaite faire comme la plup Mysql et nombre de pages [ par Supremist ] Bonjour à tous,J'ai crée un petit code php, mysql sur mon site.La page php affiche donc un titre et un contenu.Seulement j'ai un petit problème, le co Créer des pages au bout d'un certain nombre [ par DjChat ] Bonjour a tous, j'ai une page qui affiche des images de photos des membres qui sont cliquable pour arriver sur leurs profils. Sur une page ils y a t Pagination d'une requête 109 ligne sur pages de 20 lignes [ par ragmo ] Bonjour,Je voulais savoir comment on pouvait gérer la pagination des nombres de lignes ramenées par une requête (Base MySQL) pour n'afficher que 20 li Inclure Page dans tous les pages [ par masterofquebec ] Bonjour, je cherche actuellement comment inclure un script (imidiatement avant la fermeture du tag body) dans tous les pages d'un certain dossier sans Sécurité formulaire, problème réinitilisation token, cache navigateur [ par nhefti ] Bonjour,J'utilise pour sécuriser l'envoi de mes formulaires un système de token que je stocke d'une part dans une variable de SESSION de l'autre dans Creer sur la meme page un formulaire de recherche fixe... et les resultas de la recherche [ par essila ] bjr j'espere que j'arriverais a me faire comprendre, j'aimerais creer ceci: sur une meme page: en haut le formulaire de recherche qui est fixe et en b recuperer les valeurs dans un tableau en fonction d'une variable [ par tex73 ] bonjour a tous.jai un probleme avec ma table. en fait je voudrais pour une entrée donnée recuperer la valeur correspondante. pour ce faire j'ai ecrit Confidentialité sur des pages [ par Angus034 ] Bonjour,Je suis en train de faire un système d'ecard qui se compose de 3 pages. 1 pour l'insertion de données dans la base, 1 pour prévisualiser le ré affichage page par page avec des point (...) [ par slashf ] salut a tous donc voilà j'ai un scripte qui marche très bien jusque là pas de souci sauf que si j'ai un résultats de 100 pages ça va être trop encombé


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales