salut requête SQL devient
UPDATE club
SET pseudo =:pseudo,
id_membre =:id_membre,
nom =:nom,
adresse =:adresse,
ville =:ville,
cp =:cp,
pays =:pays,
region =:region,
tel =:tel,
gsm =:gsm,
mail =:mail,
web =:web,
lundi =:lundi,
lutype =:lutype,
luprixcpl =:luprixcpl,
luprixf =:luprixf,
luprixtv =:luprixtv,
luprixh =:luprixh,
mardi =:mardi,
martype =:martype,
marprixcpl =:marprixcpl,
marprixf =:marprixf,
marprixtv =:marprixtv,
marprixh =:marprixh,
mercredi =:mercredi,
mertype =:mertype,
merprixcpl =:merprixcpl,
merprixf =:merprixf,
merprixtv =:merprixtv,
merprixh =:merprixh,
jeudi =:jeudi,
jeutype =:jeutype,
jeuprixcpl =:jeuprixcpl,
jeuprixf =:jeuprixf,
jeuprixtv =:jeuprixtv,
jeuprixh =:jeuprixh,
vendredi =:vendredi,
ventype =:ventype,
venprixcpl =:venprixcpl,
venprixf =:venprixf,
venprixtv =:venprixtv,
venprixh =:venprixh,
samedi =:samedi,
samtype =:samtype,
samprixcpl =:samprixcpl,
samprixf =:samprixf,
samprixtv =:samprixtv,
samprixh =:samprixh,
dimanche =:dimanche,
dimtype =:dimtype,
dimprixcpl =:dimprixcpl,
dimprixf =:dimprixf,
dimprixtv =:dimprixtv,
dimprixh =:dimprixh,
detail_club=:detail_club
WHERE pseudo =:pseudo
le code
<?php
$req_plus->execute(array('pseudo'=>$pseudo,
':id_membre'=>$id_membre,
':nom'=>$nom,
':adresse'=>$adresse,
':ville'=>$ville,
':cp'=>$cp,
':pays'=>$pays,
':region'=>$region,
':tel'=>$tel,
':gsm'=>$gsm,
':mail'=>$mail,
':web'=>$web,
':lundi'=>$lundi,
':lutype'=>$lutype,
':luprixcpl'=>$luprixcpl,
':luprixf'=>$luprixf,
':luprixtv'=>$luprixtv,
':luprixh'=>$luprixh,
':mardi'=>$mardi,
':martype'=>$martype,
':marprixcpl'=>$marprixcpl,
':marprixf'=>$marprixf,
':marprixtv'=>$marprixtv,
':marprixh'=>$marprixh,
':mercredi'=>$mercredi,
':mertype'=>$mertype,
':merprixcpl'=>$merprixcpl,
':merprixf'=>$merprixf,
':merprixtv'=>$merprixtv,
':merprixh'=>$merprixh,
':jeudi'=>$jeudi,
':jeudtype'=>$jeutype,
':jeuprixcpl'=>$jeuprixcpl,
':jeuprixf'=>$jeuprixf,
':jeuprixtv'=>$jeuprixtv,
':jeuprixh'=>$jeuprixh,
':vendredi'=>$vendredi,
':ventype'=>$ventype,
':venprixcpl'=>$venprixcpl,
':venprixf'=>$venprixf,
':venprixtv'=>$venprixtv,
':venprixh'=>$venprixh,
':samedi'=>$samedi,
':samtype'=>$samtype,
':samprixcpl'=>$samprixcpl,
':samprixf'=>$samprixf,
':samprixtv'=>$samprixtv,
':samprixh'=>$samprixh,
':dimanche'=>$dimanche,
':dimtype'=>$dimtype,
':dimprixcpl'=>$dimprixcpl,
':dimprixf'=>$dimprixf,
':dimprixtv'=>$dimprixtv,
':dimprixh'=>$dimprixh,
':detail_club'=>$detail_club)); // ici l'erreur
pour ce qui est de ma proposition de modification du modèle
CREATE TABLE club (
id_club INT(4) NOT NULL AUTO_INCREMENT,
id_membre INT(11) NOT NULL,
pseudo CHAR(30) NOT NULL,
nom CHAR(30) NOT NULL,
adresse VARCHAR(255) NOT NULL,
ville VARCHAR(255) NOT NULL,
cp INT(4) NOT NULL,
pays VARCHAR(255) NOT NULL,
region VARCHAR(255) NOT NULL,
tel INT(11) NOT NULL,
gsm INT(11) NOT NULL,
mail VARCHAR(255) NOT NULL,
web VARCHAR(255) NOT NULL,
detailclub LONGTEXT NOT NULL,
PRIMARY KEY (`id_club`),
INDEX (`id_membre`)
-- ajoute ici la clef étrangère vers la table des membres
) ENGINE=innodb DEFAULT CHARSET=utf8;
-- vérifie quand même les types
create table tarif_club (
id_club INT(4) NOT NULL,-- peux être un peu limite le int(4) ?
day_number INT NOT NULL CHECK (day_number BETWEEN 0 AND 6),
-- type est un mot clef sql il smeble donc à fuir pour un nom de colonne
letypeVARCHAR(255) NOT NULL, TYPE VARCHAR(255) NOT NULL,
prix_cpl INT(4) NOT NULL,
prix_f INT(4) NOT NULL,
prix_tv INT(4) NOT NULL,
prix_h INT(4) NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
alter table tarif_club add constraint FK_club foreign key(id_club) references club(id_club);
-- Pour la clef primaire deux choix
la colonne int classique : tarif_club_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-- utiliser une PK sur deux colonnes : id_club + dayNumber, comme ça tu n'auras jamais deux tarif pour le même jour pour le même club
alter table tarif_club add constraint PK_tarif_club primary key(id_club,day_number);
-- => je préfère la seconde solution
ensuite tu crées ton club avec les infos qui vont bien dans la première table.
quand tu veux ajouter ou modifier / supprimer un tarif tu le fait dans la seconde table.
Cette table permet d'avoir un "tarif" (ou plutôt un ensemble, même si le mieux serait d'avoir les tarifs individuellement) pour un club et un jour donné.
J'ai fait le choix de numéroter les jours de zéro à six.
en php pour avoir le numéro du jour
<?php
echo date('w'); // éventuellement en passant la date en second paramètre sinon c'est pas utile ;) )
attention le zéro c'est dimanche
Ensuite réduisons un peux le code php.
Coté html il faut utiliser la notation tableau dans les noms des champs
<input type="text" name ="type[]" />
<input type="hidden" name="jour[]" value="1" />
coté php c'est assez simple, je te laisse faire l'insertion / mise à jour dans la première table
<?php
$sql = <<<SQL
insert into tarif_club (id_club, day_number, letype , prix_cpl, prix_f, prix_tv, prix_h)
values (:id_club, :day_number, :letype, :prix_cpl, :prix_f, :prix_tv, :prix_h)
SQL;
// je sais pas d'ou vient l'info
$id_club = 42;
$pdo = new PDO();
$stmt = $pdo->prepare($sql);
foreach ($_POST['type'] as $key => $value) {
$jour = $_POST['jour'][$key];
$type = $_POST['type'][$key];
$prixcpl = $_POST['prixcpl'][$key];
$prixf = $_POST['prixf'][$key];
$prixtv = $_POST['prixtv'][$key];
$prixh = $_POST['prixh'][$key];
$stmt->bindParam(':id_club', $id_club);
$stmt->bindParam(':day_number', $jour);
$stmt->bindParam(':letype', $type);
$stmt->bindParam(':prix_cpl', $prixcpl);
$stmt->bindParam(':prix_f', $prixf);
$stmt->bindParam(':prix_tv', $prixtv);
$stmt->bindParam(':prix_h', $prixh);
$stmt->execute();
}
$stmt->closeCursor();
la mise à jour c'est le même principe avec une requête update.
en code ces quelques lignes je me suis rendu compte que le prédicat de la requête update portait sur le pseudo du membre et non pas sur le club. Je pense qu'il te manque l'id club dans le prédicat.
Parce que il suffit que le membre soit plusieurs club et c'est le foutoir.
D'ailleurs j'ai l'impression qu'il y a un méli mélo la dedans.
cette tableau contient bien les information d'un "club" (au sens association, réunion de gens ?).
Dans ce cas je ne vois pas trop a quoi sert le membre.
si tu veux des tarifs associé à un membre pour un club c'est possible mais pas ainsi (de façon simple, clair et sans soucis

)
@+
Il en faut peu pour être heureux ......