cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007
-
27 janv. 2005 à 17:50
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007
-
22 févr. 2005 à 14:20
J'ai repris mon message d'en haut en coupant la requête en plusieurs morceaux car le texte était vraiment illisibles.
ps:Les variables du style " horvend " ou " horlundi "sont destinées à récupérer les différents horaires des projections de films du cinéma et cela pour tous les jours de la semaine.
Bonjour!
J'essaie de me familiariser avec le php et mysql et pour cela, je suis en train de me faire en exemple, un petit site qui représente un cinéma où je pourrai sélectionner le nom du cinéma car il y en a 2, le n° de la salle de projection, le titre du film qui passe, le réalisateur, l'acteur principal et plein d'autres choses encore mais pour ce que j'ai à vous demander, cela pourra suffire je pense.
LE BUT est que la personne qui va se servir de ce site va pouvoir uniquement modifier tous les paramètres cités ci-dessus. Il n'est donc pas utile de faire des pages "ajouter" et "supprimer" dans l'admin. Seule une page "modifier" sera nécessaire.
Pour faire ce programme, je me suis servi d'une base très solide qui fonctionne bien car j'avais la chance d'avoir un copain qui s'y entendait et il m'avait fait un admin du même genre qui fonctionnait très bien! Je me suis donc basé sur ce qu'il avait fait!
Voici mon problème:
La page où se trouvent tous les sélecteurs de menus déroulants et les champs "text" servant à faire les modifications de film se trouvent tous dans la page "modfilm.inc.php".
Lorsque j'ai rempli tous les champs "text" et sélectionné les valeurs désirées dans les différents menus déroulants, je valide avec un bouton "Valider" et je me dirige vers une page "modfilm1.inc.php" où va être inclue la requête de modification vers la BDD.
Lorsque j'arrive sur la page pour faire mes modifications afin de changer les caractéristiques de mon film, les menus déroulants sont bien là avec toutes leurs valeurs dedans et les champs "text" ont encore les valeurs entrées lors de la dernière saisie. Je change les valeurs dans tout ce petit monde et le résultat est que seules les variables inscrites dans les champs "text" sont validées et changées. Les valeurs inscrites dans les menus déroulants ne passent pas du tout et restent sur leur valeur par défaut.
J'ai fait une base avec 6 tables:
"salle" avec le champs "numsalle"
Les menus déroulants font partis des 5 premières tables et ce sont ceux-là qui ne fonctionnent pas convenablement.
Quelqu'un pourrait-il m'aider à faire fonctionner ces menus déroulants pour qu'ils gardent en mémoire les valeurs que je leur donne lors des modifications de films?
Dans le code que je laisse sur mon message, il y a des variables que l'on trouve dans la requête et qui s'appellent par exemple $VSalle, $VTitre, $VJeudi ou encore $VMusique. Ce sont des variables qui sont déclarées dans la page "index.php" et elles sont destinées à récupérer la valeur qui se trouve dans les champs "text" ou "menus déroulants" à chaque fois qu'il y une valeur dedans. Ce procédé fonctionne bien sur l'autre programme.
Voici la page "modfilm.inc.php" où se trouvent tous les champs "text" et sélecteurs pour faire les modifications. Je la mets en entière.
Je mets ensuite la page "modfilm1.inc.php" où est mise la requête qui sert à faire les modifications dans la BDD après avoir validé le bouton "Valider" de "modfilm.inc.php"
Cinéma:,
<select name="SelectCine">
<?
// On récupère toute la table "film" afin de l'exploiter un peu plus loin.
$resultat=mysql_query("SELECT * FROM film");
$resfilm=mysql_fetch_array($resultat,MYSQL_ASSOC);
// On récupère en premier les valeurs écrites dans la table "cinema" pour les faire défiler dans le sélecteur.
$resultat=mysql_query("SELECT * FROM cinema");
WHILE ( $res=mysql_fetch_array($resultat,MYSQL_ASSOC)){
echo '<option>'.$res[nomcinema].'</option>';
}
?>
</select>,
Heures des séances,
----
N° de salle:,
<select name="SelectSalle">
<? $resultat=mysql_query("SELECT * FROM salle");
WHILE($res=mysql_fetch_array($resultat,MYSQL_ASSOC)){
echo '<option>'.$res[numsalle].'</option>';
}
?>
</select>,
----
Titre du film:,
<? echo '';?>,
Mercredi:,
<select name="SelectMerc">
<? $resultat=mysql_query("SELECT * FROM horaire");
WHILE($res=mysql_fetch_array($resultat,MYSQL_ASSOC)){
echo '<option>'.$res[nomhoraire].'</option>';
}
?>
</select>,
Modifiez les caractéristiques des films projetés cette semaine dans chaque salle
"modfilm1.inc.php"
<?
$VPhoto=basename($VPhoto);
//On remplace le caractère ASCII 10 (retour chariot) par la chaîne
.
$VResume=str_replace(chr(10),"
",$VResume);
// Supression de apostrophes dans le champs "résumé".
$VResume=str_replace("'","\'", $VResume);
$resultat=mysql_query("SELECT * FROM film");
$res=mysql_fetch_array($resultat,MYSQL_ASSOC);
$res=mysql_query("UPDATE film SET titre1='$VTitre',realisateur='$VRealisateur',acteur1='$VActeur1',acteur2='$VActeur2',
acteur3='$VActeur3',musique='$VMusique',version='$VVersion',genre='$VGenre',
photo1='$VPhoto',resume='$VResume',hormerc='$VMercredi',horjeudi='$VJeudi',
horvend='$VVendredi',horsam='$VSamedi',hordim='$VDimanche',horlundi='$VLundi',
hormardi='$VMardi',cinema='$VCinema',salle='VSalle'");
cs_eXon
Messages postés166Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention 8 avril 20071 27 janv. 2005 à 22:04
La couleur rouge est très agressante et dur pour les yeux. Tu veux
peut-être attirer l'attention du monde mais ce n'est pas nécéssaire
pour avoir de l'aide. Ton message est également très lourd et trop
spécifique. Trouve d'où vient ton problème et pose une question qui te
permeterra de comprendre comment résoudre ton problème.
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007 27 janv. 2005 à 22:54
ok, le rouge est aggressif, je vais donc changer de couleur et essayer de rendre ma question plus compréhensible.
Voici un concentré de la page "modfilm.inc.php" où il y a 3 variables différentes.
2 variables qui sont des champs "text" et qui s'appellent "TexteTitre" ( pour écrire le titre du film) et "TexteMusique" ( pour écrire le nom du compositeur). La 3ème variable est un menu déroulant qui s'appelle "SelectVersion" permettant de dire si c'est une version originale ou non.( donc menu déroulant avec "oui" et "non" dedans).
Code du sélecteur:
<td bgcolor= "#CCCCCC" align="center"><select name="SelectVersion">
<? $resultat=mysql_query("SELECT * FROM version");
WHILE($res=mysql_fetch_array($resultat,MYSQL_ASSOC)){
echo '<option>'.$res['nomversion'].'</option>';
}
?>
</select></td>
Voici un concentré de la page "modfilm1.inc.php" où se trouve ma requête.
<?
$resultat =mysql_query("SELECT * FROM film");
$res=mysql_fetch_array($resultat,MYSQL_ASSOC);
$res=mysql_query("UPDATE film SET titre1='$VTitre', musique='$VMusique', version='$VVersion'"); ?>
Tel que c'est là, les 2 champs de ma table " titre1 et musique " sont bien modifiés dans la base de données mais c'est le sélecteur qui ne fonctionne pas. Le champs "version" n'est pas modifié dans la table!
cs_eXon
Messages postés166Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention 8 avril 20071 27 janv. 2005 à 23:57
Tu dois rajouter qu'est-ce que chacun est égal (chaque option). Change ton echo '<option>'.$res['nomversion'].'</option>'; par echo '<option value="'.$res['nomversion'].'">'.$res['nomversion'].'</option>';
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007 28 janv. 2005 à 09:54
Affiche ta variable $VVersion. Est-ce qu'elle contient bien ce que tu as sélectionné?
- Comment fait-on pour afficher la variable $VVersion? Je ne suis pas très expérimenté en php. je voulais justement faire ce petit site pour moi pour me faire un peu à tout cela.
- Le formulaire est bien valide! La structure de ce code fonctionne très bien dans un autre programme! Le seul et unique formulaire se trouve dans la page "index.php" et toutes les autres pages sont des pages "include" comme celle dont je parle qui s'appelle "modfilm.inc.php".. Elles vont toutes s'imbriquer dans "index.php" et se servent donc du formulaire qu'il y a dedans.
Le truc est que je n'arrive pas à "Update" les valeurs qu'il y a dans les sélecteurs. Je ne suis pas très fort en php et pour faire çà, je me calque sur ce que mon ex-copain m'avait fait dans l'autre programme et qui fonctionnait très bien!
Mais si quelqu'un veut voir çà de plus près, je peux lui envoyer les 3 pages de code que j'ai faites pour l'instant dans dreamweaver et la base mysql que j'ai faite, c'est tout à fait possible par mail.
Pour l'instant tout fonctionne, sauf ce problème sur les sélecteurs.
J'ai fait une base avec 6 tables: "salle" avec le champs "numsalle"
Les menus déroulants font partis des 5 premières tables et ce sont ceux-là qui ne fonctionnent pas convenablement. Alors peut-être qu'il y a un "WHERE" à introduire dans la requête?
mixo11
Messages postés20Date d'inscriptionsamedi 20 novembre 2004StatutMembreDernière intervention28 janvier 2005 28 janv. 2005 à 11:10
echo $VVERSION;
suite à mon message dans un topic précédent (j'avais pas vu que tu avais reposté un autre) ca vient du probleme de value c sur, si tu arrives pas a update c qu'il trouve pas ta bonne value sélected au pire on fera un javascript 5/5 mais il faut que tu dises si avec cette nouvelle version tu peux voir la value sélectionné dans la variable.
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007 28 janv. 2005 à 14:47
Mais comment fait-on pour voir la value sélectionnée dans la variable comme tu le dis? Excuse-moi mais je n'ai pas l'habitude de faire çà!
Et de quelle nouvelle version parle-tu? Du code que tu as mis dans l'autre topic?
Je vais mettre le code mon pote qui fonctionne bien et sur lequel je me suis basé pour faire le mien. Peut-être que vous pouvez avoir une idée en le voyant. Il y a quelques trucs qui diffèrent du mien mais je ne pense pas que çà peut interférer! Va savoir....
Voici le code de mon pote qui fonctionne et sur lequel je me suis basé.
C'est un script qui traite d'un garage de voitures avec entr'autres, une table "energie" composée d'un seul champs "nomenergie" afin de pouvoir sélectionner dans un menu déroulant, le type de carburant soit: "diesel, essence ou gpl".
Voici maintenant sa requête.
"marque" est une autre table composée d'un champs "nommarque" afin de récupérer la marque des différentes voitures inclues dans la BDD.
On voit bien que dans l'UPDATE, il y a la table "vehicule" avec tous les champs de cette table qui vont être modifiés.
Les champs "type", "energie" et "annee" sont des sélecteurs avec menu déroulant. Les autres sont des "text". Ce programme fonctionne très bien mais même en adaptant le code de son sélecteur au sélecteur de mon programme, le mien ne fonctionne pas. Par contre les champs "text" marchent très bien chez moi.
<?
$resultat = mysql_query("SELECT * FROM marque WHERE nommarque='$VMarque'");
$res = mysql_fetch_array($resultat,MYSQL_ASSOC);
$VRecup=$res['id'];
$res=mysql_query("UPDATE vehicule SET modele='$VModele',type='$VType',energie='$VEnergie',annee='$VAnnee',km='$VKm',prix='$VPrix',idmarque='$VRecup',photo='$VPhoto',particularite='$VParticul' WHERE id ='$VId'");
if(!$res){
$message="Impossible d'effectuer votre demande";
}
else{
$message="Le véhicule selectionnée a bien été remplacé dans votre base de données";
}
include("message.inc.php");
?>
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007 28 janv. 2005 à 15:17
Pour répondre à Davwart:
Je pense que c'est comme çà qu'il faut écrire echo $VVersion sous la requête dans "modfilm1.inc.php":
Excuse-moi mais je n'ai pas l'habitude de ce genre de manipulation!
Voilà ce que j'ai écrit
$res=mysql_query("UPDATE film SET titre1='$VTitre', musique='$VMusique', version='$VVersion'");
echo $VVersion;
J'ai validé et quand je suis allé dans l'admin pour faire une simulation, dans le sélecteur "Version" j'ai uniquement le choix entre "oui" par défaut et "non". J'ai choisi "non" et j'ai validé par le bouton de validation du formulaire.
En haut à gauche de l'écran et tout à fait hors programme, il y avait bien d'écrit ".non".
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007 28 janv. 2005 à 15:23
Je viens de faire pareil avec la variable $VCinema. Ce sélecteur me donne le choix entre 2 cinémas "Mejan ou Fémina". J'ai choisi "Fémina" et après avoir validé, il y avait bien le nom "fémina" en haut à gauche de l'écran.
$res=mysql_query("UPDATE film SET titre1='$VTitre', musique='$VMusique', version='$VVersion', cinema='$VCinema'");
echo $VVersion;
echo $VCinema;
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007 29 janv. 2005 à 12:05
J'ai un nouvel élément pour mon problème. Lorsque je modifie un film dans "modfilm.inc.php" et que je change mes champs et mes sélecteurs avec de nouvelles données, je valide avec le bouton "submit".
La nouveauté est que lorsque cette opération terminée, je fonce ouvrir ma BDD dans Mysql et là je remarque que toutes les nouvelles données ont bien remplacé les anciennes! Ca veut dire que mes sélecteurs et que ma requête fonctionnent.
C'est lorsque je reviens dans mon admin pour y modifier à nouveau un film avec d'autres données, que je m'aperçois que les données de mes sélecteurs sont celles écrites dans les sélecteurs par défaut et non pas celles que je viens d'insérer dans la BDD. Par contre, les champs "text", eux, ont bien validé les données insérées lors de la dernière modification.
Ce ne serait pas une histoire de session?
billekid
Messages postés3Date d'inscriptionsamedi 8 mai 2004StatutMembreDernière intervention17 février 2005 17 févr. 2005 à 15:18
c'est
sur, à force, les gens, ils sont gentils, mais ils ne veulent pas
répondre, il faut faire un effort de compréhension, tout n'arrive pas
tout seul.
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007 17 févr. 2005 à 19:19
J'envoie 20 euros en liquide à celui qui me dépannera sur mon cinéma en lui envoyant par mail les 3 pages php que j'ai déjà faites et la petite bdd du cinéma.
Pour les conneries dans les messages, s'abstenir s.v.p.
cs_jaco13
Messages postés110Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention22 octobre 2007 20 févr. 2005 à 20:37
Non! Ca ne vaut pas 20 euros pour celui qui me débloque la situation mais 50 euros en liquide une fois que le problème est résolu.
Je lui envoie les 5 pages de mon admin et ma petite base de données avec toutes les explications.
Si quelqu'un est intéressé, qu'il me contacte sur mon mail personnel:
[mailto:jaco132@club-internet.fr jaco132@club-internet.fr]
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 20 févr. 2005 à 20:43
Lol ^^
Je veux bien tenter pour 100 euros (non je déconne lol)
Si tu expliquais mieux ton problème on pourrait sans doute mieux
t'aider, écris lisiblement, poste-nous du code PHP, parce que là y'a un
roman écrit en rouge, c'est vraiment impossible à lire...