Incrémentation d'une variable en php
Fermé
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
-
14 mai 2011 à 17:42
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 17 mai 2011 à 17:14
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 17 mai 2011 à 17:14
A voir également:
- Incrémentation d'une variable en php
- Easy php - Télécharger - Divers Web & Internet
- Php natif - Forum PHP
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Php?id=1 - Forum PHP
3 réponses
Overlock
Messages postés
13
Date d'inscription
samedi 14 mai 2011
Statut
Membre
Dernière intervention
10 mars 2014
6
14 mai 2011 à 21:18
14 mai 2011 à 21:18
tien peut etre que sa aidera ;)
https://forums.commentcamarche.net/forum/affich-9177422-php-incrementer-une-variable
https://forums.commentcamarche.net/forum/affich-9177422-php-incrementer-une-variable
avion-f16
Messages postés
19244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
17 avril 2024
4 496
14 mai 2011 à 22:17
14 mai 2011 à 22:17
Salut,
Pour le numéro de l'élève, pourquoi ne pas utiliser une colonne "id", en auto-incrémentation ? C'est très utilisé. Tu n'aurais pas besoin de récupérer le dernier ID, l'incrémenter puis le retourner grâce à une fonction afin de l'utiliser dans ta requête d'insertion.
Pour le numéro de l'élève, pourquoi ne pas utiliser une colonne "id", en auto-incrémentation ? C'est très utilisé. Tu n'aurais pas besoin de récupérer le dernier ID, l'incrémenter puis le retourner grâce à une fonction afin de l'utiliser dans ta requête d'insertion.
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
14 mai 2011 à 22:22
14 mai 2011 à 22:22
parce que j'ai plusieurs identifiants, je veux différencier entre eux;
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
15 mai 2011 à 13:05
15 mai 2011 à 13:05
pas de réponse?!
avion-f16
Messages postés
19244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
17 avril 2024
4 496
15 mai 2011 à 13:07
15 mai 2011 à 13:07
« parce que j'ai plusieurs identifiants, je veux différencier entre eux »
Justement, un ID en auto-incrémentation, c'est unique, donc chaque élève aura son ID sous forme de numéro.
Justement, un ID en auto-incrémentation, c'est unique, donc chaque élève aura son ID sous forme de numéro.
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
15 mai 2011 à 13:10
15 mai 2011 à 13:10
d'accord, j'accepte. Mais je veux savoir seulement pourquoi ma fct ne sert pas à dépasser dix enregistrements, veuillez me répondre si vous avez une réponse, et merci d'avance.
avion-f16
Messages postés
19244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
17 avril 2024
4 496
15 mai 2011 à 14:33
15 mai 2011 à 14:33
C'est parce que le trie fonctionne de cette manière :
1 10 11 12 13 2 20 21 22 23 3 30 etcDu coup, elv9 est considéré comme supérieur à elv10
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
16 mai 2011 à 21:35
16 mai 2011 à 21:35
j'ai trouvé une solution à mon pb, je pense que ça marche bien! voici le code de la fct:
<?php
function select_dern_cd_el($table_cib,$dern_ergs) //fct 2
{
$req0="SELECT $dern_ergs FROM $table_cib";
$req1=mysql_query($req0) or die (mysql_error());
$compteur=0;
while($donnees=mysql_fetch_array($req1)){
$compteur++; }
$ii=$compteur+1;
$enregis_incremente="elv".$ii;
return $enregis_incremente;
}
?>
merci bcp pour tous les gens qui m'ont aidé à résoudre ce pb.
<?php
function select_dern_cd_el($table_cib,$dern_ergs) //fct 2
{
$req0="SELECT $dern_ergs FROM $table_cib";
$req1=mysql_query($req0) or die (mysql_error());
$compteur=0;
while($donnees=mysql_fetch_array($req1)){
$compteur++; }
$ii=$compteur+1;
$enregis_incremente="elv".$ii;
return $enregis_incremente;
}
?>
merci bcp pour tous les gens qui m'ont aidé à résoudre ce pb.
avion-f16
Messages postés
19244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
17 avril 2024
4 496
16 mai 2011 à 21:51
16 mai 2011 à 21:51
Le problème se posera quand tu supprimeras un élève.
- Imagine que tu aies 5 élèves, dont le dernier porte « elv5 » comme code.
Après ta boucle, $compteur vaudra 5.
Tu l'incrémentes, il vaut 6, donc tu peux créer l'élève « elv6 ».
- Maintenant, l'élève « elv3 » a été renvoyé après avoir insulté son professeur d'informatique.
Ta table ne compte donc plus que les élèves elv1, elv2, elv4, elv5
Il y a donc 4 élèves, et c'est le nombre que tu obtiendras après ta boucle.
Tu incrémentes encore $compteurs, et tu obtiens 5.
$erengis_incremente vaudra donc « elv5 » : mais cet élève existe déjà
- Imagine que tu aies 5 élèves, dont le dernier porte « elv5 » comme code.
Après ta boucle, $compteur vaudra 5.
Tu l'incrémentes, il vaut 6, donc tu peux créer l'élève « elv6 ».
- Maintenant, l'élève « elv3 » a été renvoyé après avoir insulté son professeur d'informatique.
Ta table ne compte donc plus que les élèves elv1, elv2, elv4, elv5
Il y a donc 4 élèves, et c'est le nombre que tu obtiendras après ta boucle.
Tu incrémentes encore $compteurs, et tu obtiens 5.
$erengis_incremente vaudra donc « elv5 » : mais cet élève existe déjà
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
16 mai 2011 à 23:28
16 mai 2011 à 23:28
oui c'est vrai, ça c'est un problème! dommage!!!! alors je pense que je dois utiliser l'identifiant auto-incrémenté, mais je sais pas comment le faire?!
avion-f16
Messages postés
19244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
17 avril 2024
4 496
17 mai 2011 à 17:14
17 mai 2011 à 17:14
C'est simple, il suffit d'ajouter une colonne « id », souvent en début de table de type numérique (INT), avec l'option auto_incrementation, unsigned (car les négatifs sont inutils) et en clé primaire.
14 mai 2011 à 22:14
tout marche bien sauf si l'on arrive à l'enregistrement code_elv="elv10", on peut pas avancer car le message "Duplicata du champ 'elv10' pour la clef 'PRIMARY' " s'affiche qui veut dire qu'il y a une occurrence de la clé primaire elv10...
j'espere que ça soit bien claire pour vous, et j'espere aussi résoudre ce pb qui me bloque à avancer dans la création de mon site.