recherche + affichage par page
J’ai un soucie avec la recherche combiné avec un affichage page par page
Je fais l’appelle d’une fonction qui me fais affiché la barre de navigation, mon problème c’est quand je clique sur le bouton pour qu’il me renvoie sur la 2éme page par exemple il ne m’affiche rien aussi bien qu’il me faut pas compter tout le nombre d’enregistrement avec « count » aidez moi… j’ai beaucoup essayé mais pas de résultat
Malgré que ce même code marche très bien avec d’autre page qui contient un select simple.
Je fais l’appelle d’une fonction qui me fais affiché la barre de navigation, mon problème c’est quand je clique sur le bouton pour qu’il me renvoie sur la 2éme page par exemple il ne m’affiche rien aussi bien qu’il me faut pas compter tout le nombre d’enregistrement avec « count » aidez moi… j’ai beaucoup essayé mais pas de résultat
Malgré que ce même code marche très bien avec d’autre page qui contient un select simple.
- <?php $bdd=@mysql_connect($host,$user,$pass);
- @mysql_select_db($base,$bdd);
- switch($task)
- {
- case 2: // recherche dans la base
- default:
- ?>
- <table >
- <form name='recherche' action='recherche2.php3?task=2' method='post'>
- <tr>
- <td >
- <h3>Rechercher</h3>
- </td>
- </tr>
- <tr>
- <td align='left'>Mot du Titre : </td>
- <td><input type='text' name='nom'></td>
- </tr>
- <tr>
- <td align='left'>Auteur : </td>
- <td><input type='text' name='prenom'></td>
- </tr>
- <tr>
- <td> </td>
- <td><input type='submit' name='op2' value='Rechercher'></td>
- </tr>
- </form>
- </table>
- <?
- if ($op2)
- {
- $sql = 'SELECT count(*) FROM livres';
- $resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
- $nb_total = mysql_fetch_array($resultat);
- if (($nb_total = $nb_total[0]) == 0) {
- echo 'Aucune réponse trouvée';
- }
- else {
- if (!isset($_GET['debut'])) $_GET['debut'] = 0;
- $nb_affichage_par_page = 2;
- $query="SELECT * FROM$tableWHERE id IS NOT NULL";
- if ($nom)
- {
- $query.="AND titre LIKE '%$nom%'";
- };
- if ($prenom)
- {
- $query.="AND auteur LIKE '%$prenom%'";
- };
- $query.=" ORDER BY titre ";
- $res=mysql_query($query);
- while($l=mysql_fetch_object($res))
- {
- echo"<table width='0%' cellpadding='1' cellspacing='0' border='0' align='center'>
- <tr>
- <td><b>Auteur:</b></td>
- <td>$l->auteur</td>
- <td><b>Titre:</b></td>
- <td>$l->titre</td>
- </tr>";
- echo"<hr size=1 align=center>";};
- echo"</table>";
- echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 3).'</span>';
- } } };
- mysql_close;
- ?>php ?>
On va dire que tu débute, mais bon, ton code est un concentré de ce qu'il ne faut pas faire ^^;
Lignes 1,2 : l'opérateur de mutisme ne doit être utilisé que lorsque tu vérifie le code de retour de la fonction bavarde. ici, tu fais une connexion sans vérifier que tu as bien fait la connexion.
Ligne 8 : certes PHP est un langage de template, mais faut pas exagérer. Évites de telles alternances entre code de traitement (PHP) et code d'affichage (HTML). C'est illisible et impossible à maintenir.
Ligne 18,23,28: pourquoi tant d'espaces insécables ?
Ligne 47: il manque des espaces entre FROM, $table et WHERE.
Ligne 51,55: pourquoi ces points-virgules après les parenthèses fermantes du if ?
Ligne 60: on utilise jamais l tout seul pour les noms de variables, ça se confond trop facilement avec 1.
Ligne 74: HTML non-valide.
Ligne 76: J'espère que tu teste le contenu de $_GET['debut'] dans ta fonction barre_navigation.
Ligne 79: ça marche ça ?
Ligne 80: un petit problème de caractères qui trainent...
Par contre je n'ai pas compris la phrase où tu explique ton problème. Tu peux reformuler ?
Lignes 1,2 : l'opérateur de mutisme ne doit être utilisé que lorsque tu vérifie le code de retour de la fonction bavarde. ici, tu fais une connexion sans vérifier que tu as bien fait la connexion.
Ligne 8 : certes PHP est un langage de template, mais faut pas exagérer. Évites de telles alternances entre code de traitement (PHP) et code d'affichage (HTML). C'est illisible et impossible à maintenir.
Ligne 18,23,28: pourquoi tant d'espaces insécables ?
Ligne 47: il manque des espaces entre FROM, $table et WHERE.
Ligne 51,55: pourquoi ces points-virgules après les parenthèses fermantes du if ?
Ligne 60: on utilise jamais l tout seul pour les noms de variables, ça se confond trop facilement avec 1.
Ligne 74: HTML non-valide.
Ligne 76: J'espère que tu teste le contenu de $_GET['debut'] dans ta fonction barre_navigation.
Ligne 79: ça marche ça ?
Ligne 80: un petit problème de caractères qui trainent...
Par contre je n'ai pas compris la phrase où tu explique ton problème. Tu peux reformuler ?
mon problème est que la barre de navigation s'affiche comme << 1 2 3 >> par exemple mais quand je bascule vers 2 la page n'affiche que la zone de recherche et le reste vide (pas de suite de la recherche).
et a propos du code il marche bien mais j'ai enlevé quelque ligne pour le simplifié. et mercie
et a propos du code il marche bien mais j'ai enlevé quelque ligne pour le simplifié. et mercie
c'est ce que disais Lupusmic, tu verifies la valeur de $_GET['debut'] ???
(Keika) La solution est certainement dans mes remarques, mais libre à lui de les ignorer. Pour ma part, je n'interviendrai plus, vu qu'il ne considère pas mes réponses.
Accès rapide :
Remonter 

