IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Récupérer les 3 premiers résultats d'une boucle de 50 [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut Récupérer les 3 premiers résultats d'une boucle de 50
    Bonjour,
    Sur ma requête, je vais chercher les 50 premiers résultats d'une recherche et je souhaiterais re-travailler une variable uniquement sur les 3 premiers résultats tout en affichant les 47 autres...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
    // +------ pour l'affichage page par page... -------+ 	
     
    			$limit="50"; 	
     
    			if(!$debut) 	
    		{ 	
    			$debut=0; 	
    		} 	
     
    // +------ Une partie de ma requête -------+ 
    //........
    			"AS relevance FROM moteur_sites  WHERE ( 
    			MATCH (nomsite , description, mcles, url, texte) 
    			AGAINST ('$keywordClean' IN BOOLEAN MODE) ) 
    			AND valid='1' AND infoshort='0' 
    			$fil HAVING relevance > 0 ORDER BY relevance 
    			DESC LIMIT $debut,$limit"; 
     
    			$resulta1 = $mysqli->query($requetea1) or die($mysqli->error.__LINE__);
                            $count1 = mysqli_num_rows($resulta1);
     
    // +------ Extraction de la table -------+     
     
    			while ($annuaireData=mysqli_fetch_array($resulta1)) 	
    			{ 	
    			extract($annuaireData); 
     
    			$abosser = $texte;
     
    ?>
    Comment retravailler à partir d'ici ($abosser) que sur les 3 premiers résultats et pas sur les 50 ??
    Je peux AUSSI utiliser la valeurs de relevance (qui est le score de mon résultat et récuperer le $texte des 3 meilleurs scores/relevance), tout comme reprendre les 3 premiers $count1 ....

    Il me semble qu'il y a plusieurs choix mais je ne vois pas comment m'y prendre au mieux

    Merci pour votre aide
    Yule

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Tu enregistres les 3 premières valeurs dans un tableau :
    • Tu crées le tableau avant le while.
    • Tu initialises un compteur à 0 toujours avant le while
    • Dans le while tu testes si le compteur est < à 3 si oui alors tu ajoutes $texte au tableau et tu incrémentes le compteur.

  3. #3
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut
    re,re

    Ok j'ai compris la direction,merci. Je vais regarder pour faire ça en pratique hum..

    Bonne bonne
    Yule

  4. #4
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut
    Donc j'ai essayé de partir ainsi mais Ca fait planter ma page..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
                            $tableau1 = array();
    			$i = 0;
     
    // +------ Extraction de la table -------+     
     
    		while ($annuaireData=mysqli_fetch_array($resulta1)) 	
    		{ 	
    		extract($annuaireData); 	
     
     
    		// +------ TEST des Tags  -------+
    			for ($i<3($texte);$i++) {
    			$tableau1[$i]=$texte;
    			}
     
    echo $tableau1;

  5. #5
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Salut,

    ta fonction while n'est pas fermée -> manque un }

  6. #6
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut
    Hello,

    Elle est bien fermée plus bas dans mon code

    C'est mon for qui est pas juste... et que je n'arrive pas à mettre en place

    il me sort 3x la même ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    // +------ TEST des Tags  -------+ 
     
    			$tableau1 = array();
    			$i = 0;
     
    // +------ Extraction de la table -------+     
     
    		while ($annuaireData=mysqli_fetch_array($resulta1)) 	
    		{ 	
    		extract($annuaireData); 	
     
    		$n = 3 ;
    		for( $i=0; $i<$n; $i++)  {
              $tableau1[$i] = array($texte);
              }
     
         echo "<pre>";
         print_r($tableau1);
         echo "</pre>" ;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/11/2010, 19h55
  2. [MySQL] récupérer les dimensions des images dans une boucle while
    Par Navyel dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/08/2007, 11h09
  3. Réponses: 6
    Dernier message: 01/06/2007, 13h19
  4. Réponses: 2
    Dernier message: 14/06/2006, 09h30
  5. Réponses: 8
    Dernier message: 02/11/2005, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo