[PHP] Probleme de tri d'article par le client
Résolu/Fermé
Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
-
8 août 2008 à 19:07
medoc13 Messages postés 65 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 12 août 2008 - 11 août 2008 à 20:54
medoc13 Messages postés 65 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 12 août 2008 - 11 août 2008 à 20:54
A voir également:
- [PHP] Probleme de tri d'article par le client
- Excel trier par ordre croissant chiffre - Guide
- Formate pour taxer client frigo vide - Forum PDF
- Easy php - Télécharger - Divers Web & Internet
- Orange service client - Guide
8 réponses
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
8 août 2008 à 19:23
8 août 2008 à 19:23
essai ça
if (isset($_GET['typ_c'])) //Si "typ_c" est remplit :
{
$type=$_GET['typ_c'];
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage;
$reponse = mysql_query("SELECT * FROM articles WHERE type='$type' ORDER BY id DESC LIMIT $premierArticleAAfficher , $nombreArticlesParPage "); //On choisi les articles selon la choix du client.
}
else //Sinon :
{
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage;
$reponse = mysql_query("SELECT * FROM articles ORDER BY id DESC LIMIT $premierArticleAAfficher , $nombreArticlesParPage "); //On affiche tous les articles.
}
if (isset($_GET['typ_c'])) //Si "typ_c" est remplit :
{
$type=$_GET['typ_c'];
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage;
$reponse = mysql_query("SELECT * FROM articles WHERE type='$type' ORDER BY id DESC LIMIT $premierArticleAAfficher , $nombreArticlesParPage "); //On choisi les articles selon la choix du client.
}
else //Sinon :
{
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage;
$reponse = mysql_query("SELECT * FROM articles ORDER BY id DESC LIMIT $premierArticleAAfficher , $nombreArticlesParPage "); //On affiche tous les articles.
}
Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
9 août 2008 à 11:23
9 août 2008 à 11:23
J'avais aussi essayé de mettre ce que contenait "typ_c" dans une varible, mais il y avis toujours cette erreur.
D'autres suggestions ? En tout cas, merci.
D'autres suggestions ? En tout cas, merci.
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
9 août 2008 à 13:23
9 août 2008 à 13:23
est ce que tu peux afficher ta page complete
Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
11 août 2008 à 17:47
11 août 2008 à 17:47
Désolé pour le retard.
Oui, ma page s'affiche totalement, c'est simplement le fait que le "mysql_fetch_array" ne peut pas s'effectuer.
A moins que tu veuille mon codage de page ? =X
Oui, ma page s'affiche totalement, c'est simplement le fait que le "mysql_fetch_array" ne peut pas s'effectuer.
A moins que tu veuille mon codage de page ? =X
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
11 août 2008 à 18:29
11 août 2008 à 18:29
Salut,
d'ou viennent ces deux variables :
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage;
si elles ne sont pas définies ou calculées plus haut dans ton code il y des chances que la ligne mysql_query(...
plante, donc la suivante aussi
d'ou viennent ces deux variables :
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage;
si elles ne sont pas définies ou calculées plus haut dans ton code il y des chances que la ligne mysql_query(...
plante, donc la suivante aussi
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
11 août 2008 à 18:30
11 août 2008 à 18:30
Elle sont définies au tout début du code PHP :
<?php include("../connexion.php"); //Import du fichier .php de connexion. $nombreArticlesParPage = 15; $retour = mysql_query('SELECT COUNT(*) AS nb_articles FROM articles'); $donnees = mysql_fetch_array($retour);$totalDesArticles = $donnees['nb_articles']; $nombreDePages = ceil($totalDesArticles / $nombreArticlesParPage); [...]
kryoportail
Messages postés
222
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
22 mai 2014
125
11 août 2008 à 18:31
11 août 2008 à 18:31
Salut,
L'erreur : 'MySQL result resource in ******* on line 74' signifie que le résultat fournit par ta requête SQL n'est pas valide et déclenche une erreur lorsque tu tentes de l'utiliser avec la fonction 'mysql_fetch_array()' en ligne 74.
Il y a donc 2 solutions :
- Soit tu utilises pas la bonne variables dans 'fetch_array'
- Soit la requête SQL échoue. Dans ce cas le résultat de requête renvoie FALSE ou NULL (je ne sais plus !).
Peut être qu'un
Il te diras quelle erreur SQL s'est produite...
Si tu toujours pas à trouver le problème post le code au moins jusqu'à la ligne 74.
Et exporte la structure de la table 'articles' pour qu'on puisse t'aider...
Note : il convient de toujours vérifier le résultat d'une requète avant de l'utiliser... soit par un 'if', soit par un système de gestion d'Exception (uniquement dispo sous PHP5)....
Amicalement,
S@M...
http://kryoportail.ath.cx
L'erreur : 'MySQL result resource in ******* on line 74' signifie que le résultat fournit par ta requête SQL n'est pas valide et déclenche une erreur lorsque tu tentes de l'utiliser avec la fonction 'mysql_fetch_array()' en ligne 74.
Il y a donc 2 solutions :
- Soit tu utilises pas la bonne variables dans 'fetch_array'
- Soit la requête SQL échoue. Dans ce cas le résultat de requête renvoie FALSE ou NULL (je ne sais plus !).
Peut être qu'un
echo( mysql_error() );placé juste après les 'mysql_query' pourrait t'en dire plus...
Il te diras quelle erreur SQL s'est produite...
Si tu toujours pas à trouver le problème post le code au moins jusqu'à la ligne 74.
Et exporte la structure de la table 'articles' pour qu'on puisse t'aider...
Note : il convient de toujours vérifier le résultat d'une requète avant de l'utiliser... soit par un 'if', soit par un système de gestion d'Exception (uniquement dispo sous PHP5)....
Amicalement,
S@M...
http://kryoportail.ath.cx
Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
11 août 2008 à 19:01
11 août 2008 à 19:01
Voici mon code a partir du <body>.
De plus, lorsque j'ai mis les "or die [...]" plus aucun article ne s'affichait.
Après une petite recherche en changeant le nombre et la place des "or die [...]", il s'est avéré que si il s'en trouvais un a la ligne que j'ai volontairement espacée des autres, les articles ne s'affichaient pas. S'il était absent, cela fonctionnait normalement. Donc l'erreur serait là. Mais comment ça serait possible ? ><
De plus, lorsque j'ai mis les "or die [...]" plus aucun article ne s'affichait.
Après une petite recherche en changeant le nombre et la place des "or die [...]", il s'est avéré que si il s'en trouvais un a la ligne que j'ai volontairement espacée des autres, les articles ne s'affichaient pas. S'il était absent, cela fonctionnait normalement. Donc l'erreur serait là. Mais comment ça serait possible ? ><
<div id="body"> <span class="band">Trier par : <a href="?typ_c=videos">Vidéos</a> - <a href="?typ_c=images">Images</a> - <a href="?typ_c=anims">Animations</a> - <a href="?typ_c=jeux">Jeux</a></span><br /><br /> <?php include("../connexion.php"); //Import du fichier .php de connexion. $nombreArticlesParPage = 15; $retour = mysql_query('SELECT COUNT(*) AS nb_articles FROM articles'); $donnees = mysql_fetch_array($retour);$totalDesArticles = $donnees['nb_articles']; $nombreDePages = ceil($totalDesArticles / $nombreArticlesParPage); if (isset($_GET['page']))//Si "page" est remplit : { $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (articles.php?page=4) } else // La variable n'existe pas, c'est la première fois qu'on charge la page { $page = 1; // On se met sur la page 1 (par défaut) } // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL if (isset($_GET['typ_c'])) //Si "typ_c" est remplit : { $premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage or die (mysql_error()); $reponse = mysql_query('SELECT * FROM articles WHERE type='.$_GET['typ_c'].' ORDER BY id DESC LIMIT ' . $premierArticleAAfficher . ', ' . $nombreArticlesParPage . '') or die (mysql_error()); //On choisi les articles selon le choix du client. } else //Sinon : { $premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage or die (mysql_error()); $reponse = mysql_query('SELECT * FROM articles ORDER BY id DESC LIMIT ' . $premierArticleAAfficher . ', ' . $nombreArticlesParPage . '') or die (mysql_error()); //On choisi les articles selon le choix du client. } while($donnees = mysql_fetch_array($reponse)) { [...]
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
11 août 2008 à 19:47
11 août 2008 à 19:47
Salut,
perso je vois une première erreur de principe
pour trouver le nombre de pages, tu as fais une requette pour compter tous les articles
et ensuite tu va afficher page par page suivant l'article sélectionné.
c'est pas bon
ensuite pour tes or die
il faut pour chaque commande type mysql_.....
tu mettes par exemple :
et la ça te sortira tous les pb des commandes mysql_...
perso je vois une première erreur de principe
pour trouver le nombre de pages, tu as fais une requette pour compter tous les articles
et ensuite tu va afficher page par page suivant l'article sélectionné.
c'est pas bon
ensuite pour tes or die
il faut pour chaque commande type mysql_.....
tu mettes par exemple :
mysql_query(.........) or die ("pb avec la requette ".mysql_error());
et la ça te sortira tous les pb des commandes mysql_...
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
11 août 2008 à 20:54
11 août 2008 à 20:54
Re salut,
à mon avis , utlises des requetes pleine , non raccourci et fais des echos sur tes requetes
exemple:
$req="SELECT COUNT(*) FROM ta_table";//tu fais un echo de ta requete
echo $req;
$query=mysql_query($req) or die("Impossible de compter le nb de lignes dans ta_table");
while($row=mysql_fetch_array($query)){
$nb_lignes=$row[0];
echo $nb_lignes;
}
ça te permettra de debugge, et une fois que tout fonctionne, tu peux recompacter ton code
à mon avis , utlises des requetes pleine , non raccourci et fais des echos sur tes requetes
exemple:
$req="SELECT COUNT(*) FROM ta_table";//tu fais un echo de ta requete
echo $req;
$query=mysql_query($req) or die("Impossible de compter le nb de lignes dans ta_table");
while($row=mysql_fetch_array($query)){
$nb_lignes=$row[0];
echo $nb_lignes;
}
ça te permettra de debugge, et une fois que tout fonctionne, tu peux recompacter ton code