Affichage de resultat apres requete
petinico
-
petinico -
petinico -
bonjour,
j'ai un moteur de recherche qui utilise une requete à base de mot-clés, pour afficher des images. Mon script fonctionne mais mes resultats sont toujours les memes, c'est à dire les 15 premieres images de la bdd. Sachant que :
- ma requete fonctionne dans un autre script
- je l'ai testée en enlevant le "limit..."
- j'ai tenté de renommer differement mes "select" et "result"
j'ai toujours le meme resultat !! pourquoi la requete ne respecte pas les mot-cle selectionnés, et affiche-t-elle toujours les 15 premieres images quelles qu'elles soient ?
<?
// Connection à la base.
$db = mysql_connect ("sql.maisonx.com", "qualitypics", "dusty") or die ('impossible de se connecter');
mysql_select_db("qualitypics", $db) or die ('impossible de selectionner la base');
$nombre = 15; // on va afficher 15 résultats par page.
if (!$limite) $limite = 0; // si on arrive sur la page pour la première fois
// on met limite à 0.
$path_parts = pathinfo($PHP_SELF);
$page = $path_parts["basename"];
// compte le nombre total d'enregistrements
$select = 'SELECT count(id) FROM photo';
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
$ligne = mysql_fetch_row($result);
$total = $ligne[0];
//Selectionne la portion d'enregistrements à afficher.
$select = "select numero from photo where motcle1='$cle1' or motcle2='$cle1' or motcle3='$cle1' or motcle1='$cle2' or motcle2='$cle2' or motcle3='$cle2' or motcle1='$cle3' or motcle2='$cle3' or motcle3='$cle3' limit $limite,$nombre";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// requete de selection de la premiere page
$select = "SELECT numero FROM photo limit 0,15";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// affichage des resultats de la premiere page
while ($ligne = mysql_fetch_array ($result))
{
print "$ligne[0]<a href=\"albumembre.php?image=images/maj01_08_03/$ligne[0]$numero.jpg
\" target=\"_new\"><img src=\"images/maj01_08_03/".$ligne[0].$numero."a.jpg\" border=\"0\" height=\"123\"></a>";
}
mysql_free_result ($result);
// reinitialisation de $limite pour afficher la page suivante
$limite=$nombre*($numero_page-1);
// calcul des limites suivantes et precedentes
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
// Affichage du lien précedent si besoin
if($limite != 0) {
echo '<a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a>';
}
// Affichage du lien suivant si besoin
if($limitesuivante < $total) {
echo '<a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a>';
}
?>
merci par avance
petinico
j'ai un moteur de recherche qui utilise une requete à base de mot-clés, pour afficher des images. Mon script fonctionne mais mes resultats sont toujours les memes, c'est à dire les 15 premieres images de la bdd. Sachant que :
- ma requete fonctionne dans un autre script
- je l'ai testée en enlevant le "limit..."
- j'ai tenté de renommer differement mes "select" et "result"
j'ai toujours le meme resultat !! pourquoi la requete ne respecte pas les mot-cle selectionnés, et affiche-t-elle toujours les 15 premieres images quelles qu'elles soient ?
<?
// Connection à la base.
$db = mysql_connect ("sql.maisonx.com", "qualitypics", "dusty") or die ('impossible de se connecter');
mysql_select_db("qualitypics", $db) or die ('impossible de selectionner la base');
$nombre = 15; // on va afficher 15 résultats par page.
if (!$limite) $limite = 0; // si on arrive sur la page pour la première fois
// on met limite à 0.
$path_parts = pathinfo($PHP_SELF);
$page = $path_parts["basename"];
// compte le nombre total d'enregistrements
$select = 'SELECT count(id) FROM photo';
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
$ligne = mysql_fetch_row($result);
$total = $ligne[0];
//Selectionne la portion d'enregistrements à afficher.
$select = "select numero from photo where motcle1='$cle1' or motcle2='$cle1' or motcle3='$cle1' or motcle1='$cle2' or motcle2='$cle2' or motcle3='$cle2' or motcle1='$cle3' or motcle2='$cle3' or motcle3='$cle3' limit $limite,$nombre";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// requete de selection de la premiere page
$select = "SELECT numero FROM photo limit 0,15";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// affichage des resultats de la premiere page
while ($ligne = mysql_fetch_array ($result))
{
print "$ligne[0]<a href=\"albumembre.php?image=images/maj01_08_03/$ligne[0]$numero.jpg
\" target=\"_new\"><img src=\"images/maj01_08_03/".$ligne[0].$numero."a.jpg\" border=\"0\" height=\"123\"></a>";
}
mysql_free_result ($result);
// reinitialisation de $limite pour afficher la page suivante
$limite=$nombre*($numero_page-1);
// calcul des limites suivantes et precedentes
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
// Affichage du lien précedent si besoin
if($limite != 0) {
echo '<a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a>';
}
// Affichage du lien suivant si besoin
if($limitesuivante < $total) {
echo '<a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a>';
}
?>
merci par avance
petinico
A voir également:
- Affichage de resultat apres requete
- Resultat foot - Télécharger - Vie quotidienne
- Affichage double ecran - Guide
- Windows 11 affichage classique - Guide
- Lexer resultat - Télécharger - Sport
- Problème affichage page internet google chrome ✓ - Forum Google Chrome
7 réponses
Ca merdouille a partir de la.
//Selectionne la portion d'enregistrements à afficher.
$select = "select numero from photo where motcle1='$cle1' or motcle2='$cle1' or motcle3='$cle1' or motcle1='$cle2' or motcle2='$cle2' or motcle3='$cle2' or motcle1='$cle3' or motcle2='$cle3' or motcle3='$cle3' limit $limite,$nombre";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
Tu fais une requete, tu n'exploites pas les résultats, et tu ecrases $result avec une autre requete. Ca peut pas fonctionner.
Ensuite, tu as un probleme avec les limites.
// requete de selection de la premiere page
$select = "SELECT numero FROM photo limit 0,15";
Ca ne pourra que t'afficher la premiere page, pas les suivantes.
Ensuite ton $limite est réinitialisé au début du script à 15. C'est une deuxieme raison au non affichage des valeurs suivantes.
Kalamit,
Parle à ma culasse, mon carter est malade. :)
//Selectionne la portion d'enregistrements à afficher.
$select = "select numero from photo where motcle1='$cle1' or motcle2='$cle1' or motcle3='$cle1' or motcle1='$cle2' or motcle2='$cle2' or motcle3='$cle2' or motcle1='$cle3' or motcle2='$cle3' or motcle3='$cle3' limit $limite,$nombre";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
Tu fais une requete, tu n'exploites pas les résultats, et tu ecrases $result avec une autre requete. Ca peut pas fonctionner.
Ensuite, tu as un probleme avec les limites.
// requete de selection de la premiere page
$select = "SELECT numero FROM photo limit 0,15";
Ca ne pourra que t'afficher la premiere page, pas les suivantes.
Ensuite ton $limite est réinitialisé au début du script à 15. C'est une deuxieme raison au non affichage des valeurs suivantes.
Kalamit,
Parle à ma culasse, mon carter est malade. :)
Pour tes limites au début du script, tu verifies si $limite contient quelque chose. Si c'est pas le cas, il s'agit de la premiere page donc les quinze premiers résultat. Si c'est le cas, tu affiches les résultats de $limite à $limite+$nombre...
Pour la suite, faudrait que je regarde plus en détail mais je peux deja te dire que ca va pas la:
$result est utilisé deux fois, sans aller chercher les résultats !
Kalamit,
Parle à ma culasse, mon carter est malade. :)
if(!isset($limite)){
$limite = 15;
}
Pour la suite, faudrait que je regarde plus en détail mais je peux deja te dire que ca va pas la:
//Selectionne la portion d'enregistrements à afficher.
$select = "select numero from photo where motcle1='$cle1' or motcle2='$cle1' or motcle3='$cle1' or motcle1='$cle2' or motcle2='$cle2' or motcle3='$cle2' or motcle1='$cle3' or motcle2='$cle3' or motcle3='$cle3' limit $limite,$nombre";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// requete de selection de la premiere page
$select = "SELECT numero FROM photo limit 0,15";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
$result est utilisé deux fois, sans aller chercher les résultats !
Kalamit,
Parle à ma culasse, mon carter est malade. :)
j'ai l'impression que tu es dans le vrai !
voilà mes modifs :
j'ai peut-etre une piste :
//Selectionne la portion d'enregistrements à afficher.
$select = "select numero from photo where motcle1='$cle1' or motcle2='$cle1' or motcle3='$cle1' or motcle1='$cle2' or motcle2='$cle2' or motcle3='$cle2' or motcle1='$cle3' or motcle2='$cle3' or motcle3='$cle3' limit 0,15"; // limit $limite,$nombre";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// requete de selection de la premiere page
// $select = "SELECT numero FROM photo limit 0,15";
// $result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// affichage des resultats de la premiere page
while ($ligne = mysql_fetch_array ($result))
{
print "$ligne[0]<a href=\"albumembre.php?image=images/maj01_08_03/$ligne[0]$numero.jpg
\" target=\"_new\"><img src=\"images/maj01_08_03/".$ligne[0].$numero."a.jpg\" border=\"0\" height=\"123\"></a>";
}
mysql_free_result ($result);
cette fois ça affiche 15 photos correspondant à la requete avec les liens. par contre alors que c'est la premiere page, j'ai un lien precedent (donc pas logique) et le suivant affiche n'importe quoi !
@+
petinico
voilà mes modifs :
j'ai peut-etre une piste :
//Selectionne la portion d'enregistrements à afficher.
$select = "select numero from photo where motcle1='$cle1' or motcle2='$cle1' or motcle3='$cle1' or motcle1='$cle2' or motcle2='$cle2' or motcle3='$cle2' or motcle1='$cle3' or motcle2='$cle3' or motcle3='$cle3' limit 0,15"; // limit $limite,$nombre";
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// requete de selection de la premiere page
// $select = "SELECT numero FROM photo limit 0,15";
// $result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
// affichage des resultats de la premiere page
while ($ligne = mysql_fetch_array ($result))
{
print "$ligne[0]<a href=\"albumembre.php?image=images/maj01_08_03/$ligne[0]$numero.jpg
\" target=\"_new\"><img src=\"images/maj01_08_03/".$ligne[0].$numero."a.jpg\" border=\"0\" height=\"123\"></a>";
}
mysql_free_result ($result);
cette fois ça affiche 15 photos correspondant à la requete avec les liens. par contre alors que c'est la premiere page, j'ai un lien precedent (donc pas logique) et le suivant affiche n'importe quoi !
@+
petinico
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
OK.
Je te demandais ca, parce que je sais que ca:
$path_parts = pathinfo($PHP_SELF);
$page = $path_parts["basename"];
ne fonctionne pas chez certains hebergeurs...
Un truc que je ne comprends pas...
C'est quoi ca :
// reinitialisation de $limite pour afficher la page suivante
$limite=$nombre*($numero_page-1);
Kalamit,
Parle à ma culasse, mon carter est malade. :)
Je te demandais ca, parce que je sais que ca:
$path_parts = pathinfo($PHP_SELF);
$page = $path_parts["basename"];
ne fonctionne pas chez certains hebergeurs...
Un truc que je ne comprends pas...
C'est quoi ca :
// reinitialisation de $limite pour afficher la page suivante
$limite=$nombre*($numero_page-1);
Kalamit,
Parle à ma culasse, mon carter est malade. :)
je le comprends pas moi-meme !
en fait dans un autre forum, on m'a donné ce code en m'expliquant qu'il fallait reinitialisé $limite apres chaque affichage...
en fait dans un autre forum, on m'a donné ce code en m'expliquant qu'il fallait reinitialisé $limite apres chaque affichage...
bon, en insistant on va y arriver !
j'ai modifié mon $ligne (j'ai remarqué qu'il y en avait 2 !) :
// compte le nombre total d'enregistrements
$select = 'SELECT count(id) FROM photo';
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
$rows = mysql_fetch_row($result);
$total = $rows[0];
Sinon, j'ai toujours un probleme de lien, ma premiere page s'affiche avec le lien 'suivant' et j'ai cree une boucle pour incrementer la limite :
// calcul des limites suivantes et precedentes
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
// Affichage du lien suivant si besoin
while($limitesuivante < $total)
{
echo '<a href="'.$page.'?limit '.$limite.','.$nombre.'">Page Suivante</a>';
$limite = $limite + $nombre;
exit;
}
j'ai crée une boucle pour aller au bout de $total, mais elle s'arrete à 'exit', mais si je l'enleve, elle tourne à l'infini...par contre le lien est bien" limit 15,15 pour la 2eme page et limit 30,15 pour la troisieme...
à l'aide..merci
@+
petinico
j'ai modifié mon $ligne (j'ai remarqué qu'il y en avait 2 !) :
// compte le nombre total d'enregistrements
$select = 'SELECT count(id) FROM photo';
$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
$rows = mysql_fetch_row($result);
$total = $rows[0];
Sinon, j'ai toujours un probleme de lien, ma premiere page s'affiche avec le lien 'suivant' et j'ai cree une boucle pour incrementer la limite :
// calcul des limites suivantes et precedentes
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
// Affichage du lien suivant si besoin
while($limitesuivante < $total)
{
echo '<a href="'.$page.'?limit '.$limite.','.$nombre.'">Page Suivante</a>';
$limite = $limite + $nombre;
exit;
}
j'ai crée une boucle pour aller au bout de $total, mais elle s'arrete à 'exit', mais si je l'enleve, elle tourne à l'infini...par contre le lien est bien" limit 15,15 pour la 2eme page et limit 30,15 pour la troisieme...
à l'aide..merci
@+
petinico
peut-tu me donner plus de details ?
- comment exploiter les resultats de la requete sans ecraser $result
- et comment et où utiliser le $limite pour afficher les autres pages ?
merci
petinico