CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Pb dans source PHP

Yoda_Software
Yoda_Software
Niveau 30
03 février 2004 à 16:07:20

Je viens d´acheter le livre " Pratique de MySQL et PHP" édité par O´Reilly que certain d´entre vous connaissent peut-être.
Je ne suis pas novice en programmation puisque c´est mon métier depuis 10 ans, mais je le suis en ce qui concerne le développement web.
Je viens de m´attaquer à la mise à jour d´une base par formulaire et j´ai un bug alors que j´utilise le source donné par le bouquin.

Description :
Le 1er fichier PHP affiche une table où pour chaque enregistrement on a une ancre " modifier" pour, comme son nom l´indique, modifier l´enregistrement. En base de page on a une dernière ancre " ajouter", pour ajouter un enregistrement à la table.
L´ajout et la modification d´enregistrement utilise le même formulaire mais avec différents paramètres. La modification fonctionne mais l´ajout bug.

Je vous donne ci dessous le code :

//------------------------------------------------
------------------------------
( FilmSimple.sql)

  1. Création d´une table ´FilmSimple´

USE Films;

CREATE TABLE FilmSimple
( Titre VARCHAR ( 30),
Annee INTEGER,
NomMES VARCHAR ( 30),
PrenomMES VARCHAR ( 30),
AnneeNaiss INTEGER
)
;

//------------------------------------------------
------------------------------
( FilmSimple.php)
< HTML>

< HEAD>
< TITLE>Opérations sur la table FilmSimple</TITLE>
< LINK REL=stylesheet HREF=´films.css´ TYPE=´text/css´>
< /HEAD>

< BODY>

< H1>Opérations sur la table < I>FilmSimple</I></H1>

< ?php

require_once ( "Fonctions/UtilFilmSimple.php");

$connexion = Connexion ( NOM, PASSE, BASE, SERVEUR);

/ / Si la variable ´action´ existe, des données ont été saisies dans le formulaire: on déclenche
/ / une insertion ou modification dans la base selon le mode passé dans le tableau _POST

if ( isSet($_POST[´action´]))
{

/ / Contrôle des données
if ( ControleFilm ( $_POST))
MAJFilmSimple($_POST[´mode´], $_POST, $connexion);

/ / Erreur rencontrée : sortie prématurée du script
else
{
echo " </BODY></HTML>";
exit;
}
}

/ / Affichage selon le mode passé dans le tableau _GET

if ( !isSet($_GET[´mode´]))
{
/ / Pas de mode défini : on affiche le tableau des films
TableauFilms ( $connexion);

/ / On place une ancre pour ajouter un film

echo " <A HREF=´FilmSimple.php?mode=" . MODE_INSERTION
. " ´>Ajouter un film</A>\n";
}

elseif ( $_GET[´mode´] == MODE_INSERTION)
{
/ / Affichage du formulaire, sans valeurs par défaut
FormFilmSimple ( MODE_INSERTION, array());
}

/ / On est en mode modification: on recherche les valeurs courantes pour s´en servir par défaut

else
{
$requete = " SELECT * FROM FilmSimple WHERE Titre=´{$_GET[´titre´]}´ " ;
$resultat = ExecRequete ( $requete, $connexion);
$film = LigneSuivante ( $resultat);
FormFilmSimple ( MODE_MAJ, $film);
}

? >

< /BODY>

< /HTML>

//------------------------------------------------
------------------------------
( FormFilmSimple.php)
< ?php

/ / Formulaire de saisie, avec valeurs par défaut

function FormFilmSimple ( $mode, $valDefaut)
{
? >
< !-- On est en HTML -->
< TABLE>

< FORM ACTION=´FilmSimple.php´ METHOD=´POST´><P>

< INPUT TYPE=HIDDEN NAME="action" VALUE="FormFilmSimple">
< INPUT TYPE=HIDDEN NAME="mode" VALUE="<?= $mode ? >">

< ?php if ( $mode == MODE_INSERTION) { ? >
< TR><TD>Titre : < TD><INPUT TYPE=TEXT SIZE=20 NAME="Titre" VALUE="<?= $valDefaut[´Titre´]?>">
< ?php } else { ? >
< TR><TD>Mise à jour de < TD><?= $valDefaut[´Titre´]?><INPUT TYPE=HIDDEN NAME="Titre" VALUE="<?= $valDefaut[´Titre´]?>">
< ?php } ? >

< TR><TD>Année : < TD><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=4 NAME="Annee" VALUE="<?= $valDefaut[´Annee´]?>">

< TR><TD>Metteur en scène ( prénom - nom) :
< TD><INPUT TYPE=TEXT SIZE=20 NAME="PrenomMES" VALUE="<?= $valDefaut[´PrenomMES´]?>"><BR>
< INPUT TYPE=TEXT SIZE=20 NAME="NomMES" VALUE="<?= $valDefaut[´NomMES´]?>">

< TR><TD>Année de naissance : < TD><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=4 NAME="AnneeNaiss" VALUE="<?= $valDefaut[´AnneeNaiss´]?>">

< TR><TD COLSPAN=2><INPUT TYPE=SUBMIT VALUE=´Exécuter´>

< /FORM>

< /TABLE>

< ?php

}

? >

Et voici le code html de la page résultat

//------------------------------------------------
------------------------------
< HTML>

< HEAD>
< TITLE>Opérations sur la table FilmSimple</TITLE>
< LINK REL=stylesheet HREF=´films.css´ TYPE=´text/css´>
< /HEAD>

