[php mysql] problème de order, limit et pages
fabfabou
Messages postés
4
Statut
Membre
-
lural -
lural -
Bonjour
Premiers pas en php et sur CCM...
Alors voilà. J'ai un problème avec un affichage de résultats sur plusieurs pages.
J'ai besoin d'extraire des listes de produits (avec les infos qui vont avec) d'un site pour en faire un fichier xml (pour l'importer ensuite dans des applications). Chaque fichier xml correspondant à un type de produit (il y a plusieurs types de produits dans le site). J'ai donc une première page avec la liste des types de produits, un bouton et hop, ça génère le xml.
Lorsqu'il n'y a pas beaucoup de produits dans le type sélectionné, tout va bien. L'xml est créé, etc.
Par contre, lorsqu'il y a beaucoup de produits, c'est trop long, et donc il faut découper en plusieurs pages. Et c'est là qu'est le problème.
Mon prédecesseur avait préparé ceci :
Première page : on choisit le type de produit et une page. Voici le code pour choisir la page :
Suivi dans la page suivante de :
Ensuite, je passe les détails pour récupérer le type de produit etc., mais voici la requête principale :
Suivi d'un while et de tout ce qu'il faut pour récupérer les informations supplémentaires et les afficher correctement dans un fichier.xml.
Lorsqu'on choisit la page 1, tout va bien, les premiers résultats s'affichent dans l'ordre alphabétique. Les problèmes arrivent dès lors qu'on affiche les pages suivantes.
Ainsi, lorsqu'on affiche la page 2 ou la page 3, les résultats sont dans l'ordre alphabétique mais on trouve certains résultats en commun sur la page 2 et la page 3. La 2 et la 3 commencent avec des produits différents et finissent avec les mêmes produits.
J'ai vu que mysql arrête de trier dès qu'il a trouvé la limite. Est-ce la raison de mon problème ? Est-il ailleurs ?
En tout cas, merci beaucoup à quiconque pourra éclairer ma lanterne !
Premiers pas en php et sur CCM...
Alors voilà. J'ai un problème avec un affichage de résultats sur plusieurs pages.
J'ai besoin d'extraire des listes de produits (avec les infos qui vont avec) d'un site pour en faire un fichier xml (pour l'importer ensuite dans des applications). Chaque fichier xml correspondant à un type de produit (il y a plusieurs types de produits dans le site). J'ai donc une première page avec la liste des types de produits, un bouton et hop, ça génère le xml.
Lorsqu'il n'y a pas beaucoup de produits dans le type sélectionné, tout va bien. L'xml est créé, etc.
Par contre, lorsqu'il y a beaucoup de produits, c'est trop long, et donc il faut découper en plusieurs pages. Et c'est là qu'est le problème.
Mon prédecesseur avait préparé ceci :
Première page : on choisit le type de produit et une page. Voici le code pour choisir la page :
echo "<SELECT NAME=\"limite\"> <option value=\"non\">__</option> <option value=\"0\">0</option> <option value=\"1\">1</option> <option value=\"2\">2</option> <option value=\"3\">3</option> <option value=\"4\">4</option> <option value=\"5\">5</option> <option value=\"6\">6</option> <option value=\"7\">7</option> <option value=\"8\">8</option> <option value=\"9\">9</option> <option value=\"10\">10</option></select>"; echo "<input type=\"submit\" value=\"Valider\"></form>";
Suivi dans la page suivante de :
$limit=$_POST['limite'];
if($limit=="non")
{
$limit1=0;
$limit2=999999;
}
else
{
$limit1=$limit*200;
$limit2=$limit1+200;
}
Ensuite, je passe les détails pour récupérer le type de produit etc., mais voici la requête principale :
$result = mysql_query("SELECT id, titre FROM videos WHERE genre ='".mysql_escape_string($genrepost)."' AND visible ='1' ORDER BY titre LIMIT ".$limit1.",".$limit2."") or die (mysql_error());
Suivi d'un while et de tout ce qu'il faut pour récupérer les informations supplémentaires et les afficher correctement dans un fichier.xml.
Lorsqu'on choisit la page 1, tout va bien, les premiers résultats s'affichent dans l'ordre alphabétique. Les problèmes arrivent dès lors qu'on affiche les pages suivantes.
Ainsi, lorsqu'on affiche la page 2 ou la page 3, les résultats sont dans l'ordre alphabétique mais on trouve certains résultats en commun sur la page 2 et la page 3. La 2 et la 3 commencent avec des produits différents et finissent avec les mêmes produits.
J'ai vu que mysql arrête de trier dès qu'il a trouvé la limite. Est-ce la raison de mon problème ? Est-il ailleurs ?
En tout cas, merci beaucoup à quiconque pourra éclairer ma lanterne !
A voir également:
- [php mysql] problème de order, limit et pages
- Impossible de supprimer une page word - Guide
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- 25000 caractères combien de pages ✓ - Forum Bureautique
- Comment numéroter les pages sur powerpoint - Guide
2 réponses
Salut,
J'ai le même soucie avec un script différent mais le résultat rechercher semble être le même et les problème identique comme si le limit ne fonctionné pas correctement. Jaimerais aussi avoir la solution.
Merci
J'ai le même soucie avec un script différent mais le résultat rechercher semble être le même et les problème identique comme si le limit ne fonctionné pas correctement. Jaimerais aussi avoir la solution.
Merci
Bonjour, bonjour !
Même souci pour moi.
J'ai d'abord penser que le serveur ou la version d'Oracle (pour mon cas) ne prenait pas cette fonction, mais je n'ai pas trouver d'autres renseignements.
Gérer cela en php me parait assez crade, surtout s'il existe une possibilité SQL ...
Si quelqu'un peut aider, ou donner une autre possibilité pour le même résultat, merci bien ;)
Même souci pour moi.
J'ai d'abord penser que le serveur ou la version d'Oracle (pour mon cas) ne prenait pas cette fonction, mais je n'ai pas trouver d'autres renseignements.
Gérer cela en php me parait assez crade, surtout s'il existe une possibilité SQL ...
Si quelqu'un peut aider, ou donner une autre possibilité pour le même résultat, merci bien ;)