Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2011, 22h05   #1
Futur Membre du Club
 
Mamadou Saliou DIALLO
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 71
Détails du profil
Informations personnelles :
Nom : Mamadou Saliou DIALLO
Localisation : Guinée

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 71
Points : 17
Points : 17
Par défaut Insertion de données dans 3 tables liées

Voilà, je dispose de trois tables en relation avec les champs suivants: cours (id_cours, nom_cours) ; chapitres (id_chapitre, nom_chapitre, num_chapitre, id_cours, id_contenu) ; contenu (id_contenu, text_contenu, date_creation, date_modification) ;
Et je voudrais faire une requête pour insérer les données dans ces trois tables en relation et là suis planté ! Si quelqu’un pouvait m’aider ????
onesat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 22h53   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
bonjour,

faites 3 insert différents ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2011, 18h25   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
1) Insérer dans la table cours et récupérer l'identifiant auto-incrémenté (mysql_insert_id en PHP).
2) Idem avec la table contenu.
3) Insérer dans la table chapitres en utilisant les identifiants récupérés.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2011, 20h30   #4
Futur Membre du Club
 
Mamadou Saliou DIALLO
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 71
Détails du profil
Informations personnelles :
Nom : Mamadou Saliou DIALLO
Localisation : Guinée

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 71
Points : 17
Points : 17
J'apprécie bien ton aide CinePhil mais j'avoue là suis vraiment planté par ce que je ne sais pas me servir de cette fonction ou propriété (mysql_insert_id en PHP) et un exemple avec les codes pour mon cas m'aidera beaucoup!
Et pour ce qui est de la proposition de punkoff j'y avait pensé mais sa ne ma pas donné le résultat es-conte par ce que les clefs étrangères (id_cours, id_contenu) de la table chapitre étaient tous null (ont pris pour valeur 0) voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$contenu=$_POST['editor1'];
$ncours=$_POST['ncours'];
$nchapitre=$_POST['nchapitre'];
$numchapitre=$_POST['numchapitre'];
$today=date('y-m-d,h-m-s');
$datemod=date('y-m-d,h-m-s');
$connexion=mysql_connect("localhost", "root", "" )or die("cannot connect" );
	mysql_select_db("basedugenie",$connexion )or die("cannot select DB" );
	mysql_query("SET NAMES 'utf8'" );
 
$requete="INSERT INTO cours (id_cours,nom_cours) VALUES('','$ncours')";
$resultat=mysql_query($requete);
 
$requete1="INSERT INTO chapitres (id_chapitre,nom_chapitres,num_chapitres,id_contenu,id_cours) VALUES('','$nchapitre','$numchapitre','$contenu','$ncours')";
$resultat1=mysql_query($requete1);
 
$requete2="INSERT INTO contenu (id_contenu,text_contenu,date_creation,date_modification) VALUES('','$contenu','$today','$datemod')";
$resultat2=mysql_query($requete2);
$erreur=mysql_error();
				print ($erreur);
				header("location: ajouterchap.php");
?>
onesat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2011, 23h15   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
Tu n'es pas très loin de la solution.

Quelques remarques tout de même...

1) Il semble que tes identifiants soient, comme il se doit, des entiers auto-incrémentés.
Inutile de vouloir leur donner une valeur, encore moins une chaîne vide puisque ce sont des entiers !

2) Protège tes variables utilisées dans les requêtes pour éviter les injections SQL avec mysql_real_escape_string et intval.

3) Comme dit dans mon précédent message, utilise mysql_insert_id() pour récupérer la valeur de l'identifiant qui a été créé par l'insertion.

4) Insère d'abord dans cours et dans contenu avant d'insérer dans chapitre puisque chapitre doit accueillir les clés étrangères référençant le cours et le contenu.

5) Aère ton code ; il sera plus agréable à lire quand tu auras à revenir dessus.

Code PHP :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$contenu = mysql_real_escape_string($_POST['editor1']);
$ncours = mysql_real_escape_string($_POST['ncours']);
$nchapitre = mysql_real_escape_string($_POST['nchapitre']);
$numchapitre = mysql_real_escape_string($_POST['numchapitre']); // si c'est un entier, utilise plutôt intval($_POST['numchapitre'])
$today = date('y-m-d,h-m-s');
$datemod = date('y-m-d,h-m-s');
$connexion = mysql_connect("localhost", "root", "" ) OR die('cannot connect' );
mysql_select_db('basedugenie', $connexion ) OR die('cannot select DB' );
mysql_query("SET NAMES 'utf8'" );
 
$requete = "
  INSERT INTO cours (nom_cours) 
  VALUES('".mysql_real_escape_string($ncours)."')
";
mysql_query($requete) or die("Erreur à l'insertion du cours : ".mysql_error().'<br />'.$requete);
$id_cours = mysql_insert_id($connexion);
 
$requete = "
  INSERT INTO contenu (text_contenu, date_creation, date_modification) 
  VALUES('$contenu', '$today', '$datemod')
";
mysql_query($requete) or die("Erreur à l'insertion du contenu : ".mysql_error().'<br />'.$requete);
$id_contenu = mysql_insert_id($connexion);
 
$requete = "
  INSERT INTO chapitres (nom_chapitres, num_chapitres, id_contenu, id_cours) 
  VALUES('$nchapitre', '$numchapitre', $id_contenu, $id_cours)
";
$resultat1 = mysql_query($requete1) or die("Erreur à l'insertion du chapitre : ".mysql_error().'<br />'.$requete);
 
header("location: ajouterchap.php");
?>

Une dernière chose qui m'intrigue quand même dans ton code : à chaque nouvelle association de contenu et de cours pour constituer un chapitre, tu vas ajouter de nouveau le cours et le contenu !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 15h00   #6
Futur Membre du Club
 
Mamadou Saliou DIALLO
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 71
Détails du profil
Informations personnelles :
Nom : Mamadou Saliou DIALLO
Localisation : Guinée

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 71
Points : 17
Points : 17
Ok! l'utilisation de mysql_insert_id() a bien fonctionner comme je le voulais seulement avec mysql_real_escape_string pour éviter les injections SQL ne fonctionne pas à merveille du tout par ce que sa poste les données mais avec un contenu vide! Et je ne sais pas ce qui manque ou ce qu'il me faut faire!
onesat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 15h35   #7
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 727
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 727
Points : 3 294
Points : 3 294
Salut

Je serais étonné que ça soit la fonction mysql_real_escape_string() qui provoquerait ces erreur de contenu vide.
Quelles sont les données qui présentes des problèmes ? Toutes ?


Je verrais plutôt que :
Soit les informations ne seraient pas saisies au niveau du formulaire (étape juste avant)
Soit le formulaire (toujours l'étape d'avant) contient des erreurs, ce qui fait que le $_POST ne contiendrait pas toutes les données souhaitées.

Dans des cas comme ça, il ne faut pas hésiter de faire un peu de débogage afin d'avoir des informations plus précises/pertinentes.

Exemple : (dès la 1ère de code de cette page qui effectue les insertions)
Code :
1
2
3
4
5
6
7
8
9
 
// Ceci
var_dump($_POST);
 
// Ou alors
print_r($_POST);
 
exit(); // Ici, on stop net le code à cette ligne.
// Ca évite de faire des insertions inutilement, donc de polluer la Bdd.
Ensuite suffit de vérifier que toutes les données attendues soient là, et quelles correspondent à celles attendues aussi.


Code :
$datemod = date('y-m-d,h-m-s');
Est tu certain de ce bon format de date (datetime) ?

