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 :

Affichage par page page : pages blanches à la fin [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut Affichage par page page : pages blanches à la fin
    bonjour,
    je fais (tente de faire) un affichage page par page des résultats d'une requête.
    Les premières pages indiquent les bons résultats, mais après il y a des liens vers des pages vides.

    En outre, le nombre total de réponses indiquées est inexact, et, en plus, il a l'air lié au contenu d'une cellule : si mon premier résultat affiché a pour contenu de la cellule "lieu", 75012, on m'indiquera : il y a75 réponses.
    Si le contenu de la cellule lieu est 91000 on m'indiquera il y a 91 réponses. Si il y a en fait 30 réponses, les 30 premières pages seront OK, les 61 suivantes seront vides...

    Voici le code de la requête qui permet de calculer le nombre total de réponses et de l'afficher.

    Si quelqu'un comprend le problème, je veux bien ses lumières.

    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
     
    // on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
    	 $sql = 'SELECT lieu, description, activite, dates, tarifs, horaires, adresse, adresse2, cp, ville, public, s_nom, aide_ac.c_civ, aide_ac.c_tel, aide_ac.c_email FROM aide_ac, aide_st where aide_ac.structure=aide_st.s_clef'; 
    			if (isset($_SESSION['public'])&&($_SESSION['public'])!="#") 
    			{ 
    		   $sql .= ' AND  public = "'.$_SESSION['public'].'"'; 
    			} 
    			if (isset($_SESSION['lieu'])&&($_SESSION['lieu'])!="#") 
    			{ 
      			 $sql .= ' AND  lieu = "'.$_SESSION['lieu'].'"'; 
    			} 
    			if (isset($_SESSION['activite'])&&($_SESSION['activite'])!="#") 
    			{ 
      			 $sql .= ' AND  activite = "'.$_SESSION['activite'].'"'; 
    			}
    			if (isset($_SESSION['mot'])&&($_SESSION['mot'])!="#") 
    			{ 
    			$sql .= ' AND  (description LIKE "%'.$_SESSION['mot'].'%" OR  lieu LIKE "%'.$_SESSION['mot'].'%" OR  dates LIKE "%'.$_SESSION['mot'].'%" OR  specifique LIKE "%'.$_SESSION['mot'].'%")';
    			}
    // on exécute cette requête
    $resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    // on récupère le nombre d'éléments à afficher
    $nb_total = mysql_fetch_array($resultat);
     
    // on teste si ce nombre de vaut pas 0
    if (($nb_total = $nb_total[0]) == 0) {
        echo 'Aucune activité ne correspond à vos critères de recherche.';
    }
    else {
    echo '<span class="txtp"> il y a '.$nb_total.' réponse(s) correspondant à votre recherche</span> ';
    merci beaucoup pour votre aide.

  2. #2
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Par défaut Re: Affichage par page page : pages blanches à la fin
    1 :
    Tu devrais utiliser la fonction COUNT pour tes requêtes SQL de comptabilisation : http://sql.developpez.com/sqlaz/ensembles/

    2 :

    Lorsque tu fais ça :


    Citation Envoyé par carelha
    if (($nb_total = $nb_total[0]) == 0) {
    echo 'Aucune activité ne correspond à vos critères de recherche.';
    }
    else {
    echo '<span class="txtp"> il y a '.$nb_total.' réponse(s) correspondant à votre recherche</span> '; [/code]

    tu vas affecter le lieu au résultat de ta recherche avec ton if (simple "=" est une affectation) car avec le $nb_total = mysql_fetch_array($resultat) on récupère un tableau avec toute les données du SELECT et non le nombre de résultat.

    Utilise ton mysql_fetch_array pour afficher tes recherches tout simplement, mais ne modifies pas son contenu.
    Tu devrais jeter un oeil sur les tutoriels MySQL pour plus de détails.

  3. #3
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    Merci,

    j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT count(*)
    au tout début de la requête et tout est affiché correctement

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

Discussions similaires

  1. Moteur de recherche, affichage par page et url rewriting
    Par paupiette dans le forum Langage
    Réponses: 5
    Dernier message: 22/06/2007, 10h45
  2. [FPDF] Affichage par page
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 16/05/2006, 12h33
  3. [MySQL] Problème d'affichage par page
    Par nal dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 29/04/2006, 14h00

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