Trouver l'erreur

Fermé
maevien - Modifié par Chris 94 le 11/10/2013 à 14:23
maevien Messages postés 19 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 14 octobre 2013 - 14 oct. 2013 à 11:09
Bonjour,

j'ai un souci avec mon formulaire mais l'erreur dois se trouver dans cette requête:
$requete="INSERT INTO ecolesTO (id,nomRedac,prenomRedac,emailRedac,telRedac,adresseRedac,villeRedac,siteRedac,posteRedac,
nomEcol,denomination,statut,ville,adresseEtabl,datecreation,slogan,nbretud,sitecol,standard,fax,mailsec,
mailinscr,descecole,image,videopresentation,formationdispens,diplomedelivr,programmeniveau,programmespecialite,
certifEcole,certifDiplome,inscription,mensualite,ecolePartenaire,entreprisePartenaire,taux,nomME,prenomME,
formationSuiviME,niveauME,diplomeME,descriptionME,descriparcourME,photoME,moyenneME,themememoireME,
sujetmemoireME,memoireME)
VALUES('','$Nomr','$Prenomr','$Emailr','$Telephoner','$Adresser','$Viller','$Siter',
$Poster','$NomEcol','$DenominationEcol','$Statut','$VillEcol','$AdressEcol','$Datecreation','$Slogan',
'$Nbretudiant','$SitEcol','$Standard','$FaxEcol','$MailSecr','$MailInscr','$DescrEcol','$Image',
'$Videopr','$FormationDis','$DiplomeDeliv','$ProgrNiveau','$ProgrSpeci','$CertifEcol','$CertifDipl',
'$Inscription','$Mensualite','$EcolPart','$EsePart','$Tauxr','$Nomeilleur','$Prenomeilleur',
'$FormationSuivi','$Niveaumeilleur','$Diplomeilleur','$Descripelev','$Descriparcour','$Photomeilleur',
'$Moyennemeilleur','$Themememo','$Sujetmemo','$Memonline')";
svp vous y voyez une erreur car j'ai beau regardé je n'ai rien trouvé.

7 réponses

Utilisateur anonyme
11 oct. 2013 à 17:50
Il y a donc un problème dans l'exécution de la requête.
Pour voir la cause de l'erreur, modifie la ligne :
$rs = @mysql_query($sql, $link) ; 
et mets à la place (provisoirement) :
$rs = mysql_query($sql, $link)  or die (mysql_error()); 
1
maevien Messages postés 19 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 14 octobre 2013
14 oct. 2013 à 11:09
merci le père finalement j'ai vu l'erreur une faute de frappe dans la requête.
0
Salut, sans aller plus loin j'imagine que vous connaissez comment marche un INSERT SQL?
Sinon vous avez la description ici:
http://sql.sh/cours/insert-into

L'autre chose que je peut remarquer c'est que l'analyse de vos tables de données à l'air fausse. Une table doit regrouper en une entité les données de même type, il faudrait donc faire plusieurs tables dites jointes ou liées pour séparer les entités(qui sont différentes): rédaction, école(les coordonnées), écoles(la présentation et les diplômes/services disponibles).

Cela en plus de faire un programme qui sera fonctionnel et éviteras les erreurs et lenteurs de traitement comme la lourdeur du développement vous assureras des requêtes lisible et facile à corriger.
Bon ceci dit ça concernne la partie analyse qui est primordiale et semble ne pas avoir été faite mais ne devrait pas influer sur la justesse de votre requête.

Vu que c'est du PHP vous pouvez ajouter un or die(qui arrêtera le programme en cas d'échec ou erreur de la requête) ainsi que de l'adjonction de l'affichage de l'erreur incriminée qui indique souvent d'où vient le problème.

Voici un exemple de syntaxe à utiliser.

En outre la syntaxe que vous utilisez si elle juste est périmée; les requêtes sont actuellement(pour peu que vous utilisiez une version de PHP suffisament à jour) en utilisant le PDO qui est une syntaxe objet devenue plus commune car plus pratique.
L'équivalent de or die et mysql_error dans cette syntaxe en objet:

http://www.alsacreations.com/tuto/lire/676-gestion-erreurs-mysql-php-or-die.html