< BODY>

< H1>Opérations sur la table < I>FilmSimple</I></H1>

< !-- On est en HTML -->
< TABLE>

< FORM ACTION=´FilmSimple.php´ METHOD=´POST´><P>

< INPUT TYPE=HIDDEN NAME="action" VALUE="FormFilmSimple">
< INPUT TYPE=HIDDEN NAME="mode" VALUE="insertion">

< TR><TD>Titre : < TD><INPUT TYPE=TEXT SIZE=20 NAME="Titre" VALUE="<br / >
< b>Notice</b>: Undefined index: Titre in < b>c:\program files\easy php - v1.7\www\pratique_de_ mysql_et_php\ma_
base_de_données_films\Fonctions\FormFilmSimple.php
</b> on line < b>17</b><br / >
" >

< TR><TD>Année : < TD><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=4 NAME="Annee" VALUE="<br / >
< b>Notice</b>: Undefined index: Annee in < b>c:\program files\easy php - v1.7\www\pratique_de_ mysql_et_php\ma_
base_de_données_films\Fonctions\FormFilmSimple.php
</b> on line < b>22</b><br / >
" >

< TR><TD>Metteur en scène ( prénom - nom) :
< TD><INPUT TYPE=TEXT SIZE=20 NAME="PrenomMES" VALUE="<br / >
< b>Notice</b>: Undefined index: PrenomMES in < b>c:\program files\easy php - v1.7\www\pratique_de_ mysql_et_php\ma_
base_de_données_films\Fonctions\FormFilmSimple.php
</b> on line < b>25</b><br / >
" ><BR>
< INPUT TYPE=TEXT SIZE=20 NAME="NomMES" VALUE="<br / >
< b>Notice</b>: Undefined index: NomMES in < b>c:\program files\easy php - v1.7\www\pratique_de_ mysql_et_php\ma_
base_de_données_films\Fonctions\FormFilmSimple.php
</b> on line < b>26</b><br / >
" >

< TR><TD>Année de naissance : < TD><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=4 NAME="AnneeNaiss" VALUE="<br / >
< b>Notice</b>: Undefined index: AnneeNaiss in < b>c:\program files\easy php - v1.7\www\pratique_de_ mysql_et_php\ma_
base_de_données_films\Fonctions\FormFilmSimple.php
</b> on line < b>28</b><br / >
" >

< TR><TD COLSPAN=2><INPUT TYPE=SUBMIT VALUE=´Exécuter´>

< /FORM>

< /TABLE>

< /BODY>

< /HTML>

L´un d´entre vous peut-il m´aider ? Ca fait déjà 3 jours que je tourne et retourne le problême sans résultat.

Yoda_Software
Yoda_Software
Niveau 30
03 février 2004 à 16:14:30

Pour plus de clarté, je peux donner les sources sous forme de ZIP.

Altonfrere
Altonfrere
Niveau 10
03 février 2004 à 16:34:08

es tu sur d´avoir bien créé tes tables SQL avant d´exécuter l´ajout ? ?

Yoda_Software
Yoda_Software
Niveau 30
03 février 2004 à 16:41:25

Oui, oui !

La table Film Simple contient ceci :

Alien 1979 Scott Ridley 1943
Vertigo 1958 Hitchcock Alfred 1899
Psychose 1960 Hitchcock Alfred 1899
Kagemusha 1980 Kurosawa Akira 1910
Volte-face 1997 Woo John 1946
Titanic 1997 Cameron James 1954
Sacrifice 1986 Tarkovski Andrei 1932

Sur la 1ère page il m´affiche bien la table, lorsque je clique sur modifier, il m´affiche bien le formulaire avec les données, mais c´est à l´ajout d´un nouveau film que ça bug.
Je pense que ça vient de l´utilisation de array() dans le fichier FilmSimple.php à la ligne 52.

Yoda_Software
Yoda_Software
Niveau 30
03 février 2004 à 16:42:54

Pardon, j´ai mis Film Simple mais il n´y a pas d´espace. C´est une faute de frappe. Il fallait lire FilmSimple.

buz-l-orage
buz-l-orage
Niveau 10
03 février 2004 à 20:02:11

je peux avoir les sources stp, je te garanti rien mais je veux juste essayer ^_^
( avec les données de la table si possible, la flemme de faire 5 ou 6requettes lol)

Yoda_Software
Yoda_Software
Niveau 30
03 février 2004 à 20:19:35

C´est parti ! :ok:

Yoda_Software
Yoda_Software
Niveau 30
03 février 2004 à 20:21:29

J´oubliais !
Les paramètres de connexion sont dans config/connect.php

buz-l-orage
buz-l-orage
Niveau 10
03 février 2004 à 21:08:23

repondu :)

Pryrates
Pryrates
Niveau 5
07 février 2004 à 18:01:27

au fait quelle est l´erreur ressortie par l´interpreteur PHP lors de l´ajout?

Yoda_Software
Yoda_Software
Niveau 30
07 février 2004 à 18:08:21

Le problême a été résolu, merci !
Celui-ci en tout cas, car je bloque sur un autre.
Vas jeter un oeil dans ce topic
(http://www.jeuxvideo.com/cgi-bin/jvforums/forums.<BR>cgi?mode=1&Numero=7643805&NumForum=30&RR=&TR=1&Num<BR>_page=1&debut_ndx=26 ), mon problême n´était pas le sujet du topic, mais c´était pour le résoudre.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment