Incrémentation d'une variable en php
amine_marc
Messages postés
286
Statut
Membre
-
avion-f16 Messages postés 20367 Statut Contributeur -
avion-f16 Messages postés 20367 Statut Contributeur -
Bonjour,
j'ai un pb d'incrémentation d'une variable $code_elv lorsqu'elle sera "elv10", elle peut pas ainsi s'incrémenter, je sais pas pourquoi?! j'ai utliser une fct pour ce but la, ça marche bien jusqu'à elv10 comme je viens de dire, voici le code:
<?php
.....
function select_dern_cd_el($table_cib,$dern_ergs)
{
$req0="SELECT MAX($dern_ergs) FROM $table_cib";
$req1=mysql_query($req0) or die (mysql_error());
$MAX_ID=mysql_fetch_array($req1);
$string_a_separer=$MAX_ID[0];
if(empty($string_a_separer))
{ $string_a_separer="elv0";
list($cont1,$cont2)=explode("v",$string_a_separer);
}
else {
list($cont1,$cont2)=explode("v",$string_a_separer); }
$enregis_incremente0=$cont2+1;
$enregis_incremente="elv".$enregis_incremente0;
return $enregis_incremente;
}
.....
$rq5=mysql_query("INSERT INTO eleve VALUES ('$nom_elv','$prenom_elv','$code_elv')") or die (mysql_error());
.....
?>
le résultat est l'insertion des dix premiers enregistrement, et l'affichage du msg: "Duplicata du champ 'elv10' pour la clef 'PRIMARY' ".
veuillez me dire où est le pb exactement?! et merci d'avance.
j'ai un pb d'incrémentation d'une variable $code_elv lorsqu'elle sera "elv10", elle peut pas ainsi s'incrémenter, je sais pas pourquoi?! j'ai utliser une fct pour ce but la, ça marche bien jusqu'à elv10 comme je viens de dire, voici le code:
<?php
.....
function select_dern_cd_el($table_cib,$dern_ergs)
{
$req0="SELECT MAX($dern_ergs) FROM $table_cib";
$req1=mysql_query($req0) or die (mysql_error());
$MAX_ID=mysql_fetch_array($req1);
$string_a_separer=$MAX_ID[0];
if(empty($string_a_separer))
{ $string_a_separer="elv0";
list($cont1,$cont2)=explode("v",$string_a_separer);
}
else {
list($cont1,$cont2)=explode("v",$string_a_separer); }
$enregis_incremente0=$cont2+1;
$enregis_incremente="elv".$enregis_incremente0;
return $enregis_incremente;
}
.....
$rq5=mysql_query("INSERT INTO eleve VALUES ('$nom_elv','$prenom_elv','$code_elv')") or die (mysql_error());
.....
?>
le résultat est l'insertion des dix premiers enregistrement, et l'affichage du msg: "Duplicata du champ 'elv10' pour la clef 'PRIMARY' ".
veuillez me dire où est le pb exactement?! et merci d'avance.
A voir également:
- Incrémentation d'une variable en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Vba range avec variable ✓ - Forum VB / VBA
- Php alert ✓ - Forum PHP
- Incrémenter une série excel ne fonctionne pas ✓ - Forum Excel
3 réponses
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
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.
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.
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à
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.