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 :

Compter résultats d'une requête [Fait]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Par défaut Compter résultats d'une requête
    Bonjour,

    J'ai réalisé un moteur de recherche sur mon site et je voudrais que soit affiché un certain nombre de résultats par page une fois le mot clef entré et le bouton "rechercher" cliqué.
    Une partie de mon code ne fonctionne pas.


    Voici le code qui établit ma requête de sélection et qui l'exécute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Running query:
    $select = "SELECT * FROM objects 
    WHERE name LIKE '%".$recherche."%'
    OR description LIKE '%".$recherche."%'
    OR country LIKE '%".$recherche."%'
    ORDER BY name ASC LIMIT ".$limit.",".$results_pg;
     
    $result = mysql_query($select, $connect) or die ("Erreur : ".mysql_error());
    Voici à présent la part du code qui ne fonctionne pas, celle qui compte les résultats à afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Counting total records in table:
    $count = "SELECT COUNT(id) FROM ".$result; 
    $result = mysql_query($count, $connect);
    $row = mysql_fetch_row($result);
    $totalRows = $row[0];
    Merci beaucoup de votre aide !

  2. #2
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Par défaut
    Comment te dire... en fait c'est normal que tu n'obtiennes pas le résultat escompté, je crois que tu fais un sérieux amalgame entre les requetes et les données récupérées d'une base...
    Je te recommande vivement de reprendre les tutos sur les bases de données et les fonctions mysql.

    Bref, pour faire court:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Running query:
    $select = "SELECT * FROM objects 
    WHERE name LIKE '%".$recherche."%'
    OR description LIKE '%".$recherche."%'
    OR country LIKE '%".$recherche."%'
    ORDER BY name ASC LIMIT ".$limit.",".$results_pg;
     
    $result = mysql_query($select, $connect) or die ("Erreur : ".mysql_error());
     
    $count=mysql_num_rows($result);
     
    echo "Nombre de résultats retournés par la requete: ".$count;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Par défaut
    Salut !

    En effet, ce que j'ai réalisé est totalement erroné. J'ai corrigé en suivant tes conseils.

    Toutefois je pense ne pas avoir expliqué clairement ce que j'essaie de faire.
    Comme il s'agit de créer un moteur de recherche sur un site, je voudrais afficher les résultats de la requête et faire apparaître un lien vers la prochaine page s'il y a plus de 10 résultats. A présent tout fonctionne, ou presque...

    La requête s'effectue bel et bien en fonction du critère entré par l'utilisateur, les résultats apparaissent, mais s'il y a plus de 10 résultats, le lien vers la prochaine page ne figure pas.

    Sans doute mon erreur provient-elle de la manière dont je m'y prends pour calculer s'il faut afficher une autre page. A moins que je ne m'abuse, tel que je code, $totalRows ne saura jamais plus grand que $nextLimit.

    Voici quelques parties de mon script :

    /
    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
    / Defines query 
    $select = "SELECT * FROM objects 
    WHERE name LIKE '%".$recherche."%'
    OR description LIKE '%".$recherche."%'
    OR country LIKE '%".$recherche."%'
    ORDER BY name ASC LIMIT ".$limit.",".$results_pg;
     
    // Runs query
    $result = mysql_query($select, $connect) or die ("Erreur : ".mysql_error());
     
    // Counts total records in query
    $row = mysql_num_rows($result);		
    $totalRows = $row[0];
     
    // Recalculates $limit to know if other results to display
    $nextLimit = $limit + $results_pg;
    $prevLimit = $limit - $results_pg;
     
    // Displays link to previous page if necessary
    if($limit != 0) {  
    echo '<a href="'.$pgName.'?limit='.$prevLimit.'"><<&nbsp;&nbsp; Page précédente</a>';	
    }
     
    // Displays link to next page if necessary
    if($nextLimit < $totalRows) {
    echo '<a href="'.$pgName.'?limit='.$nextLimit.'">Page Suivante &nbsp;&nbsp;>></a>';
    } 
    ?>
    Merci !

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Tu as un exemple pour la pagination ici

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Par défaut
    Merci N1bus, mais le problème que je rencontre n'a pas trait à la pagination à partir d'une requête qui questionne une base de données; il concerne plutôt la pagination à partir du résultat d'une requête effectuée (dans mon cas, celle d'un moteur de recherche).

    La requête, en tant que telle, s'effectue convenablement et retourne sur la 1ère page le nombre de résultats escomptés, mais elle n'affiche pas de liens vers la 2e page s'il y a plus de résultats à afficher.

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    C'est pourtant ce dont il s'agit dans le lien que je t'ai donné

Discussions similaires

  1. [MySQL] [PDO] Compter résultat d'une requête ayant plusieurs variables en entrée
    Par willm_007 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/03/2015, 21h31
  2. [AC-2010] Compter/Afficher le résultats d'une requête dans un fomulaire
    Par Mairequimby dans le forum IHM
    Réponses: 7
    Dernier message: 16/04/2011, 04h57
  3. [MySQL] Compter le nombre de résultat d'une requête
    Par gueud dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/02/2008, 13h51
  4. Résultat d'une requète SQL
    Par camino dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/02/2004, 15h22
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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