[RESOLU] Incrémenter une colonne

Eléphant du PHP | 167 Messages

23 mai 2013, 09:41

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.

Eléphant du PHP | 51 Messages

23 mai 2013, 10:02

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

Mammouth du PHP | 619 Messages

23 mai 2013, 10:20

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

Eléphant du PHP | 167 Messages

23 mai 2013, 10:25

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.

Mammouth du PHP | 619 Messages

23 mai 2013, 10:27

Re,

non il me semble pas

Eléphant du PHP | 167 Messages

23 mai 2013, 10:29

Re,

Parce qu'en fait, je ne sais pas combien de date il y a à l'avance du coup comment je fais ?

Mammouth du PHP | 619 Messages

23 mai 2013, 10:32

Re,

Creer une autre table

dateformation id,id_formation,date,date2

tu pourras mettre autant de date que tu veux

Eléphant du PHP | 167 Messages

23 mai 2013, 10:54

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]

Eléphanteau du PHP | 32 Messages

23 mai 2013, 11:01

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!

Eléphant du PHP | 167 Messages

23 mai 2013, 11:16

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 ?

Mammouth du PHP | 619 Messages

23 mai 2013, 11:31

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

Eléphant du PHP | 167 Messages

23 mai 2013, 11:56

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ù ?

Mammouth du PHP | 619 Messages

23 mai 2013, 12:08

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

Eléphant du PHP | 167 Messages

23 mai 2013, 12:20

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...

Mammouth du PHP | 619 Messages

23 mai 2013, 12:29

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