ajout automatique de le reference lors de la creation d'une

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ajout automatique de le reference lors de la creation d'une

par castelli » 23 juin 2005, 15:46

Merci :)

sa marche nickel :)

par ouckileou » 23 juin 2005, 15:43

dans la structure de ta table à droite dans "Action" il y a un petit U

sinon pour Auto_increment c'est dans "modifier" -> extra

;)

par castelli » 23 juin 2005, 15:33

Pour mettre en UNIQUE dans phpmyadmin je fais sa ou ??
(Il n'y a pas cette option dans 'type' )

par castelli » 23 juin 2005, 15:30

Vi vi desolé c'etait un abus de language :)
lol

bon sinon pour mon Input j'ais fait comme sa:
<input type="text" name="reference" value="<?php echo $rowref ?>">
et sa fonctionne :)

merci encore :)

par ouckileou » 23 juin 2005, 15:30

la propriété AUTO_INCREMENT est toute indiquée pour ce que tu souhaites faire

comme l'a dit waf-waf, tu mets cet attribut à ton champ "référence"

ensuite, lorsque tu feras une insertion, tu n'auras plus à t'en occuper, MySQL se chargera de lui donner une valeur incrémentée de 1 à chaque fois

par waf_wafe » 23 juin 2005, 15:29

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) !
:wink:

par fggdm » 23 juin 2005, 15:24

Salut,

Pas la table, le champ.

par castelli » 23 juin 2005, 15:20

A d'accord merci encore :) je vais declarer ma table en "UNIQUE" mici encore :)

par waf_wafe » 23 juin 2005, 15:18

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; 
?>
:wink:

par fggdm » 23 juin 2005, 15:17

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.

par castelli » 23 juin 2005, 15:14

Sa marche comment sa???

(desolé j'apprend lol ) :lol: :lol:

par ouckileou » 23 juin 2005, 15:12

et pourquoi pas un champ référence AUTO_INCREMENT ?

par castelli » 23 juin 2005, 15:06

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"

:-k :-k :-k

par waf_wafe » 23 juin 2005, 15:00

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 !

par fggdm » 23 juin 2005, 14:57

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.