|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Date d'inscription: octobre 2009
Messages: 83
|
Bonjour,
en fait j'aimerais limiter le nombre d'enregistrement dans ma base à 10000 pour exact. et ça fonctionne a moitié. Code :
//On récupère le dernier Num $requeteCompteEnregistrement = mysql_query("select Num from intervenant ORDER BY Num DESC LIMIT 0,1 "); $nbEnregistrement = mysql_result($requeteCompteEnregistrement,0); echo "on va rentrer <br /> "; if($nbEnregistrement <= 9999) { if ($verif==0) { $nouveauCode = 1; for($compteur=1; $compteur < $result+1; $compteur++) { $requeteAjout = mysql_query("insert into intervenant(CodeEntreprise,CodeIntervenant) values('$CodeEntre',$nouveauCode)"); $nouveauCode++; } echo "dans le 2 if <br />"; } else { $nouveauCode = $resultatRecupCode+1; for($compteur=1; $compteur < $result+1; $compteur++) { $requeteAjout = mysql_query("insert into intervenant(CodeEntreprise,CodeIntervenant) values('$CodeEntre',$nouveauCode)"); $nouveauCode++; } echo "dans le else </br>"; } } else { echo "on est en dehors </br> "; } echo "nombre enregistrement : $nbEnregistrement <br />"; ?> Le but est d'ajouter des intervenant dans ma base sachant que le nombre d'intervenant est différent selon l'entreprise. ça peut être 1000, 100, 3, ,5 etc ... le problème c'est que lorsque j'arrive a 9999 intervenants, le programme ne s'arrete pas. donc des fois j'ai 100001 intervenants 100003 etc ... si vous avez une idée. merci |
|
|
|
|
|
#2 |
![]() Date d'inscription: juillet 2005
Messages: 10 090
|
Si tu veux limiter le nombre d'enregistrement ... il faut compter le nombre d'enregistrement :
Code :
$requeteCompteEnregistrement = mysql_query("select COUNT(*) from intervenant"); Sinon d'ou vient ton $result ? |
|
|
|
|
|
#3 |
|
Membre du Club
![]() Date d'inscription: octobre 2009
Messages: 83
|
Bonjour,
même en faisant un count (*) ça ne fonctionne pas Code :
$requeteCompteEnregistrement = mysql_query("select count(*) from intervenant "); $nbEnregistrement = mysql_result($requeteCompteEnregistrement,0); echo "$nbEnregistrement"; if($nbEnregistrement < 10000) { if ($verif==0) { $nouveauCode = 1; for($compteur=1; $compteur < $result+1; $compteur++) { $requeteAjout = mysql_query("insert into intervenant(CodeEntreprise,CodeIntervenant) values('$CodeEntre',$nouveauCode)"); $nouveauCode++; } } else { $nouveauCode = $resultatRecupCode+1; for($compteur=1; $compteur < $result+1; $compteur++) { $requeteAjout = mysql_query("insert into intervenant(CodeEntreprise,CodeIntervenant) values('$CodeEntre',$nouveauCode)"); $nouveauCode++; } } } else { } ?> |
|
|
|
|
|
#4 |
![]() Date d'inscription: juillet 2005
Messages: 10 090
|
Et la réponse à la question ?
|
|
|
|
|
|
#5 |
|
Membre du Club
![]() Date d'inscription: octobre 2009
Messages: 83
|
ah oui, vraiment désolé,
$result c'est le nombre de salarié autorisé pour chaque entreprise |
|
|
|
|
|
#6 |
![]() Date d'inscription: juillet 2005
Messages: 10 090
|
Si tu as déjà 999 enregistrements dans la base et qu'une entreprise à la droit à 100 enregistrements il doit se passer quoi ?
|
|
|
|
|
|
#7 |
|
Membre du Club
![]() Date d'inscription: octobre 2009
Messages: 83
|
le programme doit s'arreter et ne pas prendre en compte la demande d'avoir 100 numero (100 salarié autorisés) pour ses salariés
|
|
|
|
|
|
#8 |
|
Membre éprouvé
![]() |
pourquoi ne pas faire un mysql_num_rows sur le résultat de ta requete pour voir combie nde ligne (donc d'enregistrement) elle renvoye ?
__________________
Le contenu est roi, optimisé il est empereur... Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent. |
|
|
|
|
|
#9 |
|
Membre du Club
![]() Date d'inscription: octobre 2009
Messages: 83
|
je l'ai fais avec mysql_result.
Code :
$requeteCompteEnregistrement = mysql_query("select count(*) from intervenant "); $nbEnregistrement = mysql_result($requeteCompteEnregistrement,0); echo " nb enregistrement : $nbEnregistrement <br />"; |
|
|
|
|
|
#10 | |
![]() Date d'inscription: juillet 2005
Messages: 10 090
|
Tu dois donc enregistrer au maximum 1000 - $nbEnregistrement lignes.
Au passage, les requêtes dans les deux conditions étant les mêmes tu n'as pas à les ecrire deux fois : Code :
$requeteCompteEnregistrement = mysql_query("select count(*) from intervenant "); $nbEnregistrement = mysql_result($requeteCompteEnregistrement,0); $nouveauCode = ($verif==0) ? $nouveauCode = 1 : $resultatRecupCode+1; for($compteur=1; $compteur <= min(1000 - $nbEnregistrement; $result)) { $requeteAjout = mysql_query("insert into intervenant(CodeEntreprise,CodeIntervenant) values('$CodeEntre',$nouveauCode)"); $nouveauCode++; } Citation:
|
|
|
|
|
|
|
#11 |
|
Membre éprouvé
![]() |
Aucun mais vu qu'il disait qu'il n'arrivait pas a faire le count....apres ce sont des habitudes de code
__________________
Le contenu est roi, optimisé il est empereur... Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent. |
|
|
|
|
|
#12 |
|
Membre du Club
![]() Date d'inscription: octobre 2009
Messages: 83
|
Merci, a vous deux ça fonctionne j'ai ce que je veux et j'ai utilisé num_rows plustot que de faire un count (*)
merci encore |
|
|
|
|
|
#13 |
![]() Date d'inscription: juillet 2005
Messages: 10 090
|
J'insiste mais num_rows est beaucoup moins interessant que count()
|
|
|
|
|
|
#14 |
|
Membre du Club
![]() Date d'inscription: octobre 2009
Messages: 83
|
tu peux m'expliquer l'avantage ? stp
|
|
|
|
|
|
#15 |
|
Membre éprouvé
![]() |
[MODE CULTURE PERSO = ON]
Pourquoi ? [MODE CULTURE PERSO = OFF]
__________________
Le contenu est roi, optimisé il est empereur... Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent. |
|
|
|
|
|
#16 |
![]() Nom : Antoine Dinimant
Date d'inscription: octobre 2006
Localisation: Paris
Âge: 39
Messages: 5 218
|
Ce qui est le plus lent, c'est de rapatrier les lignes de MySQL vers PHP. Avec COUNT, tu ne rapatries qu'une seule ligne. Avec num_rows, tu les renvoies toutes et tu les compte, c'est donc bcp moins performant.
EDIT : sabotage, t'es grillé !
__________________
Antoun Expert SQL, BO, Essbase Dernière modification par Antoun ; 29/01/2010 à 13h44. |
|
|
|
|
|
#17 |
|
Membre éprouvé
![]() |
Ah oui j'était dans l'optique ou de toute facon il avais besoin de rapatrier pour les afficher mais non, autant pour moi...
__________________
Le contenu est roi, optimisé il est empereur... Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent. |
|
|
|
|
|
#18 |
![]() Date d'inscription: juillet 2005
Messages: 10 090
|
Avec num_rows, tu demandes a mysql de lire toutes les lignes et après tu lui demandes de compter ce qu'il a recuperé.
Avec count() sur une table MyIsam, mysql lit juste la valeur qu'il a déjà stocké. |
|
|
|
|
|
![]() |
||
problème sur la limite du nombre d'enregistrement
|
||
| Outils de la discussion | |
|
|