Pagination des catégories et sous-catégories
Résolu/Fermé
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
-
11 févr. 2022 à 19:32
max30_3775 Messages postés 178 Date d'inscription jeudi 4 novembre 2021 Statut Membre Dernière intervention 18 mars 2022 - 12 févr. 2022 à 14:41
max30_3775 Messages postés 178 Date d'inscription jeudi 4 novembre 2021 Statut Membre Dernière intervention 18 mars 2022 - 12 févr. 2022 à 14:41
A voir également:
- Pagination des catégories et sous-catégories
- Le fichier de pagination est insuffisant pour terminer cette opération ✓ - Forum Logiciels
- Voici une base de données présentant la programmation d'un théâtre. elle comporte 4 tables : pieces, seances, categories, tarifs. combien de pièces de danse et de pièces de musique, en tout, ont un tarif réduit strictement inférieur à 15 euros ? - Forum Python
- Pagination powerpoint - Guide
- Pagination google doc a partir de la page 3 ✓ - Forum Bureautique
- Erreur lors d'une opération de pagination ✓ - Forum Matériel & Système
12 réponses
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
11 févr. 2022 à 20:11
11 févr. 2022 à 20:11
Bonjour,
Fais donc un echo de ta variable $sql et montre nous ce que ça donne.
Fais donc un echo de ta variable $sql et montre nous ce que ça donne.
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
11 févr. 2022 à 20:37
11 févr. 2022 à 20:37
Bonjour Jordane,
Un echo de la variable $tstmt donne l'erreur suivante:
Notice: Array to string conversion in C:\wamp64\www\Projetsite\principales\affichage.php on line 18
Array
et un vardump:
Un echo de la variable $tstmt donne l'erreur suivante:
Notice: Array to string conversion in C:\wamp64\www\Projetsite\principales\affichage.php on line 18
Array
et un vardump:
C:\wamp64\www\Projetsite\principales\affichage.php:19: array (size=1) 0 => array (size=1) 'cpt' => string '15' (length=2)
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
11 févr. 2022 à 21:08
11 févr. 2022 à 21:08
bonjour,
as-tu essayé la variable $sql?
as-tu essayé la variable $sql?
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
11 févr. 2022 à 21:19
11 févr. 2022 à 21:19
Bonjour yg_be,
Pour la variable $sql voici l'echo:
Je pensais à $count, dont l'echo et le vardump sont les suivants:
Pour la variable $sql voici l'echo:
SELECT A.* ,C.nom_fr AS CATEGORIE ,V.ville_fr AS VILLE FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie LEFT JOIN villes V ON V.id = A.id_ville WHERE A.id_categorie = :id_cat OR C.id_parent = :id_cat ORDER BY A.created_date DESC LIMIT 0,5
Je pensais à $count, dont l'echo et le vardump sont les suivants:
SELECT COUNT(A.id) AS cpt FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie WHERE A.id_categorie = 1 OR C.id_parent=1
C:\wamp64\www\Projetsite\principales\affichage.php:16:string 'SELECT COUNT(A.id) AS cpt FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie WHERE A.id_categorie = 1 OR C.id_parent=1' (length=135)
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
11 févr. 2022 à 22:00
11 févr. 2022 à 22:00
Peux-tu nous montrer le code complet (de la première à la dernière ligne) c'est-à-dire y compris avec les balise PHP tel qu'il est écrit...
De ton fichier
C:\wamp64\www\Projetsite\principales\affichage.php
De ton fichier
C:\wamp64\www\Projetsite\principales\affichage.php
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
11 févr. 2022 à 22:07
11 févr. 2022 à 22:07
La page des fonctions cmdaffichage.php dans le dossier control:
Et la page d'affichage.php dans le dossier principales
function getAnnonceCategorie($id_cat){ global $bdd; $sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en','es']) ))? $_SESSION['lang'] : 'fr'; $page = (!empty($_GET["page"]) )? intval($_GET["page"]) : 1; $nbr_elements_par_page=5; $debut=($page-1)*$nbr_elements_par_page; $sql = ' SELECT A.* ,C.nom_'.$sql_lang.' AS CATEGORIE ,V.ville_'.$sql_lang.' AS VILLE FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie LEFT JOIN villes V ON V.id = A.id_ville WHERE A.id_categorie = :id_cat OR C.id_parent = :id_cat ORDER BY A.created_date DESC LIMIT '.$debut.','.$nbr_elements_par_page.' '; echo $sql; var_dump($sql); try { $req = $bdd->prepare($sql); $req->execute( array('id_cat'=>$id_cat) ); $res = $req->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { echo "Erreur dans la requête " . $sql; } // le temps des tests pour voir le résultat return $res; } function getPhotosAnnonces($annonces) { global $bdd; $sql = 'SELECT id_annonce,filepath as IMG FROM images_annonces WHERE id_annonce IN (' . implode(',', array_column($annonces, 'id')) . ')'; try { $req = $bdd->prepare($sql); $req->execute(); $res = $req->fetchAll(PDO::FETCH_GROUP); } catch (Exception $e) { echo "Erreur dans la requête " . $sql; } // le temps des tests pour voir le résultat return $res; } function affichageAnnonce($id_cat){ global $bdd; $annonces = getAnnonceCategorie($id_cat); $images = getPhotosAnnonces($annonces); $res = []; foreach ($annonces as $R) { $res[$R['id']] = $R; $imgs = !empty($images[$R['id']]) ? $images[$R['id']] : NULL; if(!empty($imgs)){ foreach($imgs as $I){ $res[$R['id']]['images'][] = !empty($I['IMG']) ? $I['IMG'] : null; } }else{ $res[$R['id']]['images'] = null; } } return $res; }
Et la page d'affichage.php dans le dossier principales
<?php include "../cnx.php"; include "../control/cmdaffichage.php"; include "../header.php"; $id_cat = !empty($_GET['id']) ? trim($_GET['id']) : null; //On récupère le nombre d'enregistrements $count= "SELECT COUNT(A.id) AS cpt FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie WHERE A.id_categorie = $id_cat OR C.id_parent=$id_cat"; echo $count; var_dump($count); $stmt= $bdd->prepare($count); $stmt->execute(); $tstmt=$stmt->fetchAll(); echo $tstmt; var_dump($tstmt); //Pagination $page = (!empty($_GET["page"]) )? intval($_GET["page"]) : 1; $nbr_elements_par_page=5; $nbre_de_pages=ceil($tstmt[0]["cpt"]/$nbr_elements_par_page); $debut=($page-1)*$nbr_elements_par_page; //On récupére les annonces ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="/style.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> </head> <body> <div class="conteneur-annonce"> <div class="tri"> <span>trier</span> <?php if(($id_cat==1) || ($id_cat==5) || ($id_cat >=101 && $id_cat <=106) || ($id_cat >=501 && $id_cat <=504)) { echo " <select onchange='trier(this.value)' id='prix-superficie'> <option value=''>Default</option> <option value='price|1'>Prix croissants </option> <option value='price|-1'>Prix décroissants</option> <option value='superficie|1'>Surface croissantes </option> <option value='superficie|-1'>Surface décroissantes </option> </select>"; } else{ echo " <select onchange='trier(this.value)' id='prix-superficie'> <option value=''>Default</option> <option value='price|1'>Prix croissants </option> <option value='price|-1'>Prix décroissants</option> </select>"; } ?> </div> <p class="toutes"> <?php if(isset($_GET['id'])){ $id_cat = !empty($_GET['id']) ? trim($_GET['id']) : null; $anouncement = affichageAnnonce($id_cat); foreach ($anouncement as $a) { $id= $a['id']; $images = !empty($a['images']) ? $a['images'] : ['no_image.png']; // array if (!empty($images)) { //boucle sur les images echo'<div class="container">'; echo ' <div class="slider" >'; foreach ($images as $img) { echo '<img class ="active" style="width:240px; height:170px;" src="/' . $img . '">'; } echo "</div>"; // fin div slider . } echo '<div class= "informations">'; echo '<a class="maquette" href="/principales/single.php?id='.$id.'" > '; echo "<p class='title'>" . $a['titre'] . "</p>"; echo "<p class='category'><i class='fa fa-list-alt'></i> " . $a['CATEGORIE'] . "</p>"; echo "<p class='price'><span class='mru'>".$lang['prix']." :</span><span class='valeur'>".$a['prix']."</span></p>"; if(($id_cat==1) || ($id_cat==5) || ($id_cat >=101 && $id_cat <=106) || ($id_cat >=501 && $id_cat <=504)){ echo "<p class='superficie'> <i class='fas fa-chart-area'></i> <span class='valeur'>".$a['superficie']."</span> ". $a['unite'] . "</p>"; } echo "<p class='date'> <i class='fa fa-calendar'></i> " . $a['created_date'] . "</p>"; echo'</a>'; echo"</div>"; //fin div informations echo "</div>"; // fin div container } } ?> </div> <?php echo"<div class='pagination'>"; for($i=1;$i<=$nbre_de_pages;$i++){ echo "<a class='paginationlien' href='?page=$i'>$i</a>" ; } echo"</div>"; //fin div pagination ?>
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
11 févr. 2022 à 22:30
11 févr. 2022 à 22:30
Il serait bien de respecter la même "forme" pour ton code ...
En t'inspirant des codes que je t'ai déjà fourni et donc.. en créant des fonctions...
Donc :
Dans la page des fonctions: cmdaffichage.php
Et dans la page affichage.php
En t'inspirant des codes que je t'ai déjà fourni et donc.. en créant des fonctions...
Donc :
Dans la page des fonctions: cmdaffichage.php
function getNbAnnonceByCategorie($id_cat){ global $bdd; $sql= "SELECT COUNT(A.id) AS cpt FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie WHERE A.id_categorie = :id_cat OR C.id_parent = :id_cat "; $datas = array(':id_cat'=>$id_cat); try { $req = $bdd->prepare($sql); $req->execute($datas); $res = $req->fetchColumn(); //https://www.php.net/manual/fr/pdostatement.fetchcolumn.php } catch (Exception $e) { echo "<br>Erreur dans la requête " . $sql . '<br>'; echo $e->getMessage(); var_dump($datas); } // le temps des tests pour voir le résultat return $res; }
Et dans la page affichage.php
<?php include "../cnx.php"; include "../control/cmdaffichage.php"; include "../header.php"; $id_cat = !empty($_GET['id']) ? trim($_GET['id']) : null; $NB = getNbAnnonceByCategorie($id_cat); //Pagination $page = (empty($_GET["page"]) ? intval($_GET["page"]) : 1; $nbr_elements_par_page = 5; $nbre_de_pages = ceil($NB/$nbr_elements_par_page); $debut=($page-1)*$nbr_elements_par_page;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
11 févr. 2022 à 22:57
11 févr. 2022 à 22:57
Il n' a plus d'erreur, sauf que lorsqu'on clique sur une page, celle-ci est vide.
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
11 févr. 2022 à 23:19
11 févr. 2022 à 23:19
Quand tu cliques sur une page.... C'est-à-dire ?
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
11 févr. 2022 à 23:28
11 févr. 2022 à 23:28
Par exemple, je clique sur le menu et tombe sur la première page. Son Url: http://projetsite/principales/affichage.php?id=1
==>En cliquant sur la page 1 par exemple, il ne reste que le header et le footer. L'annonce a disparu. Même chose pour les autres page. Pour la page 1, L'url est le suivant:
http://projetsite/principales/affichage.php?page=1
Est-ce à cause de cette fonction:
==>En cliquant sur la page 1 par exemple, il ne reste que le header et le footer. L'annonce a disparu. Même chose pour les autres page. Pour la page 1, L'url est le suivant:
http://projetsite/principales/affichage.php?page=1
Est-ce à cause de cette fonction:
function getAnnonceCategorie($id_cat){ global $bdd; $sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en','es']) ))? $_SESSION['lang'] : 'fr'; $page = (!empty($_GET["page"]) )? intval($_GET["page"]) : 1; $nbr_elements_par_page=5; $debut=($page-1)*$nbr_elements_par_page; $sql = ' SELECT A.* ,C.nom_'.$sql_lang.' AS CATEGORIE ,V.ville_'.$sql_lang.' AS VILLE FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie LEFT JOIN villes V ON V.id = A.id_ville WHERE A.id_categorie = :id_cat OR C.id_parent = :id_cat ORDER BY A.created_date DESC LIMIT '.$debut.','.$nbr_elements_par_page.' ';
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
11 févr. 2022 à 23:40
11 févr. 2022 à 23:40
Tu es sûr d'avoir tout ton code ?
Je ne t'ai donné que le début de ton fichier j'ai pas remis tout ce qu'il y avait en dessous...
Je ne t'ai donné que le début de ton fichier j'ai pas remis tout ce qu'il y avait en dessous...
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
11 févr. 2022 à 23:57
11 févr. 2022 à 23:57
Je pense que j'ai tout le code. Dans la page cmdaffichage:
//pour afficher les categories du Menu function getAnnonceCategorie($id_cat){ global $bdd; $sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en','es']) ))? $_SESSION['lang'] : 'fr'; $page = (!empty($_GET["page"]) )? intval($_GET["page"]) : 1; $nbr_elements_par_page=5; $debut=($page-1)*$nbr_elements_par_page; $sql = ' SELECT A.* ,C.nom_'.$sql_lang.' AS CATEGORIE ,V.ville_'.$sql_lang.' AS VILLE FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie LEFT JOIN villes V ON V.id = A.id_ville WHERE A.id_categorie = :id_cat OR C.id_parent = :id_cat ORDER BY A.created_date DESC LIMIT '.$debut.','.$nbr_elements_par_page.' '; try { $req = $bdd->prepare($sql); $req->execute( array('id_cat'=>$id_cat) ); $res = $req->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { echo "Erreur dans la requête " . $sql; } // le temps des tests pour voir le résultat return $res; } function getPhotosAnnonces($annonces) { global $bdd; $sql = 'SELECT id_annonce,filepath as IMG FROM images_annonces WHERE id_annonce IN (' . implode(',', array_column($annonces, 'id')) . ')'; try { $req = $bdd->prepare($sql); $req->execute(); $res = $req->fetchAll(PDO::FETCH_GROUP); } catch (Exception $e) { echo "Erreur dans la requête " . $sql; } // le temps des tests pour voir le résultat return $res; } function affichageAnnonce($id_cat){ global $bdd; $annonces = getAnnonceCategorie($id_cat); $images = getPhotosAnnonces($annonces); $res = []; foreach ($annonces as $R) { $res[$R['id']] = $R; $imgs = !empty($images[$R['id']]) ? $images[$R['id']] : NULL; if(!empty($imgs)){ foreach($imgs as $I){ $res[$R['id']]['images'][] = !empty($I['IMG']) ? $I['IMG'] : null; } }else{ $res[$R['id']]['images'] = null; } } return $res; } //Pour compter le nombre d'annonce dans la page d'affichage function getNbAnnonceByCategorie($id_cat){ global $bdd; $sql= "SELECT COUNT(A.id) AS cpt FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie WHERE A.id_categorie = :id_cat OR C.id_parent = :id_cat "; $datas = array(':id_cat'=>$id_cat); try { $req = $bdd->prepare($sql); $req->execute($datas); $res = $req->fetchColumn(); //https://www.php.net/manual/fr/pdostatement.fetchcolumn.php } catch (Exception $e) { echo "<br>Erreur dans la requête " . $sql . '<br>'; echo $e->getMessage(); var_dump($datas); } // le temps des tests pour voir le résultat return $res; }
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
11 févr. 2022 à 23:57
11 févr. 2022 à 23:57
Et la page affichage.php:
<?php include "../cnx.php"; include "../control/cmdaffichage.php"; include "../header.php"; $id_cat = !empty($_GET['id']) ? trim($_GET['id']) : null; $NB = getNbAnnonceByCategorie($id_cat); //Pagination $page = (!empty($_GET["page"])) ? intval($_GET["page"]) : 1; $nbr_elements_par_page= 5; $nbre_de_pages = ceil($NB/$nbr_elements_par_page); $debut=($page-1)*$nbr_elements_par_page; ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="/style.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> </head> <body> <div class="conteneur-annonce"> <div class="tri"> <span>trier</span> <?php if(($id_cat==1) || ($id_cat==5) || ($id_cat >=101 && $id_cat <=106) || ($id_cat >=501 && $id_cat <=504)) { echo " <select onchange='trier(this.value)' id='prix-superficie'> <option value=''>Default</option> <option value='price|1'>Prix croissants </option> <option value='price|-1'>Prix décroissants</option> <option value='superficie|1'>Surface croissantes </option> <option value='superficie|-1'>Surface décroissantes </option> </select>"; } else{ echo " <select onchange='trier(this.value)' id='prix-superficie'> <option value=''>Default</option> <option value='price|1'>Prix croissants </option> <option value='price|-1'>Prix décroissants</option> </select>"; } ?> </div> <p class="toutes"> <?php if(isset($_GET['id'])){ $id_cat = !empty($_GET['id']) ? trim($_GET['id']) : null; $anouncement = affichageAnnonce($id_cat); foreach ($anouncement as $a) { $id= $a['id']; $images = !empty($a['images']) ? $a['images'] : ['no_image.png']; // array if (!empty($images)) { //boucle sur les images echo'<div class="container">'; echo ' <div class="slider" >'; foreach ($images as $img) { echo '<img class ="active" style="width:240px; height:170px;" src="/' . $img . '">'; } echo "</div>"; // fin div slider . } echo '<div class= "informations">'; echo '<a class="maquette" href="/principales/single.php?id='.$id.'" > '; echo "<p class='title'>" . $a['titre'] . "</p>"; echo "<p class='category'><i class='fa fa-list-alt'></i> " . $a['CATEGORIE'] . "</p>"; echo "<p class='price'><span class='mru'>".$lang['prix']." :</span><span class='valeur'>".$a['prix']."</span></p>"; if(($id_cat==1) || ($id_cat==5) || ($id_cat >=101 && $id_cat <=106) || ($id_cat >=501 && $id_cat <=504)){ echo "<p class='superficie'> <i class='fas fa-chart-area'></i> <span class='valeur'>".$a['superficie']."</span> ". $a['unite'] . "</p>"; } echo "<p class='date'> <i class='fa fa-calendar'></i> " . $a['created_date'] . "</p>"; echo'</a>'; echo"</div>"; //fin div informations echo "</div>"; // fin div container } }//fin accolade isset ?> </div> <?php echo"<div class='pagination'>"; for($i=1;$i<=$nbre_de_pages;$i++){ echo "<a class='paginationlien' href='?page=$i'>$i</a>" ; } echo"</div>"; //fin div pagination ?>
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
12 févr. 2022 à 00:47
12 févr. 2022 à 00:47
Essayes ça et dis nous ce que ça t'affiche
<?php //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE require_once "../cnx.php"; require_once "../control/cmdaffichage.php"; require_once "../header.php"; $id_cat = !empty($_GET['id']) ? trim($_GET['id']) : null; $NB = getNbAnnonceByCategorie($id_cat); $anouncement = affichageAnnonce($id_cat); //Pagination $page = (!empty($_GET["page"])) ? intval($_GET["page"]) : 1; $nbr_elements_par_page= 5; $nbre_de_pages = ceil($NB/$nbr_elements_par_page); $debut=($page-1)*$nbr_elements_par_page; //--- DEBUG -----// function debug($var,$title=""){ echo "<div class='debug'><br>".$title."</br>"; echo "<pre>"; var_dump($var); echo "</pre>"; echo "<hr></div>"; } debug($id_cat,"id_cat"); debug($NB,"NB"); debug($nbre_de_pages,"nbre_de_pages"); debug($debut,"debut"); debug($page,"page"); debug($anouncement,"anouncement"); //---- FIN DU DEBUG ----------// ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="/style.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> </head> <body> <div class="conteneur-annonce"> <div class="tri"> <span>trier</span> <?php if( $id_cat==1 || $id_cat==5 || ($id_cat >=101 && $id_cat <=106) || ($id_cat >=501 && $id_cat <=504)) { echo " <select onchange='trier(this.value)' id='prix-superficie'> <option value=''>Default</option> <option value='price|1'>Prix croissants </option> <option value='price|-1'>Prix décroissants</option> <option value='superficie|1'>Surface croissantes </option> <option value='superficie|-1'>Surface décroissantes </option> </select>"; } else{ echo " <select onchange='trier(this.value)' id='prix-superficie'> <option value=''>Default</option> <option value='price|1'>Prix croissants </option> <option value='price|-1'>Prix décroissants</option> </select>"; } ?> </div> <p class="toutes"> <?php if($id_cat){ foreach ($anouncement as $a) { $id= $a['id']; $images = !empty($a['images']) ? $a['images'] : ['no_image.png']; // array //boucle sur les images echo'<div class="container">'; if (!empty($images)) { echo ' <div class="slider" >'; foreach ($images as $img) { echo '<img class ="active" style="width:240px; height:170px;" src="/' . $img . '">'; } echo "</div>"; // fin div slider . } echo '<div class= "informations">'; echo '<a class="maquette" href="/principales/single.php?id='.$id.'" > '; echo "<p class='title'>" . $a['titre'] . "</p>"; echo "<p class='category'><i class='fa fa-list-alt'></i> " . $a['CATEGORIE'] . "</p>"; echo "<p class='price'><span class='mru'>".$lang['prix']." :</span><span class='valeur'>".$a['prix']."</span></p>"; if(($id_cat==1) || ($id_cat==5) || ($id_cat >=101 && $id_cat <=106) || ($id_cat >=501 && $id_cat <=504)){ echo "<p class='superficie'> <i class='fas fa-chart-area'></i> <span class='valeur'>".$a['superficie']."</span> ". $a['unite'] . "</p>"; } echo "<p class='date'> <i class='fa fa-calendar'></i> " . $a['created_date'] . "</p>"; echo'</a>'; echo"</div>"; //fin div informations echo "</div>"; // fin div container } }//fin accolade isset else{ echo "id_cat est vide !"; } ?> </div> <?php echo"<div class='pagination'>"; for($i=1;$i<=$nbre_de_pages;$i++){ echo "<a class='paginationlien' href='?page=$i'>$i</a>" ; } echo"</div>"; //fin div pagination ?>
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
12 févr. 2022 à 01:04
12 févr. 2022 à 01:04
Voici le résultat si on clique sur la page 1:
Erreur dans la requête SELECT id_annonce,filepath as IMG FROM images_annonces WHERE id_annonce IN ()
Notice: Undefined variable: res in C:\wamp64\www\Projetsite\control\cmdaffichage.php on line 204
Il s'agit de cette fonction:
Suite des erreurs:
id_cat
C:\wamp64\www\Projetsite\principales\affichage.php:30:null
NB
C:\wamp64\www\Projetsite\principales\affichage.php:30:string '0' (length=1)
nbre_de_pages
C:\wamp64\www\Projetsite\principales\affichage.php:30:float 0
debut
C:\wamp64\www\Projetsite\principales\affichage.php:30:int 0
page
C:\wamp64\www\Projetsite\principales\affichage.php:30:int 1
anouncement
C:\wamp64\www\Projetsite\principales\affichage.php:30:
array (size=0)
empty
id_cat est vide !
Erreur dans la requête SELECT id_annonce,filepath as IMG FROM images_annonces WHERE id_annonce IN ()
Notice: Undefined variable: res in C:\wamp64\www\Projetsite\control\cmdaffichage.php on line 204
Il s'agit de cette fonction:
function getPhotosAnnonces($annonces) { global $bdd; $sql = 'SELECT id_annonce,filepath as IMG FROM images_annonces WHERE id_annonce IN (' . implode(',', array_column($annonces, 'id')) . ')'; try { $req = $bdd->prepare($sql); $req->execute(); $res = $req->fetchAll(PDO::FETCH_GROUP); } catch (Exception $e) { echo "Erreur dans la requête " . $sql; } // le temps des tests pour voir le résultat return $res; }
Suite des erreurs:
id_cat
C:\wamp64\www\Projetsite\principales\affichage.php:30:null
NB
C:\wamp64\www\Projetsite\principales\affichage.php:30:string '0' (length=1)
nbre_de_pages
C:\wamp64\www\Projetsite\principales\affichage.php:30:float 0
debut
C:\wamp64\www\Projetsite\principales\affichage.php:30:int 0
page
C:\wamp64\www\Projetsite\principales\affichage.php:30:int 1
anouncement
C:\wamp64\www\Projetsite\principales\affichage.php:30:
array (size=0)
empty
id_cat est vide !
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
12 févr. 2022 à 09:13
12 févr. 2022 à 09:13
Le plus important c'est la dernière ligne
id_cat est vide !
Quel est l' url afficher dans ton navigateur ?
id_cat est vide !
Quel est l' url afficher dans ton navigateur ?
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
12 févr. 2022 à 14:11
12 févr. 2022 à 14:11
Quand on clique sur une catégorie dans le menu (immobilier par exemple), l'url est le suivant: http://projetsite/principales/affichage.php?id=1
Mais en cliquant sur une page 1, ou 2, 3.. l'url: http://projetsite/principales/affichage.php?page=2
Et si id_cat est vide, peut être que l'erreur dans cette ligne:
Mais en cliquant sur une page 1, ou 2, 3.. l'url: http://projetsite/principales/affichage.php?page=2
Et si id_cat est vide, peut être que l'erreur dans cette ligne:
$id_cat = !empty($_GET['id']) ? trim($_GET['id']) : null;
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
12 févr. 2022 à 14:14
12 févr. 2022 à 14:14
L'erreur est plutôt dans le lien qui est généré pour changer de page il faut y remettre l'id de la catégorie ....(en plus du numéro de page qui s'y trouve déjà)
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
12 févr. 2022 à 14:41
12 févr. 2022 à 14:41
Tu avais raison, l'erreur était dans le lien. Il fallait ajouter l'id de la catégorie:
Et pour la barre de recherche dans une autre page, j'ai fait ainsi et ça marché:
Merci encore Jordane :)
echo "<a class='paginationlien' href='?id=$id_cat&page=$i'>$i</a>" ;
Et pour la barre de recherche dans une autre page, j'ai fait ainsi et ça marché:
echo "<a class='paginationlien' href='?q=$q&categorie=$categorie&villes=$villes&page=$i'>$i</a>" ;
Merci encore Jordane :)