Récupérer un nouvel index (SQL)

Fermé
Antoine83400 - 15 mai 2013 à 14:35
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 15 mai 2013 à 15:24
Bonjour,

Ma question va peut-être paraitre très simple pour certains, à savoir que je débute tout juste dans la programmation.


J'ai une BDD avec pour clé primaire :


NoResa | .......... | .......... | ..........
----------------------------------------
1........ | .......... | .......... | ..........
2........ | .......... | .......... | ..........
3........ | .......... | .......... | ..........
4........ | .......... | .......... | ..........


Je cherche à récupérer le dernier numéro (ici 4) en le métant dans une variable :


$noresa = "SELECT max(NoResa) FROM reservation"
mysql_query($noresa);


Je souhaite alors lui ajouter +1


$noresa++


Ceci ne fonctionne pas (à savoir que j'utilise cette variable dans une autre requête SQL pour l'envoi d'un formulaire).


De plus, si je supprime l'élément 2, je voudrais que la numérotation suive son sens.


Si l'élément 2 est supprimé, en principe ça me donne ça : 1,3,4...
Or, j'aimerais ceci : 1,2,3...


Il y a surement des sujets dessus mais je n'en ai pas trouvé. Merci de votre aide.


Antoine

9 réponses

Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
15 mai 2013 à 14:40
tu aurais du faire une autre colonne pour ton NoResa et mettre un id auquel tu ne touches pas (juste comme ça au cas où tu te foires en réafectant il n'y a pas d'id en doublon donc pas d'erreur).
Sinon dans ta table tu es bien sur un INT?
essai de faire un truc comme ça:

$noresa = "SELECT max(NoResa) as maxResa FROM reservation" 
mysql_query($noresa); 

$noresa = $noresa['maxResa'] +1;
echo $noresa;
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
15 mai 2013 à 14:41
Salut !

Tu cherches à incrémenté (faire ++) sur le champ à chaque insert into ?
Si oui, tu peux le faire automatiquement, quand tu crée ton champ (ou dans la modification) il te suffis de cocher "Auto increment" :)

0
Antoine83400
15 mai 2013 à 14:46
justement voici la ligne de ma clé primaire :

# Colonne Type Null Défaut Extra
1 noresa int(4) Non Aucune AUTO_INCREMENT

Lorsque je remplis cette table j'aimerais que le # soit déjà le suivant... or je peux mettre ce que je veux en entier...
0
Antoine83400
15 mai 2013 à 14:55
$sql = "INSERT INTO reservation(noresa,nomcli,libcircuit,jourd,moisd,anneed,jourr,moisr,anneer,voitureresa,hotelresa,nopers)
VALUES (SELECT max(noresa)+1 FROM reservation,'".$nomclient."','".$libel."','".$jourd."','".$moisd."','".$anneed."','".$jourr."','".$moisr."','".$anneer."','".$voitureresa."','".$hotelresa."',1)";

voilà la requete que je passe sous MySQL_query().

il y a une erreur dedans
0

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

Posez votre question
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
15 mai 2013 à 14:55
Il ne faut pas le remplir ! Ne met rien quand tu ajoutes une ligne !

Si par exemple j'ai ma table personne(id, nom, prenom, sexe, age) avec id en auto increment

INSERT INTO personne (nom, prenom, sexe, age) VALUES ("Dupond", "Jean", "M", 20);

0
Antoine83400
15 mai 2013 à 15:10
et bien merci à toi, ça fonctionne! cependant il a commencé à 122, alors que j'ai supprimé toutes mes données! mais je fouiner et je vais trouver
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
15 mai 2013 à 15:15
C'est normal, même si tu les as supprimé, le "compteur" a continué.
Si tu veux recommencer à 0, il faut que tu fasse un TRUNCAT table
Mais attention ca t'effaceras toutes tes lignes aussi
0
Antoine83400
15 mai 2013 à 15:16
c'est bon trouvé, aucunes importances ce sont des tests, merci encore!!
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
15 mai 2013 à 15:24
Derien :)
0