Une autre manière encore plus simple (mais qui sera beaucoup plus simple à déterminer si vus avez l'affichage de l'erreur directement est simplement d'afficher la valeur de chaque variable php à insérer par le biais d'un printr ou d'un echo, le problème pouvant venir du programme en amont et de l'attribution(ou la non attribution justement) d'une valeur correcte pour la variable concernée.


Alors si c'est pour trouver l'erreur pour vous c'est clairement non mais vous avez maintenant les outils pour la trouver vous même.
0
maevien Messages postés 19 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 14 octobre 2013
11 oct. 2013 à 15:55
pr les insert je connais bien comment ça marche sinon je ne voulais pas utiliser le concept objet que je ne maîtrise pas bien mais merci beaucoup
0
duweb Messages postés 353 Date d'inscription dimanche 30 mai 2010 Statut Membre Dernière intervention 6 mars 2014 72
11 oct. 2013 à 15:48
il faudrait déjà essayer de concaténer les variables :
remplacer toutes les variables values :
'$Nomr'

par

'".$Nomr."'
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
11 oct. 2013 à 15:49
ce n'est pas nécessaire.
0
Utilisateur anonyme
11 oct. 2013 à 16:39
Bonjour

j'ai un souci avec mon formulaire
Quel souci ?
Un message d'erreur ? Ou seulement l'insertion qui ne se fait pas ?
Peux-tu montrer la ligne de code qui exécute la requête ?
0
maevien Messages postés 19 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 14 octobre 2013
11 oct. 2013 à 16:45
c'est l'insertion qui ne se fait pas au fait le code est long mais suis quasi sure que l'erreur se trouve au niveau de cette requête
0
Utilisateur anonyme
11 oct. 2013 à 17:00
Je ne demande pas tout le code, juste la ligne où la requête est exécutée.
0
maevien Messages postés 19 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 14 octobre 2013
11 oct. 2013 à 17:09
juste en bas j l'ai posté
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maevien Messages postés 19 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 14 octobre 2013
11 oct. 2013 à 17:01
j'ai fait ceci :
$link = @mysql_connect('$server','$user','$pwd');
if (!$link)
{
echo 'echec connexion au serveur ';
}
else
{
if (!@mysql_select_db('$db', $link))
{
echo 'échec connexion à la base de donnée ';
}
else
{
$sql = "INSERT INTO ecolesTO (id,nomRedac,prenomRedac,emailRedac,telRedac,adresseRedac,villeRedac,siteRedac,posteRedac,
nomEcol,denomination,statut,ville,adresseEtabl,datecreation,slogan,nbretud,sitecol,standard,fax,mailsec,
mailinscr,descecole,image,videopresentation,formationdispens,diplomedelivr,programmeniveau,programmespecialite,
certifEcole,certifDiplome,inscription,mensualite,ecolePartenaire,entreprisePartenaire,taux,nomME,prenomME,
formationSuiviME,niveauME,diplomeME,descriptionME,descriparcourME,photoME,moyenneME,themememoireME,
sujetmemoireME,memoireME)
VALUES('','$Nomr','$Prenomr','$Emailr','$Telephoner','$Adresser','$Viller','$Siter','$Poster','$NomEcol','$DenominationEcol','$Statut','$VillEcol','$AdressEcol',
'$Datecreation','$Slogan','$Nbretudiant','$SitEcol','$Standard','$FaxEcol','$MailSecr','$MailInscr','$DescrEcol','$Image',
'$Videopr','$FormationDis','$DiplomeDeliv','$ProgrNiveau','$ProgrSpeci','$CertifEcol','$CertifDipl','$Inscription','$Mensualite','$EcolPart','$EsePart',
'$Tauxr','$Nomeilleur','$Prenomeilleur','$FormationSuivi','$Niveaumeilleur','$Diplomeilleur','$Descripelev','$Descriparcour','$Photomeilleur',
'$Moyennemeilleur','$Themememo','$Sujetmemo','$Memonline')";
$rs = @mysql_query($sql, $link) ;
if (!$rs)
echo 'enregistrement non effectué';
else

echo 'enregistrement effectué';

}
} mais pas de changement
0
Utilisateur anonyme
11 oct. 2013 à 17:21
Ça n'affiche rien du tout ? ni message d'erreur, ni "enregistrement effectué' ?
0
maevien Messages postés 19 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 14 octobre 2013
11 oct. 2013 à 17:47
il affiche enregistrement non effectué
0
maevien Messages postés 19 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 14 octobre 2013
11 oct. 2013 à 17:27
ça affiche enregistrement non effectué
0