Page 1 sur 2
Incrémenter une colonne
Posté : 23 mai 2013, 09:41
par NUAGE
Bonjour,
Je voulais savoir s'il est possible dans une table d'incrémenter une colonne.
Je m'explique, j'ai une table et je veux à chaque fois que j'appuie sur un bouton par exemple, j'ai une nouvelle colonne dans la table, du genre colonne1, colonne2, colonne3 etc..
C'est possible en PHP ?
Merci de vos réponses.
Re: Incrémenter une colonne
Posté : 23 mai 2013, 10:02
par Gorbi
Bonjour,
La commande SQL que tu recherches dépend des paramètres de la colonne que tu veux rajouter, en voici quelques exemples :
ALTER TABLE `Nom de la table` ADD `Nom de la colonne à rajouter` INT NOT NULL
ALTER TABLE `Nom de la table` ADD `Nom de la colonne à rajouter` VARCHAR( 20 ) NOT NULL
ALTER TABLE `Nom de la table` ADD `Nom de la colonne à rajouter` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
Après il te suffit d'exécuter l'une de ces commandes en PHP de cette manière :
$strSQL = "ta commande SQL ";
$rs = mysql_query($strSQL);
Bonne continuation
Re: Incrémenter une colonne
Posté : 23 mai 2013, 10:20
par ghost5922
Bonjour,
quand il parle de auto incrémenté il parle du numéro de la colonne il suffi donc de faire une boucle et tu vérifie si la colonne existe sinon tu l'as créer et stop ton code
Re: Incrémenter une colonne
Posté : 23 mai 2013, 10:25
par NUAGE
Bonjour,
Est-il possible de faire par exemple date1, date2, date3 ? Que le "date" reste le même est l'auto-incrémente se rajoute à ce date.
Re: Incrémenter une colonne
Posté : 23 mai 2013, 10:27
par ghost5922
Re,
non il me semble pas
Re: Incrémenter une colonne
Posté : 23 mai 2013, 10:29
par NUAGE
Re,
Parce qu'en fait, je ne sais pas combien de date il y a à l'avance du coup comment je fais ?
Re: Incrémenter une colonne
Posté : 23 mai 2013, 10:32
par ghost5922
Re,
Creer une autre table
dateformation id,id_formation,date,date2
tu pourras mettre autant de date que tu veux
Re: Incrémenter une colonne
Posté : 23 mai 2013, 10:54
par NUAGE
Avec ceci ça me crée qu'une date de plus...
[javascript] $("#bAdd").click(function(){
if ($('#date3').length <= 0){
$("#trAdd").after('<tr><td><label for="date"><strong>Date 3 :</strong></label></td><td><input type="text" name="date3" id="date3" /></td></tr>');
$( "#date3" ).datepicker();
}
});[/javascript]
Re: Incrémenter une colonne
Posté : 23 mai 2013, 11:01
par Hélène
salut,
c'est pas normal ce que tu veux faire, il faut que tu crées une table avec un id_date en clé primaire...c'est une question de ligne pas de colonne avec un INSERT INTO pour chaque nouvelle date!
Re: Incrémenter une colonne
Posté : 23 mai 2013, 11:16
par NUAGE
Bonjour,
Au niveau du formulaire, je ne sais pas comment l'afficher, j'arrive pour les 2 premières dates, mais si je veux trois dates ?
Re: Incrémenter une colonne
Posté : 23 mai 2013, 11:31
par ghost5922
Re,
Il faut que quand tu ajoutes une date ils ont tous le même nom
<input type="text" name="date[]" id="date" />
<input type="text" name="date2[]" id="date2" />
a chaque ajoute de date tu ajoute c'est deux champ
et quand tu valides tu parcours ton tableau de date au moment de l'insert et tu ajoutes
insert into dateformation set id_form='x' `date`='$date[0]', date2='$date2[0]'
insert into dateformation set id_form='x' `date`='$date[1]', date2='$date2[1]'
dans la boucle il aura juste une ligne mais un exemple
Re: Incrémenter une colonne
Posté : 23 mai 2013, 11:56
par NUAGE
Re,
Ça me met cette notification
Notice: Undefined offset: 1 in C:\
Pour cette ligne
$req1="insert into dateformation set `id_form`=LAST_INSERT_ID(), `date`='$date[1]', `date2`='$date2[1]'";
Et j'ai pas compris pour la boucle je la met où ?
Re: Incrémenter une colonne
Posté : 23 mai 2013, 12:08
par ghost5922
Re,
Bon déjà faut bien avoir tes input nommé date[] et date2[]
après quand tu récupérés tes donnes
tu ajoutes les informations en bdd ?
juste apres les avoir ajouter sans aucune date tu utilises
$id_form=mysql_insert_id();
puis tu fais un
$i=0;
foreach($_POST['date'] as $date){
if(isset($_POST['date2'][$i]) and !empty($_POST['date2'][$i])){$date2=$_POST['date2'][$i];}else{$date2='';}
$req1="insert into dateformation set `id_form`='$id_form', `date`='$date', `date2`='$date2'";
$i++;
}
en gros faut que tu améliore le code
Re: Incrémenter une colonne
Posté : 23 mai 2013, 12:20
par NUAGE
Re,
Je suis désolé mais je suis trop bête car je ne comprend pas pourquoi un for puisque je ne peux finalement en mettre que 2 des dates...
Re: Incrémenter une colonne
Posté : 23 mai 2013, 12:29
par ghost5922
Non en ajax tu utilises un script pour ajouter des champs en plus
pour avoir plusieurs dates
Formation 1 date prevu
15/05/2013 au 19/05/2013
20/05/2013 au 23/05/2013
tu coup au lieu d'ajoute un champ tu en ajoute deux
par defaut dans ton formulaire tu vas avoir
<input type="text" name="date[]" id="date" />
<input type="text" name="date2[]" id="date2" />
puis ton bouton pour ajouter une date
celle-ci va donc ajouter deux nouveau champ
avec les mêmes nom date[] et date2[]
et avec le foreach tu vas ajouter les dates et autant que tu le veux pour cette formation