Je travaille toujours sur mon essai de création de formulaire pour envoyer et modifier des informations sur des célébrités sur une base de données.
En version simple, c'est à dire avec seulement 4 informations ça fonctionnait et ça c'est grace à vous.
Du coup j'ai fait l'étape suivante c'est à dire ajouter tous les éléments de la table et c'est là que ça va plus...
Je replis mon formulaire et ça fait rien du tout. Pas d'erreurs et sourtout ça n'envoi rien dans la base.
Bon j'ai cherché, fait des corrections, j'ai pointé tous les éléments sur papier pour voir si j'avais des erreurs dans les noms mais j'ai rien vu.
J'ai pensé à la connexion à la base et là aussi ça semble bon.
Du coup je sais pas ce que ça pourrait être alors je fais appel à vous pour avoir des pistes de recherches.
Je ne cherche pas la réponse mais surtout des conseilles pour trouver mes erreurs.
Voila ma table:
-- phpMyAdmin SQL Dump
-- version 4.5.2
-- http://www.phpmyadmin.net
--
-- Client : 127.0.0.1
-- Généré le : Jeu 18 Août 2016 à 18:42
-- Version du serveur : 5.7.9
-- Version de PHP : 5.6.16
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de données : `test`
--
-- --------------------------------------------------------
--
-- Structure de la table `personnalite`
--
DROP TABLE IF EXISTS `personnalite`;
CREATE TABLE IF NOT EXISTS `personnalite` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`prenom` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`prenom2` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`surnom` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`Vprenom1` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`Vprenom2` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`Vnom` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`naissance` date DEFAULT NULL,
`mort` date DEFAULT NULL,
`photo` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`PersonnaliteLien` varchar(300) CHARACTER SET utf8 DEFAULT NULL,
`PersonnaliteAvatar` varchar(300) CHARACTER SET utf8 DEFAULT NULL,
`sexe_id` int(11) DEFAULT NULL,
`ville_id` int(11) DEFAULT NULL,
`pays_id` int(11) DEFAULT NULL,
`nationalite_idnationalite` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_personnalite_sexe1_idx` (`sexe_id`),
KEY `fk_personnalite_ville1_idx` (`ville_id`),
KEY `fk_personnalite_pays1_idx` (`pays_id`),
KEY `fk_personnalite_nationalite1_idx` (`nationalite_idnationalite`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs;
--
-- Contraintes pour les tables exportées
--
--
-- Contraintes pour la table `personnalite`
--
ALTER TABLE `personnalite`
ADD CONSTRAINT `fk_personnalite_nationalite1` FOREIGN KEY (`nationalite_idnationalite`) REFERENCES `nationalite` (`idnationalite`) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD CONSTRAINT `fk_personnalite_pays1` FOREIGN KEY (`pays_id`) REFERENCES `pays` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD CONSTRAINT `fk_personnalite_sexe1` FOREIGN KEY (`sexe_id`) REFERENCES `sexe` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD CONSTRAINT `fk_personnalite_ville1` FOREIGN KEY (`ville_id`) REFERENCES `ville` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Les fichiers pour ajouter, modifier mes enregistrements:index.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Index</title>
</head>
<body>
<form action="personnalite.php" method="post">
<p>
<label for="nom">Nom</label> : <input type="text" name="nom" id="nom" /><br />
<label for="prenom">Prénom</label> : <input type="text" name="prenom" id="prenom"/><br />
<label for="prenom2">Prénom 2</label> : <input type="text" name="prenom2" id="prenom2"/><br />
<label for="surnom">Surnom</label> : <input type="text" name="surnom" id="surnom"/><br />
<label for="Vprenom1">Vraie prénom 1</label> : <input type="text" name="Vprenom1" id="Vprenom1"/><br />
<label for="Vprenom2">Vraie prénom 2</label> : <input type="text" name="Vprenom2" id="Vprenom2"/><br />
<label for="Vnom">Vraie nom</label> : <input type="text" name="Vnom" id="Vnom"/><br />
<label for="naissance">Date de naissance</label> : <input type="text" name="naissance" id="naissance"/><br />
<label for="mort">Date de décès</label> : <input type="text" name="mort" id="mort"/><br />
<label for="photo">Lien photo</label> : <input type="text" name="photo" id="photo"/><br />
<label for="PersonnaliteLien">Lien sujet</label> : <input type="text" name="PersonnaliteLien" id="PersonnaliteLien"/><br />
<label for="PersonnaliteAvatar">Avatar</label> : <input type="text" name="PersonnaliteAvatar" id="PersonnaliteAvatar"/><br />
<input type="submit" value="Envoyer" />
</p>
</form>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$bdd -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Requête pour affichage
$reponse = $bdd->query('SELECT nom, prenom, prenom2, surnom, Vprenom1, Vprenom2, Vnom, DATE_FORMAT(naissance, "%d/%m/%Y") AS naissance, DATE_FORMAT(mort, "%d/%m/%Y") AS mort, photo, PersonnaliteLien, PersonnaliteAvatar
FROM personnalite
ORDER BY ID DESC LIMIT 0, 1');
// Afficher le dernier enregistrement
while ($donnees = $reponse->fetch())
{
echo '<p>' . htmlspecialchars($donnees['nom']) .
' ' . htmlspecialchars($donnees['prenom']) .
' ' . htmlspecialchars($donnees['prenom2']) .
' ' . htmlspecialchars($donnees['surnom']) .
'</br>' . htmlspecialchars($donnees['Vprenom1']) .
' ' . htmlspecialchars($donnees['Vprenom2']) .
' ' . htmlspecialchars($donnees['Vnom']) .
'</br> né(e) le ' . htmlspecialchars($donnees['naissance']) .
'</br> décédé(e) le ' . htmlspecialchars($donnees['mort']) .
"<img src=\"" . htmlspecialchars($donnees['photo']) . "\" />" .
'</br> Sujet : <a href=" ' . htmlspecialchars($donnees['PersonnaliteLien']) .' " target="new" >'. htmlspecialchars ($donnees['prenom']). ' ' . htmlspecialchars($donnees['nom']) .'</a>' .
'</br>Avatars : <a href=" ' . htmlspecialchars($donnees['PersonnaliteAvatar']) .' "target="new">'. htmlspecialchars ($donnees['prenom']). ' ' . htmlspecialchars($donnees['nom']) .'</a>' .
'</p>';
}
$reponse->closeCursor();
?>
</br></br>
Liste des enregistrements : </br></br>
<?php
// Modifier un enregistrement
{
$reponse = $bdd->query('SELECT nom, prenom, prenom2, surnom, Vprenom1, Vprenom2, Vnom, DATE_FORMAT(naissance, "%d/%m/%Y") AS naissance, DATE_FORMAT(mort, "%d/%m/%Y") AS mort, photo, PersonnaliteLien, PersonnaliteAvatar, id
FROM personnalite
ORDER BY nom');
while ($donnees = $reponse->fetch())
{
?>
<p>
<?php echo
$donnees['nom'] .
' ' . $donnees['prenom'].
' ' . $donnees['naissance']; ?> <a href="modifier.php?number=<?php echo $donnees['id']; ?>">modifier la fiche</a>
<?php
}
$reponse->closeCursor();
}
?>
</br>
</body>
</html>
personnalite.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('
INSERT INTO personnalite (
nom,
prenom,
prenom2,
surnom,
Vprenom1,
Vprenom2,
Vnom,
naissance,
mort,
photo,
PersonnaliteLien,
PersonnaliteAvatar)
VALUES(?, ?, ?, ?, ?, ?, ?, str_to_date(?, "%d/%m/%Y"), str_to_date(?, "%d/%m/%Y"), ?, ?, ?)');
$req->execute(array(
$_POST['nom'],
$_POST['prenom'],
$_POST['prenom2'],
$_POST['surnom'] ,
$_POST['Vprenom1'],
$_POST['Vprenom2'],
$_POST['Vnom'],
$_POST['naissance'],
$_POST['mort'],
$_POST['photo'],
$_POST['PersonnaliteLien'],
$_POST['PersonnaliteAvatar']));
// Redirection du visiteur vers la page du minichat
header('Location: index.php');
?>
</body>
</html>
modifier.php
<?php
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
/* On récupère les donnée de l'article séléctioné*/
$reponse = $bdd->prepare('
SELECT
nom,
prenom,
prenom2,
surnom,
Vprenom1,
Vprenom2,
Vnom,
DATE_FORMAT(naissance, "%d/%m/%Y") AS naissance,
DATE_FORMAT(mort, "%d/%m/%Y") AS mort,
photo,
PersonnaliteLien,
PersonnaliteAvatar,
id
FROM personnalite
WHERE id = ?');
$reponse->execute(array($_GET['number']));
while ($donnees = $reponse->fetch())
{
?>
<!--Formulaire avec les champs préremplis-->
<p>
<form action="modifier_post.php" method="post" id="modif_personnalite">
<label for="id">id </label><input type="text" name="id" value="<?php echo $donnees['id'];?>" tabindex="20"/><br/>
<label for="nom">Nom </label><input type="text" name="nom" value="<?php echo $donnees['nom'];?>" tabindex="20"/><br/>
<label for="prenom">Prénom </label><input type="text" name="prenom" value="<?php echo $donnees['prenom'];?>" tabindex="20"/><br/>
<label for="prenom2">Prénom 2 </label><input type="text" name="prenom2" value="<?php echo $donnees['prenom2'];?>" tabindex="20"/><br/>
<label for="surnom">Surnom </label><input type="text" name="surnom" value="<?php echo $donnees['surnom'];?>" tabindex="20"/><br/>
<label for="Vprenom1">Vraie prénom 1 </label><input type="text" name="Vprenom1" value="<?php echo $donnees['Vprenom1'];?>" tabindex="20"/><br/>
<label for="Vprenom2">Vraie prénom 2 </label><input type="text" name="Vprenom2" value="<?php echo $donnees['Vprenom2'];?>" tabindex="20"/><br/>
<label for="Vnom">Vraie nom </label><input type="text" name="Vnom" value="<?php echo $donnees['Vnom'];?>" tabindex="20"/><br/>
<label for="naissance">Date de naissance </label><input type="text" name="naissance" value="<?php echo $donnees['naissance'];?>"tabindex="20"/><br/>
<label for="mort">Date de décès </label><input type="text" name="mort" value="<?php echo $donnees['mort'];?>"tabindex="20"/><br/>
<label for="photo">Photo </label><input type="text" name="photo" value="<?php echo $donnees['photo'];?>" tabindex="150"/><br/>
<label for="PersonnaliteLien">Lien sujet personnalité </label><input type="text" name="PersonnaliteLien" value="<?php echo $donnees['PersonnaliteLien'];?>" tabindex="150"/><br/>
<label for="PersonnaliteAvatar">Avatar personnalité </label><input type="text" name="PersonnaliteAvatar" value="<?php echo $donnees['PersonnaliteAvatar'];?>" tabindex="150"/><br/>
<br />
<input type="submit" value="Envoyer" />
<?php
}
// Fin de la boucle pour l'affichage des donnée dans la base de donnée
$reponse->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
</form>
</p>
modifier_post.php
<?php
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$reponse = $bdd->prepare(
'UPDATE personnalite
SET
nom = :n_nom,
prenom = :n_prenom,
prenom2 = :n_prenom2,
surnom = :n_surnom,
Vprenom1 = :n_Vprenom1,
Vprenom2 = :n_Vprenom2,
Vnom = :n_Vnom,
naissance = STR_TO_DATE(:n_naissance, "%d/%m/%Y"),
mort = STR_TO_DATE(:n_mort, "%d/%m/%Y"),
photo = :n_photo,
PersonnaliteLien = :n_PersonnaliteLien,
PersonnaliteAvatar = :n_PersonnaliteAvatar
WHERE id = :id ');
$reponse->execute(array(
'n_nom' => $_POST['nom'],
'n_prenom' => $_POST['prenom'],
'n_prenom2' => $_POST['prenom2'],
'n_surnom' => $_POST['surnom'],
'n_Vprenom1' => $_POST['Vprenom1'],
'n_Vprenom2' => $_POST['Vprenom2'],
'n_Vnom' => $_POST['Vnom'],
'n_naissance' => $_POST['naissance'],
'n_mort' => $_POST['mort'],
'n_photo' => $_POST['photo'],
'n_PersonnaliteLien' => $_POST['PersonnaliteLien'],
'n_PersonnaliteAvatar' => $_POST['PersonnaliteAvatar'],
'id' => $_POST['id'],
));
}
catch(Exception $e)
{
die('Erreur:'.$e->getMessage());
}
$reponse->closeCursor();
// Redirection du visiteur vers la page du minichat
header('Location: index.php');
?>
Je suis quasiment certaine que c'est une broutille mais je ne la vois pas...Merci à vous.