Incrémentation d'une variable en php
amine_marc
Messages postés
256
Date d'inscription
Statut
Membre
Dernière intervention
-
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
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
- Excel copier formule sans incrémentation - Forum Excel
- Copier sans incrémenter et sans conserver le format ✓ - 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.