Requete MySQL

flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009 - 27 mars 2006 à 14:11
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 - 27 mars 2006 à 16:54
Bonjour,

comment est ce que je dois faire pour qu'après avoir écrit le numéro unique dans la table id_unique, j'ajoute le rédacteur et en même temps je copie ce numéro dans le champ numéro de l'autre table...?

CODE:

$sql = "INSERT INTO id_unique (numero) VALUES ((SELECT MAX(id) FROM id_unique) +1, 'id' )";

$result = mysql_query($sql);

$num = "SELECT MAX (id) FROM id_unique";

$result_num = mysql_query ($num);

$sql = "INSERT INTO recap_observations (numero, redac) VALUES ('$redac')";

$result = mysql_query($sql);

Merci!!

7 réponses

gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
27 mars 2006 à 15:00
Dans ta base MySql, tu peux mettre ton index en "auto increment", lorsque tu fera une requete d'ajout ne renseigne pas l'index et il sera incrémenté automatiquement.

Pour récupèrer le dernier index créé utilise la fonction php mysql_insert_id

Description

int mysql_insert_id ( [resource link_identifier] )


mysql_insert_id() retourne le dernier identifiant
généré par un champ de type AUTO_INCREMENT,
sur la connexion MySQL courante ou sûr la connexion
spécifiée par <var class="parameter">link_identifier</var>.


Plus d'infos sur http://fr.php.net/mysql_insert_id

Voila ;)

[B)][red]Grrrrrrrrrrr/red[B)]
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
27 mars 2006 à 15:15
Merci!

J'ai fait ceci, ca m'enregistre bien le numero unique, par contre, ce ne m'enregistre rien dans ma table ajout_observations...
Que faire??

CODE :

mysql_query("INSERT INTO id_unique (numero) VALUES ('1' )");


$dernier_num = mysql_insert_id();

$sql = "INSERT INTO recap_observations (numero, redac) VALUES ('$dernier_num','$redac')";

$result = mysql_query($sql);
0
krolenain Messages postés 149 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 6 février 2009 1
27 mars 2006 à 15:53
salut,
je ne vois pas de requête qui pourrait insérer quelque chose dans ta table ajout_observation. Dis en plus
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
27 mars 2006 à 15:58
Non, pardon, je voulais dire ma table recap_observations, mais c'est moi qui avait fait une boulette, j'essayais de faire des enregistrement alors que j'avais défini des colonnes en "not null"... et bien sur je ne remplissais pas tous les champs...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
27 mars 2006 à 16:40
salut,
a mon avis, tu devrais placer directement un auto-increment dans ta table
recap_observations, la table id_unique ne sert à rien (si elle ne sert que pour ça)

$sql = "INSERT INTO recap_observations (numero, redac) VALUES (NULL,'$redac')";
$result = mysql_query($sql);
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
27 mars 2006 à 16:44
Non, elle ne sert pas qu'a ça, j'ai 3 autres tables en plus de recap_observations, et il faut que chaque entrée ait un numéro unique, c'est pour ça que je ne peux pas faire d'auto-increment...
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
27 mars 2006 à 16:54
ok mais là je mettrais

mysql_query("INSERT INTO id_unique (numero) VALUES (NULL)");
0
Rejoignez-nous