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