Disfonctionnement - Je ne trouve pas l'erreur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Disfonctionnement - Je ne trouve pas l'erreur

Re: Disfonctionnement - Je ne trouve pas l'erreur

par Stase » 24 juin 2011, 12:00

Bonjour !

Merci pour ta réponse !
J'ai réussi à me débloquer hier soir, en refaisant pas mal de choses.
En fait, le problème venait de différents endroits cumulés.

Code : Tout sélectionner

else if($_GET['message']=="accesbdd" && $_GET['temp_id'] != "99999" ) {
A cet endroit la, j'ai remis des accolades autour du Else, pour etre sûr qu'il englobe bien tout ce que je voulais.

Code : Tout sélectionner

if ($_GET['message']!="ok" && $_GET['message']!="errbdd")
J'ai supprimé ce test qui s'avérait inutile, et qui empêchait l'affichage des données dans le formulaire lorsque je sélectionnais un des items dans la liste.

Et j'ai, dans l'affectation des variables juste en dessous, renommé les $liste_ parce qu'elles avaient le même nom tout au long du fichier, ce qui constituait un conflit entre elles.

Voilà ! J'espère que ça servira à quelqu'un !

Re: Disfonctionnement - Je ne trouve pas l'erreur

par Mazarini » 24 juin 2011, 11:13

Bonjour,

Il est possible de contrôler la bonne exécution d'une requête SQL via la fonction mysql_errno() et en cas d'erreur d'avoir le message via la fonction mysql_error(). Cela te permettra de savoir si la requête s'exécute ou pas.

Tu peux aussi afficher le contenu de la requête pour vérifier qu'elle correspond bien à ce que tu souhaites.

Disfonctionnement - Je ne trouve pas l'erreur

par Stase » 23 juin 2011, 16:04

Bonjour à tous !

Je me présente, Olivier, pas du tout familier avec le ph, mais bien obligé de s'y mettre pour le site de ma copine !
Enfin bref, ça ne vous intéresse probablement pas.

Donc, je suis en train de mettre en place une base de données pour pouvoir gérer des inscriptions/désinscription à des cours.
Donc j'ai deux parties : gestion des cours, et gestion des élèves.

J'ai commencé par la gestion des cours, vu que les élèves se traiteront de la même façon.
j'ai réussi tant bien que mal à mettre en place la création des cours, et ça fonctionne. Il ss'ajoutent à la base avec:
-un id auto-increment unique : numtype
-un id qui correpond au type de cours (cours, stage, ...) : idcours
-un niveau : niveau
-un libellé : libelle
-une description : description

Encore une fois, la création et l'insertion dans la base fonctionne.
Mais lorsque sur une autre page, je tente de modifier ou de supprimer les cours en place, ca ne fonctionne pas, et je ne comprends pas pourquoi. C'est là que j'ai besoin de vous !
Lorsque je supprime, quelque soit le cours que j'ai sélectionné, ça supprime forcément la dernière ligne de la base.
Lorsque je modifie un cours, ça ne fonctionne tout bonnement pas !

Dernière chose à dire avant le code : le but est d'avoir un menu déroulant contenant tous les cours, et lors de la sélection de l'un d'eux, les champs du formulaire en dessous se remplissent automatiquement avec les données connues sur ce cours, pour pouvoir les modifier.

Voici donc le code !
Merci beaucoup par avance, et j'espère à bientôt ! :priere:

Code : Tout sélectionner

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <SCRIPT LANGUAGE="JavaScript"> function selectionType(id) { document.location.href="http://www.monsite.fr/backOffice/modif_typecours.php?message=accesbdd&temp_id="+id } </SCRIPT> <style type="text/css" media="screen"> @import url("http://www.monsite.fr/css/style.css"); </style> </head> <body> <div id="page"> <div id="header_mariage"> </div> <div id="conteneur_gauche_cours"> <div id="conteneur_gauche_texte"> <?PHP include('http://www.monsite.fr/menu.php'); ?> </div> </div> <div id="conteneur_droite"> <h1>Modifier/Supprimer un type de cours</h1> <br/> <?php // Partie de traitement du formulaire... // Si la requete s'est bien effectue et donc qu'une modification a ete effectue if ($_GET['message']=="ok") { // On affiche un message de confirmation ?> <p>La modification a bien &eacute;t&eacute; effectu&eacute;e sur la base de donn&eacute;es.</p> <?php } // Si erreur dans la requete else if($_GET['message']=="errbdd") { // On affiche un message d'erreur ?> <p>Erreur de connexion &agrave; la Base de donn&eacute;es...</p> <p align="center"><a href="http://www.monsite.fr/backOffice/modif_typecours.php">Retour</a></p> <?php } else if($_GET['message']=="accesbdd" && $_GET['temp_id'] != "99999" ) { // On affiche les différents champs // Connexion avec la BDD $mysql_link = include ('dbconnect.php'); // Si connexion effectuée if($mysql_link) { // Requete et execution de la requete $stock_temp=$_GET['temp_id']; $requete = "SELECT * FROM typecours WHERE numtype='$stock_temp'"; $retour_select=mysql_query($requete); mysql_query("SET NAMES 'utf8'") ; while($this_last=mysql_fetch_array($retour_select)) // ne tournera qu'une fois ! { $liste_type = $this_last['numtype']; $liste_id = $this_last['idcours']; $liste_niveau = $this_last['niveau']; $liste_libelle = $this_last['libelle']; $liste_description = $this_last['description']; } } } //Check des boutons appuyés ? Supprimer ou Modifier ? else { if (isset($_POST['supprimer'])) { $id_to_delete = htmlentities($_POST['numtype'],ENT_NOQUOTES,'UTF-8'); $mysql_link = include ('dbconnect.php'); if($mysql_link) { $requete = "DELETE FROM typecours WHERE numtype='$id_to_delete'"; $execution = mysql_db_query($db_select, $requete); mysql_db_query("SET NAMES 'utf8'") ; ?> <SCRIPT LANGUAGE="JavaScript"> document.location.href="http://www.monsite.fr/backOffice/modif_typecours.php?message=ok" </SCRIPT> <?php } else { ?> <SCRIPT LANGUAGE="JavaScript"> document.location.href="http://www.monsite.fr/backOffice/modif_typecours.php?message=errbdd" </SCRIPT> <?php } } // Si le bouton Enregistrer les modifications a été appuyé if (isset($_POST['modifier'])) { // Récuperation des variables postés $liste_type = htmlentities($_POST['numtype'],ENT_NOQUOTES,'UTF-8'); $liste_id = htmlentities($_POST['idcours'],ENT_NOQUOTES,'UTF-8'); $liste_niveau = htmlentities($_POST['niveau'],ENT_NOQUOTES,'UTF-8'); $liste_libelle = htmlentities($_POST['libelle'],ENT_NOQUOTES,'UTF-8'); $liste_description = htmlentities($_POST['description'],ENT_NOQUOTES,'UTF-8'); // Si tous les champs ont étés remplis if ( $_POST['idcours']!="" && $_POST['niveau']!="" && $_POST['libelle']!="" && $_POST['description']!="" ) { // Connexion avec la BDD $mysql_link = include ('dbconnect.php'); // Si connexion effectuée if($mysql_link) { $requete = "UPDATE typecours SET idcours='$liste_id', niveau='$liste_niveau', libelle='$liste_libelle', description='$liste_description' WHERE numtype='$liste_type'"; $execution = mysql_db_query($db_select, $requete); mysql_db_query("SET NAMES 'utf8'") ; // Suivi d'une redirection JS ?> <SCRIPT LANGUAGE="JavaScript"> document.location.href="http://www.monsite.fr/backOffice/modif_typecours.php?message=ok" </SCRIPT> <?php } // Si erreur de connexion à la bdd else { ?> <SCRIPT LANGUAGE="JavaScript"> document.location.href="http://www.monsite.fr/backOffice/modif_typecours.php?message=errbdd" </SCRIPT> <?php } ?> <?php } // Si un des champs est vide on affiche un message d'erreur else { ?> <h2>Erreur</h2> <div class="hr"></div> <p>Tous les champs sont obligatoires !</p> <?php } } } //Si on arrive sur la page sans avoir appuyé sur Modifier, il faut remplir les champs une premiere fois if ($_GET['message']!="ok" && $_GET['message']!="errbdd") { ?> <select name="liste" onChange="selectionType(this.value)"> <option value="99999">Type de cours &agrave; modifier ?</option> <?php // Connexion avec la BDD $mysql_link = include ('dbconnect.php'); // Si connexion effectuée if($mysql_link) { // Requete et execution de la requete $requete = "SELECT * FROM typecours ORDER BY numtype"; //AJOUT DU ORDER BY $retour_recherche=mysql_query($requete); while($this_last=mysql_fetch_array($retour_recherche)) { $liste_type = $this_last['numtype']; $liste_id = $this_last['idcours']; $liste_niveau = $this_last['niveau']; $liste_libelle = $this_last['libelle']; $liste_description = $this_last['description']; ?> <option value="<?php echo "$liste_id";?>" <?php if($_GET['temp_id']==$liste_type){echo "selected";} ?>><?php echo "$liste_id ($liste_libelle)";?></option> <?php } } // Si erreur de connexion à la bdd else { ?> <SCRIPT LANGUAGE="JavaScript"> document.location.href="http://www.monsite.fr/backOffice/modif_typecours.php?message=errbdd" </SCRIPT> <?php } ?> </select> <?php } //PARTIE HTML PURE ?> <br/> <form action="modif_typecours.php" method="POST"> <div class="hr"></div> <table> <tr> <td width="200px">ID de cours :</td> <td><SELECT name="idcours"> <OPTION VALUE="<?php echo "$liste_id";?>"><?php echo "$liste_id";?></OPTION> <OPTION VALUE="cours">Cours</OPTION> <OPTION VALUE="stagj">Stage Journée</OPTION> <OPTION VALUE="stagw">Stage Week-End</OPTION> </SELECT> </td> </tr> <tr> <td width="200px">Niveau du cours :</td> <td><input name="niveau" type="text" class="champs" size="1" value="<?php echo "$liste_niveau";?>" /></td> </tr> <tr> <td width="200px">Libelle du cours :</td> <td><textarea name="libelle" type="text" cols="38" rows="" class="champs" value="<?php echo "$liste_libelle";?>"></textarea></td> </tr> <tr> <td width="200px">Description du cours :</td> <td><textarea name="description" type="text" cols="38" rows="" class="champs" value="<?php echo "$liste_description";?>"></textarea><br/><input name="numtype" type="text" value="<? echo "$liste_type";?>" class="champs" /></td> </tr> </table> <center> <input type="submit" name="supprimer" id="submit" value="Supprimer (DEFINITIF !)" class="bouton" /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="submit" name="modifier" id="submit" value="Enregistrer les modifications" class="bouton" /> </center> </form> <br/><a href="http://www.monsite.fr/backOffice/index.php">Retour à l'index du backOffice</a> </div> </div> <?PHP include('http://www.monsite.fr/menu_bas.php'); ?> </body> </html>