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 :

Filtre PHP SQL avec chargement au défilement


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Filtre PHP SQL avec chargement au défilement
    Bonjour, j'ai pris le temps de chercher pendant de nombreuse heure avant de venir demander la solution ici.

    Mon problème : je souhaite utiliser le filtre SQL en PHP ici : http://demo.webslesson.info/codeigni...product_filter / Voici le code : https://www.webslesson.info/2018/12/...agination.html
    Aucun problème pour utiliser ce script en local.

    Maintenant je souhaite ajouter une fonctionnalité à ce projet, en effet le filtre affiche tous les produits de la base de donnée d'un seul coup. Mais je souhaiterais qu’il n'en affiche que 5-6 sur la page avant de charger la données au défilement de l’utilisateur comme ici : http://demo.webslesson.info/ajax-scroll-pagination/ Voici le code : https://www.webslesson.info/2017/03/...-ajax-php.html .

    Car effectivement certain filtre demande d'afficher plusieurs centaine d’élément et ralentisse beaucoup trop la page.

    Donc après de nombreuse tentative je n'arrive pas à trouver de solution fonctionnel. Le script affiche toute la données d'un seul coup avec une boucle foreach, voici un extrait :

    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
    32
    33
    $statement = $connect->prepare($query);
    	$statement->execute();
    	$result = $statement->fetchAll();
    	$total_row = $statement->rowCount();
    	$output = '';
    	if($total_row > 0)
    	{
    		foreach($result as $row)
    		{
    			$output .= '
     
    			<div class="col-sm-4 col-lg-3 col-md-3">
    				<div style="border:1px solid #ccc; border-radius:5px; padding:16px; margin-bottom:16px; height:450px;">
    					<img src="image/'. $row['product_image'] .'" alt="" class="img-responsive" >
    					<p align="center"><strong><a href="#">'. $row['product_name'] .'</a></strong></p>
    					<h4 style="text-align:center;" class="text-danger" >'. $row['product_price'] .'</h4>
    					<p>Camera : '. $row['product_camera'].' MP<br />
    					Brand : '. $row['product_brand'] .' <br />
    					RAM : '. $row['product_ram'] .' GB<br />
    					Storage : '. $row['product_storage'] .' GB </p>
     
    				</div>
     
    			</div>
    			';
    		}
    	}
    	else
    	{
    		$output = '<h3>No Data Found</h3>';
    	}
    	echo $output;
    }
    Merci de votre aide !

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Si j'ai bien compris, c'est plutôt simple :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    $statement = $connect->prepare($query);
    	$statement->execute();
    	$result = $statement->fetchAll();
    	$total_row = $statement->rowCount();
     
      $max_rows_wanted=5;
      $i=0;//et hop un petit compteur
     
    	$output = '';
    	if($total_row > 0)
    	{
    		foreach($result as $row)
    		{
    			$output .= '
     
    			<div class="col-sm-4 col-lg-3 col-md-3">
    				<div style="border:1px solid #ccc; border-radius:5px; padding:16px; margin-bottom:16px; height:450px;">
    					<img src="image/'. $row['product_image'] .'" alt="" class="img-responsive" >
    					<p align="center"><strong><a href="#">'. $row['product_name'] .'</a></strong></p>
    					<h4 style="text-align:center;" class="text-danger" >'. $row['product_price'] .'</h4>
    					<p>Camera : '. $row['product_camera'].' MP<br />
    					Brand : '. $row['product_brand'] .' <br />
    					RAM : '. $row['product_ram'] .' GB<br />
    					Storage : '. $row['product_storage'] .' GB </p>
     
    				</div>
     
    			</div>
    			';
     
          if($i >= ($max_rows_wanted - 1)){
            exit();
          }
          $i++;
    		}
    	}
    	else
    	{
    		$output = '<h3>No Data Found</h3>';
    	}
    	echo $output;
    }
    Ou encore plus simple, tu ne touches pas à ton PHP, et tu le règles dès le SQL, en ajoutant un LIMIT 5, tout à la fin de ta requête.
    Exemple
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select *
    from ma_table
    where id=15
    order by nom 
    LIMIT 5;
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci dendrite de ta réponse ! Effectivement ce n'est pas tout à fait ça que je souhaite réaliser. Imaginons que j'ai 200 produits à filtrer, l'utilisateur voit s'afficher 5 produits puis il défile en bas de page et comme sur Facbook ou Instagram par exemple la contenue des produits suivants s'affichent dynamiquement. Afin d'éviter de surcharger la page et d'avoir un contenu plus dynamique et propre. Merci !

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Ah oui, alors, c'est du javascript là, qu'il te faut.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. gérer les transactions avec php/sql server
    Par loukili81 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/05/2007, 17h39
  2. [AJAX] Temps d'apprentissage d'AJAX avec connaissances PHP/SQL
    Par ayvong dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/04/2007, 10h18
  3. [SQL] probleme de syntaxe sql avec php
    Par kaygee dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/06/2006, 14h32
  4. [SQL-Server] Problème avec la fonction mssql_connect (connexion PHP SQL Server)
    Par flydragon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/05/2006, 11h59
  5. [SQL-Server] ms sql server et php : problème avec les caractères accentués
    Par stephane9422 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/12/2005, 17h45

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