Page 1 sur 1
Agrémenter
Posté : 09 juin 2012, 19:02
par Asicoo
Bonjour,
Je souhaite agrémenter dans une boucle while :
j'ai donc fait $i = $i + 1;
et echo $i; pour afficher dans l'affichage mais
Notice: Undefined variable: i in C:\wamp\www\www\A\Rank_Player.php on line 101
Je précise que cela m'affiche bien 1 , 2 ,3,4 etc...
Mais juste au dessus de tout ça, l'erreur.
Merci

Re: Agrémenter
Posté : 09 juin 2012, 19:45
par xTG
Problème de portée de variable je dirai ou de déclaration.
Tu l'as initialisée ta variable avant de faire :
$i = $i + 1;
Re: Agrémenter
Posté : 09 juin 2012, 19:46
par Asicoo
Je savais pas trop quoi faire justement pour faire ça et j'ai trouvé ce petit morceau de code x)

La 1ère fois que j'utilise ce genre de variable
Re: Agrémenter
Posté : 09 juin 2012, 20:35
par xTG
Bah c'est un entier, donc un petit :
$i = 0;
Re: Agrémenter
Posté : 09 juin 2012, 20:41
par Asicoo
J'y avais pensé x)
Mais du coup tout reste sur 1...
Re: Agrémenter
Posté : 09 juin 2012, 21:24
par xTG
Tu connais le concept d'une boucle ? C'est que ça itère X fois sur son contenant...
Donc si tu mets l'initialisation dans la boucle... J'ai besoin de développer la suite ?

Re: Agrémenter
Posté : 09 juin 2012, 21:35
par Asicoo
Ah bah voilà

Merci en tout cas,
Mais une dernière question, sur mon tableau qui est un classement il a plusieurs page, quand je fais page suivante, cela retourne à 1, or je souhaite que cela me mette 6 et non 1 ^^
Sinon sa fonctionne à part ce petit détailles
Re: Agrémenter
Posté : 09 juin 2012, 22:05
par xTG
C'est juste un problème de maths.
Sur la page 1 tu initialises à 0 * N .
Sur la page 2 tu initialises à 1 * N.
Sur la page 3 tu initialises à 2 * N.
N étant le nombre par page - 1 (vu qu'on commence à zéro).
Te restes plus qu'à coder cela.

Re: Agrémenter
Posté : 09 juin 2012, 22:19
par Asicoo
Héhé Merci
$N = ($Page-1)*$RcL['Rank_Player'];
et echo $N + $1
Sa Fonctionne

Par contre c'est un $_GET donc du coup tout passe par l'url,
Rank_Player.php?P=2
Si je remplace 2 par une lettre ou autre,
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5,5' at line 1
Je veux empêcher celà comment faire

Re: Agrémenter
Posté : 09 juin 2012, 22:31
par xTG
Toujours vérifier le type de ce que tu attends avant de l'utiliser.

Regardes du côté des filters qui sont assez puissants :
http://fr2.php.net/filter
Ou bien t'as des tas d'autres méthodes.
Par exemple pour un entier :
if( !is_int($var) )
$var = 0; // tu réinitialises la variable
Re: Agrémenter
Posté : 10 juin 2012, 00:09
par Asicoo
J'ai du mal à utiliser le type
La page doit être comprise entre 1 & x; x peut être grand x)
Si la $_GET est différent d'une valeur numérique alors on retourne à P=1
Je veux faire compliquer quand c'est simple ><
A t-il vraiment un risque ? Le ?P=1 ne fait que montrer une page.
Aucun risque BDD ?
Re: Agrémenter
Posté : 10 juin 2012, 09:53
par xTG
C'est à dire ? Je n'ai pas compris où tu voulais en venir.
Re: Agrémenter
Posté : 10 juin 2012, 10:11
par Asicoo
Laisse tomber ce que j'ai dis plus haut ^^
$P = mysql_real_escape_string(htmlentities(strip_tags($_GET['P']))) //J'ai abusé sur sa x)
$tests = array($P);
foreach ($tests as $element) {
if (is_numeric($element)) {
// OK
} else {
// PAS OK
header('location: Rank_Player.php?P=1');
}
}
Cela me protège t'il correctement ?
Re: Agrémenter
Posté : 10 juin 2012, 12:59
par xTG
Belle usine à gaz... J'ose espérer que tu n'étudies pas dans le nucléaire.

Ceci suffit :
if( !is_numeric($_GET['P']) ){
$_GET['P'] = 1;
}
$P = mysql_real_escape_string($_GET['P']);