Page 1 sur 2
ajout automatique de le reference lors de la creation d'une
Posté : 23 juin 2005, 14:34
par castelli
Bonjour ,
J'ais une base de donné de 2332 produit et j'aimerais si possible , lors d'ajout de nouveau produit que mon formulaire me suggere le nom de ma nouvelle reference
la reference = de 1 a 2332 pour le moment..
si quelqu'un a une idée ...
merci
Posté : 23 juin 2005, 14:37
par donny
au chargement de ta page tu peux prendre la derniere reference et l incrementer de 1 et apres tu l affiche dans une zone texte.
Je pense que j aura fait comme cela
Posté : 23 juin 2005, 14:41
par castelli
Vi vi vi j'e pensais faire de la meme façon mais le probleme c'est que je fait comment pour recuperer la derniere valeur de la reference?
Posté : 23 juin 2005, 14:44
par waf_wafe
Posté : 23 juin 2005, 14:46
par castelli
humm humm on se moque pas je vais essailler

et pis je viendrais apres pleurer parce que j'aurais pas reussit

lol

Posté : 23 juin 2005, 14:57
par fggdm
Salut,
Si plusieurs personnes peuvent créer des produits en même temps il faut penser à "verrouiller/déverrouiller" les références qui ne sont que temporaires tant que le produit n'est pas effectivement dans la base de données.
Sinon la première personne à valider son produit va l'insérer correctement alors que l'autre se verra refuser l'insertion à cause d'une référence existante (si bien entendu le champ référence est unique). C'est pas bien grave mais c'est ambêtant pour l'utilisateur surtout s'il y a beaucoup de création de produits. A toi de juger ce qui est le plus raisonnable.
Posté : 23 juin 2005, 15:00
par waf_wafe
Exact ! Mais j'espère que ton id est unique quand même ! Ainsi que le nom du produit !
Ou autre solution tu creer une deuxieme table identique a la premiere pour les produits pas encore "officiel" et dès qu'ils le deviennent tu les tranfèrent sur l'autre table !
Posté : 23 juin 2005, 15:06
par castelli
Euuuhh , c'est peut etre une question bete ,mais je fait comment pour que la reference soit unique??
sinon j'ais une erreur au niveau de ma requete (mais sa vient surement du fait que c'est la premiere fosi que j'essaille d'incrementer lol )
$maxref = "SELECT max(reference) FROM produit2 ";
$maxref2 = mysql_query($maxref,$link) or die ('Erreur : '.mysql_error() );
$rowref = mysql_fetch_assoc($maxref2);
++$rowref;
echo $rowref;
edit : j'ai corriger une tite faute donc j'ai reediter le code ..
comme message sur la page php j'obtient "Array"

Posté : 23 juin 2005, 15:12
par ouckileou
et pourquoi pas un champ référence AUTO_INCREMENT ?
Posté : 23 juin 2005, 15:14
par castelli
Sa marche comment sa???
(desolé j'apprend lol )

Posté : 23 juin 2005, 15:17
par fggdm
Salut,
Pour que la référence soit unique tu dois déclarer ton champ UNIQUE dans la table.
mysql_fetch_assoc() retourne un tableau donc il affiche array (tableau en anglais

)
Pas de champ auto-incrémenté car il veut la référence
avant la création du produit.
Posté : 23 juin 2005, 15:18
par waf_wafe
Champ auto_increment :
quand tu cree ton champ id, tu lui met l'attribut auto_increment !
pour ton code essaye sa :
<?
$maxref = "SELECT max(reference) FROM produit2 ";
$maxref = mysql_query($maxref,$link) or die ('Erreur : '.mysql_error() );
while($row=mysql_fetch_row($maxref))
{
$rowref=$row[0];
}
$rowref++;
echo $rowref;
?>

Posté : 23 juin 2005, 15:20
par castelli
A d'accord merci encore

je vais declarer ma table en "UNIQUE" mici encore

Posté : 23 juin 2005, 15:24
par fggdm
Salut,
Pas la table, le champ.
Posté : 23 juin 2005, 15:29
par waf_wafe
Et le nom aussi tant qu'a faire comme sa tu n'aura jamais le meme nom de produit (a moins que tu l'ai mis en primaire) !
