Ajout de ligne a partir d'un formulaire

Eléphanteau du PHP | 36 Messages

28 déc. 2005, 14:23

ok mais le probleme c'est que le nombre de mes champ date est definier manuelement donc il est aléatoire ...

c'est 1 seule colene qui est remplie avec plusieur champs ...

tu vois ou pas ???

Mammouth du PHP | 19672 Messages

28 déc. 2005, 14:25

non, je ne vois pas: la structure d'une table de base de données n'est pas élastique... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 36 Messages

28 déc. 2005, 14:45

en fait j'ai ma table
et je veux l'incrementer avec mes champs et c'est le nombre de champs qui sont aléatoire chaque ligne doit etre definie par : l'id qui et égal a l'autre id autoincrementer de la table chds_cours_desc
et le champs

donc j'aie des champs avec la meme ID mais pas la meme ID_date (qiu elle est autoincrementer...)

je pense qu'il faut une boucle mais je ne sais pas trop comment la gerer...

Mammouth du PHP | 19672 Messages

28 déc. 2005, 14:47

Je ne comprends pas: peux-tu nous mettre la structure de la table et une série de données exemple ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 36 Messages

28 déc. 2005, 15:03

la structure de ma table est : dont l'ID est la meme que l'ID autoincrementer de la table chds_cours_desc

Code : Tout sélectionner

CREATE TABLE `chds_cours_horraire` ( `ID` tinyint(11) NOT NULL default '0', `ID_date` tinyint(11) NOT NULL auto_increment, `cours_date` varchar(44) NOT NULL default '0000-00-00', PRIMARY KEY (`ID_date`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
et (cette table contient les premier champ c'est a dire :le champ nom, nationnalité...)

Code : Tout sélectionner

CREATE TABLE `chds_cours_desc` ( `ID` tinyint(11) NOT NULL auto_increment, `nom_prof` varchar(50) NOT NULL default '', `nationnalite_prof` varchar(50) NOT NULL default '', `commentaire_prof` text NOT NULL, `DateFR` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=82 ;



docn ensuite ma premiere table :
chds_cours_desc:
ID => autoincrementer (exemple: 1)
nom_prof => jean paul
nationnalite_prog => belge
commentaire_prof => eh bien un commentaire
DateFR => fonction NOW()

chds_cours_horraire
ID | ID_date | cours_date |
1 | 1 | 12 janveir 2006|
1 | 2 | 15 janvier 2006 |
1 | 3 | 16 janvier 2006 |
2 | 4 | 25 mars 2006|
2 | 5 | 28 mai 2006|

voila comment serai la table apres ??
ca ta eclairer ????

Mammouth du PHP | 19672 Messages

28 déc. 2005, 15:08

Alors l'erreur est dans le nom de la table utilisée:

Code : Tout sélectionner

INSERT INTO chds_cours_horraire VALUES (82,'','ghggh','ghghghg','hghghgh')
Cette table n'a que trois champs et tu envoies 5 valeurs.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 36 Messages

28 déc. 2005, 15:13

non 1 champ doit etre egal a uen ligne de la table

Mammouth du PHP | 19672 Messages

28 déc. 2005, 15:16

Bon, utilisons le même langage si tu veux bien: Un champ correspond à une colonne dans la table: une ligne comprend donc un nombre de champ égal au nombre de colonnes de la table. Si ta table a 3 colonnes, alors tu ne peux pas envoyer 5 valeurs dans une requête d'insertion de cette manière.

Essaye de reformuler ta question parce que je ne comprends pas ce que tu veux faire en fin de compte.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 36 Messages

28 déc. 2005, 15:25

je suis ok avce toi

le truc c'est que j'aie des champ dans mon formulaire c'est les champ date bon et chauqe champ correspond a une ligne dans la table chaque champ du formulaire est donc definie das la table par une ID une ID_date (autoincrementer) et cours_date, sa description (sa valeur)

tu voi ou pas

et dans mon formulair le nombre de c'est champ est aleatoire ...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 déc. 2005, 15:28

l'erreur vient de la construction, il ne faut pas ajouter les valeurs dans le meme enregistrement mais en crée un par valeur, du style:

Code : Tout sélectionner

INSERT INTO table( champ1, champ2 )VALUES ( 1, 'truc' ) , ( 2, 'machin' ) , ( 3, 'bidule' )
essaie avec:
$values="";
			
            //construction dynamique de la requete
            for($i=1;$i<=$nb;$i++)
            {
              
			   $values .= "(".$id.",'".$_POST['champ'.$i]."'),";
            }            
            
            $sql="INSERT INTO chds_cours_horraire (ID,cours_date) VALUES ".$values; 
			
			$sql = substr($sql, 0, -1); //enleve la dernière virgule

avant d'exécuter affiche la requete générée et verifis qu'elle est conforme.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 36 Messages

28 déc. 2005, 15:30

c'est good merci ......

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 déc. 2005, 18:01

C'est Résolu ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

28 déc. 2005, 22:21

oui nows j'aie d'autre probleme mais c'est sur une autre page mais bon il faut que je me creuse un peut la tete lol