Page 1 sur 1

Affichage page par page. Des corrections sur mon script ?

Posté : 15 juin 2007, 13:02
par supercanard
Bonjour

Voilà je viens de faire (tout seul ! LOL) mon petit script pour afficher page par page. Alala je suis trop content, il en faut pas grand chose pour un newbie du PHP =)

Cependant je voudrais savoir si vous voyez des erreurs, pas dans la syntaxe car ça marche très bien, mais plutot dans ma façon de faire.

Merci d'avance :wink:
<?php
$tab= array( 'pomme', 'banane', 'orange', 'abricot', 'pamplemousse', 'pomme2', 'banane2', 'orange2', 'abricot2', 'pamplemousse2', 'pomme3', 'banane3', 'orange3' ); // TABLEAU

// PARAM
if( $num == '' ) {
$num = '0'; // ID TABLEAU
}
$limit = '5'; // LILMITE DU NOMBRE DE RESULTAT  A AFFICHER
$nb_array= (count($tab)); // ON COMPTE LE NOMBRE DE VALEUR DANS LE TABLEAU
// FIN PARAMS

echo $nb_array.' resultats<br />';

// BOUCLE
for( $tour = 0; $tour < $limit; $tour++.$num++ ) { // TANT QUE $limit < 5 : INCREMENTER $tour et $num A CHAQUE TOUR
echo $tab[$num].'<br />';
}
// FIN BOUCLE

// CONDITIONS BOUTONS SUIVANT ET PRECEDENT
if ( $num > $limit ) { // SI $num > limit : AFFICHAGE LIEN PRECEDENT ET $tour = 0
$tour = 0;
$temp = $num - ( $limit * 2 ); // NOMBRE D'ENTREES DU TABLEAU RENVOYEES PAR LA BOUCLE - (LIMITE * 2)
echo '<a href="tab.php?num='.$temp.'&tour='.$tour.'">Precedent</a>';
}
echo ' '; // ESPACE
if ( $num >= $limit AND $num <= $nb_array ) { // SI $num >= $limit et $num != $nb_array : AFFICHAGE LIEN SUIVANT ET $tour = 0
$tour = 0;
echo '<a href="tab.php?num='.$num.'&tour='.$tour.'">Suivant</a>';
}
// FIN CONDITIONS BOUTONS SUIVANT ET PRECEDENT
?>

Posté : 15 juin 2007, 13:39
par Sékiltoyai
Bonne initiative.
Une petite question, d'où vient $num ?

Posté : 15 juin 2007, 14:32
par supercanard
$tab[$num] soit $tab[1],$tab[2],$tab[3], ect...

Posté : 15 juin 2007, 14:39
par Sékiltoyai
Ici
// PARAM
if( $num == '' ) {
$num = '0'; // ID TABLEAU
} 
D'où vient-il ? Il n'est pas initialisé.

Posté : 15 juin 2007, 14:50
par supercanard
ah ben oui il ets initialisé parce que si je recharge la page il va prendre reprendre une valeur nul a chaque rechargement de page :roll: Comment faudrais t'il faire ? :roll:

Posté : 15 juin 2007, 14:54
par Sékiltoyai
ah ben oui il ets initialisé parce que si je recharge la page il va prendre reprendre une valeur nul a chaque rechargement de page :roll: Comment faudrais t'il faire ? :roll:
??
Tu ne le prends pas quand même dans l'url ?

Posté : 15 juin 2007, 15:19
par supercanard
Non parce que là c'est juste un test.
Pourquoi ça poserais vraiment un problème que la variable ne soit pas initialisé ? Si elle n'est aps utilisé ailleur dans d'autres pages ou scripts, ça ne risque rien... si ?

Posté : 15 juin 2007, 15:23
par Sékiltoyai
Bah le problème, c'est que je ne vois pas d'où elle vient.
Le script est inclu et la variable vient du script qui inclue, c'est cela ?

Posté : 15 juin 2007, 15:30
par supercanard
Ah wi je comprend l'erreur :D Désolé j'ai été long

Au lieu de faire si $num = rien, j'aurrais du faire si $num existe pas, c'est ça ? :roll:

Posté : 15 juin 2007, 15:31
par Sékiltoyai
J'aurais juste voulu que tu répondes à ma question :-/

Posté : 15 juin 2007, 15:42
par supercanard
Ben la variable elle viens de nulle part en fait.
Le script est pas inclu, mais il ets destiné a l'etre sinon. C'est juste un essai là;
Mais tu a soulevé une erreur puis je demande a php de tester la valeur d'une variable qui existe pas.

Posté : 15 juin 2007, 16:25
par Sékiltoyai
Si elle vient de nulle part, elle n'est pas destinée à exister. Quand tu dis que ton script fonctionne, tu le testes comment ? Si tu l'appelles juste comme cela, alors la variable n'existe pas, et d'ailleurs si ton php.ini était bien configuré, tu devrais avoir une erreur.

Posté : 15 juin 2007, 16:44
par chrislabricole
ouai.. sa à l'air bon...
pitit truc que tu peut faire.. si le tableau peut avoir 1 valeur, tu peut appliquer le singulier/pluriel à résultat....
si c'est suseptible de bouger.... sinon, sa sers à rien....

met ca :
if($nb_array <= 1)
{
echo $nb_array.' resultat<br />';
}
else
{
echo $nb_array.' resultats<br />';
}
au lieu de :
echo $nb_array.' resultats<br />'; 
tant qu'a faire ! :lol: :D :)

Posté : 15 juin 2007, 17:06
par supercanard
Oui tiens pourquoi pas =)

Pour le premier probleme, comment faut t'il faire pour remplacer if ($blabla ==' ') par if ($blabla n'existe pas) ? :roll:

sinon il y autre chose a faire, mais je sais pas trop comment m'y prendre :

Ma boucle fort fait automatiquement $limit(5) passage, et si par exemple il n'y a que 3 entrées, a l'affichage il y aurra 5 lignes avec les 3 entrées et 2 lignes vides. Les 2 lignes vides prennent quand même la place, ce qui fait que mes liens se retrouvent espacés de deux br