Php/mysql ma fonction ne marche pas

parvn Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -  
parvn Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Il y'a une fonction nav.php que j'utulise pour afficher un liens de navigation pour faire defiler les entree (les donnees) se trouvant dans ma table nome guestbook, mais cela ne marche pas quand je clique sur "next entries" ce sont les memes donnees deja a l'ecrant qui y sont, donc il n'avance pas.

voici ma function nav.php



<?php
$limit = 2;

function nav ($offset=0,$this_script="")
{
global $limit;
global $PHP_SELF;
if (empty($this_script)) { $this_script = $PHP_SELF; }

if (empty($offset)) { $offset = 0; }

// get the total number of entries in the guest book -
// we need this to know if we can go forward from where we are
$result = safe_query("select count(*) from guestbook");
list($total_rows) = mysql_fetch_array($result);

print "<p>\n";
if ($offset > 0)
{
// if we're not on the first record, we can always go backwards
print "<a href=\"$this_script?offset=".($offset-$limit)."\"><<Previous Entries</a> ";
}
if ($offset+$limit < $total_rows)
{
// offset + limit gives us the maximum record number
// that we could have displayed on this page. if it's
// less than the total number of entries, that means
// there are more entries to see, and we can go forward
print "<a href=\"$this_script?offset=".($offset+$limit)."\">Next Entries>></a> ";
}
print "</p>\n";
}

?>

par exemple je l'utulise dans mon code view.php qui affiche les donnees se trouvant dans ma table guestbook
voici le code view.php avec la function nav utulise a la fin du code

<?php
include ("usefulfunc.php");
include "connection.php";
$page_title = "View My guest book";
include "start_pag.php";
?>
<table border=0>
<?php
if (empty($offset)){ $offset = 0;}
// select_entries() should return a mysql result set identifier
$preserve = "";
$result = select_entries($offset);
while($row = mysql_fetch_array($result)){
print_entry($row,$preserve,"name","location","email","url","entry_date","comments");
print"<tr><td colspan=2> </td></tr>\n";
}
mysql_free_result($result);
?>

</table>

<?php nav($offset); ?>
<?php include "end_pag.php"; ?>


Merci d'avance pour votre aide.

Configuration: Windows Vista
Firefox 3.0.13
A voir également:

4 réponses

moderno31 Messages postés 872 Date d'inscription   Statut Membre Dernière intervention   92
 
Quabd tu testes juste la fonction en lui passant ses paramètres, elle te dit quoi ?
Quelle eurreur ? Quelle incohérence ?
0
parvn Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
merci, quand je test la fonction en lui donnant ses parametres, il y'a aucune erreur qui s'affiche. Le probleme c'est que elle doit me permettre de faire defiler les donnees affiche a l'ecran en cliquant sur next entries pour aller en avant et sur previous entries pour repartir en arriere mais quand je clique rien ne se passe il ne fait pas defiller les donnees.
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
heu ..
il te manquerai pas au début de ton script un
if(isset($_GET['offset'])) $offset=$_GET['offset'];


?

Parce que là OK, tu passes en paramètre GET la valeur du 'next entries', mais tu le récupère jamais (enfin ca dépend de la config du serveur, si les register globals sont à on, mais ca c'est pas terrible ^^)
0
parvn Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
merci,
oui ça a change quelque chose maintenent quand je clique sur next entries il me fait apparaitre le previous entries aussi pour repartir en arriere ce qu'il n'apparaissait pas avant d'ajouter ce que tu m'a suggere. mais les donnees affichees a l'ecran sont les memes il ne defile toujours pas.
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Ben c'est pas ta fonction "select_entries" qui est fausse ?
parce que c'est elle qui renvoit les valeurs en fonction de l'offset (enfin c'est ce que j'ai compris ^^), donc si l'offset est bon, c'est que c'est la fonction qui est fausse
0
parvn Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
voici ma fonction "select_entries.php":
<?php
function select_entries($offset=0) {
global $limit;

if(empty($offset)){ $offset = 0;}

$query = "select *
, date_format(created,'%e %M, %y %h:%i %p') as entry_date
from guestbook
order by created desc
limit $offset, $limit";

$result = safe_query($query);
return $result;

}
<?
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
la ligne qui récupère l'offset (celle que j'avais mis précédemment), tu l'as bien mis avant l'appel à cette fonction ?
0
parvn Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci beaucoup ça marche maintenant avant je l'avait pas mis avant la function select_entries .
merci encore
0