Ceci me semble plus standard : (fait un essai, ça ne mange pas d'pain)
Code :
$datemod = date('Y-m-d H:m:s');
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 13h41   #8
Futur Membre du Club
 
Mamadou Saliou DIALLO
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 71
Détails du profil
Informations personnelles :
Nom : Mamadou Saliou DIALLO
Localisation : Guinée

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 71
Points : 17
Points : 17
Voici les données qui me provoquent les erreurs de contenu vide:

Code :
1
2
3
$contenu =mysql_real_escape_string($_POST['editor1']);
$ncours =mysql_real_escape_string($_POST['ncours']);
$nchapitre =mysql_real_escape_string($_POST['nchapitre']);
Et pour plus d'information toutes les informations sont saisi au niveau du formulaire tels que:
Code :
$contenu =mysql_real_escape_string($_POST['editor1']);
est le contenu d'un texte area de ckeditor et son type de champs dans la base de donnée est longtext
Code :
$ncours =mysql_real_escape_string($_POST['ncours']);
est le contenu d'une liste de choix et son type de champs dans la base de donnée est varchar(255)
Code :
$nchapitre =mysql_real_escape_string($_POST['nchapitre']);
est le contenu d'un champ input et son type de champs dans la base de donnée est varchar(255)
Et voilà!
onesat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 15h01   #9
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 727
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 727
Points : 3 294
Points : 3 294
Citation:
Voici les données qui me provoquent les erreurs de contenu vide:
Sur un forum comme ça, il ne faut pas hésiter à être plus précis, quitte à se répéter.

Ici, tu parles de contenu vide, certes, mais est-ce vide car comme plus haut elles sont vide dans la Bdd, où est-ce parce que tu l'as remarqué grâce au var_dump() que je t'avais suggérer de faire ?

On ne sait, du coup, il existe plein de cas d'erreurs possible.
Impossible de toutes les évoqués.

Je vais juste donner un exemple typique d'erreur.
On fais un var_dump($_POST), ce qui va afficher toutes les données contenu dans ce tableau qui n'est qu'autres que les données renvoyées par l'étape d'avant : le formulaire.
On constate (hypothèse toujours) que l'élément "editor1" n'y se trouve pas, cependant, il y a un élément "editor" avec les données saisies.
Et bien on peu conclure qu'il y tout simplement erreur sur le nom.
-> Soit on corrige cette page en récupérant avec comme nom "editor"
-> Soit on renomme le champ "editor" coté formulaire par "editor1".


Si dans le var_dump() il y rien qui pourrait correspondre à cet donnée "editor", alors c'est peut être l'intégration de ckeditor qui ne va pas.
Faudrait revoir les tutoriels de ce Soft pour tenter de voir où ça ne va pas.
Autre hypothèse encore.

Toujours est il que tant qu'une données est inexistante dans le var_dump($_POST), c'est au niveau du formulaire où ça ne va pas.


Au passage, active la gestion des erreurs Php, car si c'était le cas tu aurais dû obtenir des erreurs renvoyés par Php.
Dans le php.ini -> display_error à On
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/12/2011, 14h29   #10
Futur Membre du Club
 
Mamadou Saliou DIALLO
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 71
Détails du profil
Informations personnelles :
Nom : Mamadou Saliou DIALLO
Localisation : Guinée

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 71
Points : 17
Points : 17
Ok RunCodePhp voilà j'ai suivis vos conseils et j'ai utilisé pour avoir ce ci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
$contenu =mysql_real_escape_string($_POST['editor1']);
$ncours =mysql_real_escape_string($_POST['ncours']);
$nchapitre =mysql_real_escape_string($_POST['nchapitre']);
$numchapitre =mysql_real_escape_string($_POST['numchapitre']); // si c'est un entier, utilise plutôt intval($_POST['numchapitre'])
$today = date('y-m-d,h-m-s');
$datemod = date('y-m-d,h-m-s');
$connexion = mysql_connect("localhost", "root", "" ) OR die('cannot connect' );
mysql_select_db('basedugenie', $connexion ) OR die('cannot select DB' );
mysql_query("SET NAMES 'utf8'" );
 
$requete = "
  INSERT INTO cours (nom_cours) 
  VALUES('".mysql_real_escape_string($ncours)."')
";
mysql_query($requete) or die("Erreur à l'insertion du cours : ".mysql_error().'<br />'.$requete);
$id_cours = mysql_insert_id($connexion);
 
$requete = "
  INSERT INTO contenu (text_contenu, date_creation, date_modification) 
  VALUES('$contenu', '$today', '$datemod')
";
mysql_query($requete) or die("Erreur à l'insertion du contenu : ".mysql_error().'<br />'.$requete);
$id_contenu = mysql_insert_id($connexion);
 
$requete = "
  INSERT INTO chapitres (nom_chapitres, num_chapitres, id_contenu, id_cours) 
  VALUES('$nchapitre', '$numchapitre', $id_contenu, $id_cours)
";
$resultat1 = mysql_query($requete) or die("Erreur à l'insertion du chapitre : ".mysql_error().'<br />'.$requete);
 
print_r($_POST[ncours]);
print_r($_POST[nchapitre]);
print_r($_POST[editor1]);
 
//header("location: ajouterchap.php");
 
?>
Et voici le code d'erreur correspondant lorsque j'ai envoyé les données:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'Système'@'localhost' (using password: NO) in C:\wamp\www\sitedugenie\administrator\envoi.php on line 25
 
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\sitedugenie\administrator\envoi.php on line 25
 
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'Système'@'localhost' (using password: NO) in C:\wamp\www\sitedugenie\administrator\envoi.php on line 26
 
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\sitedugenie\administrator\envoi.php on line 26
 
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'Système'@'localhost' (using password: NO) in C:\wamp\www\sitedugenie\administrator\envoi.php on line 27
 
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\sitedugenie\administrator\envoi.php on line 27
 
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'Système'@'localhost' (using password: NO) in C:\wamp\www\sitedugenie\administrator\envoi.php on line 28
 
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\sitedugenie\administrator\envoi.php on line 28
 
Notice: Use of undefined constant ncours - assumed 'ncours' in C:\wamp\www\sitedugenie\administrator\envoi.php on line 55
JavaScript
Notice: Use of undefined constant nchapitre - assumed 'nchapitre' in C:\wamp\www\sitedugenie\administrator\envoi.php on line 56
Introduction
Notice: Use of undefined constant editor1 - assumed 'editor1' in C:\wamp\www\sitedugenie\administrator\envoi.php on line 57
Définition JavaScript est un langage de programmation de scripts principalement utilisé dans les pages web interactives mais aussi côté serveur. C'est un langage orienté objet à prototype, c'est-à-dire que les bases du langage et ses principales interfaces sont fournies par des objets qui ne sont pas des instances de classes, mais qui sont chacun équipés de constructeurs permettant de générer leurs propriétés, et notamment une propriété de prototypage qui permet d'en générer des objets héritiers personnalisés.
et suis planté moi par ce que je ne sais pas comment le débogué
onesat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 14h40   #11
Membre du Club
 
Femme Adeline
Consultant informatique
Inscription : décembre 2011
Messages : 20
Détails du profil
Informations personnelles :
Nom : Femme Adeline
Âge : 30
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : décembre 2011
Messages : 20
Points : 44
Points : 44
je ne connais pas cette fonction: mysql_real_escape_string mais vu son nom elle ne devrai pas être appelée après la connexion à la base de donnée?
PtiteA2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 14h46   #12
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
PtiteA2 a raison, il faut d'abord se connecter à la base de données et ensuite créer la requête SQL en faisant appel à mysql_real_escape_string() sinon erreur.
Ton code devrait démarrer ainsi :
Code :
1
2
3
4
5
6
7
8
<?php
$connexion = mysql_connect("localhost", "root", "" ) OR die('cannot connect' );
mysql_select_db('basedugenie', $connexion ) OR die('cannot select DB' );
mysql_query("SET NAMES 'utf8'" );
...
...
...
?>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 15h06   #13
Futur Membre du Club
 
Mamadou Saliou DIALLO
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 71
Détails du profil
Informations personnelles :
Nom : Mamadou Saliou DIALLO
Localisation : Guinée

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 71
Points : 17
Points : 17
voilà il y a toujours d'autre code d'erreur comme tu me la suggérer j'ai effectuer le changement pour avoir ce ci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$connexion = mysql_connect("localhost", "root", "" ) OR die('cannot connect' );
mysql_select_db('basedugenie', $connexion ) OR die('cannot select DB' );
mysql_query("SET NAMES 'utf8'" );
 
$contenu =mysql_real_escape_string($_POST['editor1']);
$ncours =mysql_real_escape_string($_POST['ncours']);
$nchapitre =mysql_real_escape_string($_POST['nchapitre']);
$numchapitre =mysql_real_escape_string($_POST['numchapitre']); // si c'est un entier, utilise plutôt intval($_POST['numchapitre'])
$today = date('y-m-d,h-m-s');
$datemod = date('y-m-d,h-m-s');
 
$requete = "
  INSERT INTO cours (nom_cours) 
  VALUES('".mysql_real_escape_string($ncours)."')
";
mysql_query($requete) or die("Erreur à l'insertion du cours : ".mysql_error().'<br />'.$requete);
$id_cours = mysql_insert_id($connexion);
 
$requete = "
  INSERT INTO contenu (text_contenu, date_creation, date_modification) 
  VALUES('$contenu', '$today', '$datemod')
";
mysql_query($requete) or die("Erreur à l'insertion du contenu : ".mysql_error().'<br />'.$requete);
$id_contenu = mysql_insert_id($connexion);
 
$requete = "
  INSERT INTO chapitres (nom_chapitres, num_chapitres, id_contenu, id_cours) 
  VALUES('$nchapitre', '$numchapitre', $id_contenu, $id_cours)
";
$resultat1 = mysql_query($requete) or die("Erreur à l'insertion du chapitre : ".mysql_error().'<br />'.$requete);
 
print_r($_POST[ncours]);
print_r($_POST[nchapitre]);
print_r($_POST[editor1]);
 
//header("location: ajouterchap.php");
 
?>
Et voilà le code d'erreur que j'ai obtenu cette fois ci:
Code :
1
2
3
4
5
6
Notice: Use of undefined constant ncours - assumed 'ncours' in C:\wamp\www\sitedugenie\administrator\envoi.php on line 56
JavaScript
Notice: Use of undefined constant nchapitre - assumed 'nchapitre' in C:\wamp\www\sitedugenie\administrator\envoi.php on line 57
Introduction
Notice: Use of undefined constant editor1 - assumed 'editor1' in C:\wamp\www\sitedugenie\administrator\envoi.php on line 58
JavaScript est un langage de programmation de scripts principalement utilisé dans les pages web
onesat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 15h16   #14
Futur Membre du Club
 
Mamadou Saliou DIALLO
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 71
Détails du profil
Informations personnelles :
Nom : Mamadou Saliou DIALLO
Localisation : Guinée

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 71
Points : 17
Points : 17
J'ai juste oublier de mettre ces deux signes pour avoir ce ci:
Code :
print_r($_POST['editor1']);
et voici le bon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$connexion = mysql_connect("localhost", "root", "" ) OR die('cannot connect' );
mysql_select_db('basedugenie', $connexion ) OR die('cannot select DB' );
mysql_query("SET NAMES 'utf8'" );
 
$contenu =mysql_real_escape_string($_POST['editor1']);
$ncours =mysql_real_escape_string($_POST['ncours']);
$nchapitre =mysql_real_escape_string($_POST['nchapitre']);
$numchapitre =mysql_real_escape_string($_POST['numchapitre']); // si c'est un entier, utilise plutôt intval($_POST['numchapitre'])
$today = date('y-m-d,h-m-s');
$datemod = date('y-m-d,h-m-s');
 
$requete = "
  INSERT INTO cours (nom_cours) 
  VALUES('".mysql_real_escape_string($ncours)."')
";
mysql_query($requete) or die("Erreur à l'insertion du cours : ".mysql_error().'<br />'.$requete);
$id_cours = mysql_insert_id($connexion);
 
$requete = "
  INSERT INTO contenu (text_contenu, date_creation, date_modification) 
  VALUES('$contenu', '$today', '$datemod')
";
mysql_query($requete) or die("Erreur à l'insertion du contenu : ".mysql_error().'<br />'.$requete);
$id_contenu = mysql_insert_id($connexion);
 
$requete = "
  INSERT INTO chapitres (nom_chapitres, num_chapitres, id_contenu, id_cours) 
  VALUES('$nchapitre', '$numchapitre', $id_contenu, $id_cours)
";
$resultat1 = mysql_query($requete) or die("Erreur à l'insertion du chapitre : ".mysql_error().'<br />'.$requete);
 
print_r($_POST['ncours']);
print_r($_POST['nchapitre']);
print_r($_POST['editor1']);
 
//header("location: ajouterchap.php");
 
?>
oh la la la
onesat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 15h17   #15
Membre du Club
 
Femme Adeline
Consultant informatique
Inscription : décembre 2011
Messages : 20
Détails du profil
Informations personnelles :
Nom : Femme Adeline
Âge : 30
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : décembre 2011
Messages : 20
Points : 44
Points : 44
pourquoi dans ta requête tu as :
Code php :
1
2
3
4
$requete = "
  INSERT INTO cours (nom_cours) 
  VALUES('".mysql_real_escape_string($ncours)."')
";
pourquoi avoir encore appelé mysql_real_escape_string sur $ncours tu l'as déjà fait à la ligne 7:
Code php :
$ncours =mysql_real_escape_string($_POST['ncours']);

Et à mon avis tes erreurs viennent de tes 3 dernières lignes les trois print_r tu n'as pas mis de ' ' autour des noms des variables.
PtiteA2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 13h09   #16
Futur Membre du Club
 
Mamadou Saliou DIALLO
Administrateur systèmes et réseaux
Inscription : juillet 2011
Messages : 71
Détails du profil
Informations personnelles :
Nom : Mamadou Saliou DIALLO
Localisation : Guinée

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 71
Points : 17
Points : 17
Ok PetiteA2 j'ai bien noté!
révenons a nos moutons CinePhil
Une dernière chose qui m'intrigue quand même dans ton code : à chaque nouvelle association de contenu et de cours pour constituer un chapitre, tu vas ajouter de nouveau le cours et le contenu !
pour répondre à cette question je dirais bien OUI par ce que j'ai fais de telle sorte que si je veux envoyé un cours dans ma base de données je dois choisir le nom du cours après mettre un chapitre suivis du numéro de chapitre plus le contenu et qu'est ce que tu me suggère de faire pour palier a ce problème????
onesat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h57.


 
 
 
 
Partenaires

Hébergement Web