Bonjour à tous ! 8)
Vu que je suis nouveau sur le forum, je me présente : je suis étudiant. Cela fait maintenant un an que je programme en html mais je débute seulement avec les Base de données MySql. Pour l'instant, je n'ai fait qu'insérer et supprimer des enregistrements d'une table avec un petit programme php "self-made".
En plus d'ajouter des enregistrements à partir d'un formulaire et de les supprimer, je voudrais pouvoir les modifier en récupérant les valeurs depuis la base de données et les réinsérer dans un formulaire. Là, je les modifierai et je validerai les modifications pour mettre la base de données à jour.
Pour en venir au problème lui même, j'ai déjà réalisé le formulaire qui récupère les données prête à être modifiées, mais si jamais le contenu à insérer dans l'un des champs contient un espace, le remplissage des champs s'arrète et j'ai une erreur :
Notice: Undefined index: auteur in c:\program files\easyphp1-7\www\206sql\sql_accueil_gestion.php on line 132
Voilà, vous savez tout. Je vous donne mon script qui permet d'effectuer toutes les opérations que j'ai décrites. Si vous souhaitez avoir d'autres informations (nom de ma base de données, fichier.txt pour créer la table, etc.) je reste à votre disposition.
Cordialement,
PatX :)
<?
// Parametres de connexion à la base de données
include 'conf/sql_acces.php';
?>
<?
// calcul de la date
$date = date('d-m-Y');
$_REQUEST['date']=$date;
?>
<?
// -----------------------------------------
// Gestion de l'ajout d'un message d'accueil
// -----------------------------------------
if ($_REQUEST["action"]=="Ajouter")
{
print "
<HR width=60%>
<form action=sql_accueil_gestion.php method=post name=accueil_ajouter>
<table align=center>
<tr>
<td colspan=2>
<div class=storytitle align=center>Ajouter un message :</div>
<BR>
</td>
</tr>
<tr>
<td>Titre</td>
<td><input type=text name=titre size=30 maxlength=100></td>
</tr>
<tr>
<td>Contenu</td>
<td><textarea name=contenu rows=8 cols=50></textarea></td>
</tr>
<tr>
<td>Auteur</td>
<td><input type=text name=auteur size=30 maxlength=100></td>
</tr>
<tr>
<td>Date</td>
<td><input type=text name=date size=10 maxlength=10 value=" . $date . "></td>
</tr>
<tr>
<td colspan=2><input type=submit name=action value=Enregistrer></td>
</tr>
</table>
</form>";}
// --------------
// Enregistrement
// --------------
if ($_REQUEST["action"]=="Enregistrer")
{
$titre = isset($_POST['titre']) ? (get_magic_quotes_gpc() ? stripslashes($_POST['titre']) : $_POST['titre']): '';
$contenu = isset($_POST['contenu']) ? (get_magic_quotes_gpc() ? stripslashes($_POST['contenu']) : $_POST['contenu']): '';
$auteur = isset($_POST['auteur']) ? (get_magic_quotes_gpc() ? stripslashes($_POST['auteur']) : $_POST['auteur']): '';
// préparation de la requête
//mysql_query("insert into ... set champ=\"".mysql_real_escape_string($champ)."\");
$requete = "INSERT INTO accueil (titre, contenu, auteur, date) ";
$requete .= "VALUES (
'" . mysql_real_escape_string($_REQUEST["titre"]) . "',
'" . mysql_real_escape_string($_REQUEST["contenu"]) . "',
'" . mysql_real_escape_string($_REQUEST["auteur"]) . "',
'" . mysql_real_escape_string($_REQUEST["date"]) . "');";
$resulat = mysql_query($requete, $cnx);
}
// -----------------------------------
// Suppression d'un message
// -----------------------------------
// Doit on supprimer un message ?
if ($_REQUEST["action"]=="Supprimer")
{
// préparation de la requête
$requete = "delete from accueil WHERE id_accueil=".$_REQUEST['id'];
$resulat = mysql_query($requete, $cnx);
}
// -----------------------------------
// Modification d'un message
// -----------------------------------
// Doit on modifier un message ?
if ($_REQUEST["action"]=="Modifier")
{
// préparation de la requête (Suppression + Ajout)
$requete = "delete from accueil WHERE id_accueil=" . $_REQUEST['ancien_message'];
$resulat = mysql_query($requete, $cnx);
{
print ("
<HR width=60%>
<form action=sql_accueil_gestion.php method=post name=accueil_ajouter>
<table align=center>
<tr>
<td colspan=2>
<div class=storytitle align=center>Modifier un message :</div>
<BR>
</td>
</tr>
<tr>
<td>Titre</td>
<td><input type=text name=titre size=30 maxlength=100 value=" . $_REQUEST["titre"] . "></td>
</tr>
<tr>
<td valign=top>Contenu</td>
<td><textarea name=contenu rows=8 cols=50>" . $_REQUEST["contenu"] . "</textarea></td>
</tr>
<tr>
<td>Auteur</td>
<td><input type=text name=auteur size=30 maxlength=100 value=" . $_REQUEST["auteur"] . "></td>
</tr>
<tr>
<td>Date</td>
<td><input type=text name=date size=10 maxlength=10 value=" . $_REQUEST["date"] . "></td>
</tr>
<tr>
<td colspan=2><input type=submit name=action value=Enregistrer>
<font class=storytitle> A enregistrer même sans modification (le message a été supprimé)</font></td>
</tr>
</table>
</form>
");}
}
// Interroger la base de données
$requete = "SELECT * FROM accueil ;";
$resultat = mysql_query ($requete,$cnx) ;
print ("<HR width=60%> <div class=storytitle align=center>Liste des message enregistrés :</div> <BR>");
print ("<table width=50% border=1 align=center>");
print ("<tr bgcolor=#333333>
<td><B><font color=#FFFFFF>Id_accueil</font></td>
<td><B><font color=#FFFFFF>Titre</font></td>
<td><B><font color=#FFFFFF>Auteur</font></td>
<td><B><font color=#FFFFFF>Date</font></td>
<td> </td>
<td> </td>
</tr>");
//fonction qui alterne les couleurs
function Couleur(){
static $valcoul;
if ($valcoul == "#CCCCCC")
$valcoul = "#FFFFFF";
else $valcoul = "#CCCCCC";
return $valcoul;
}
//affiche les informations
while ($ligne = mysql_fetch_array ($resultat))
{
print("<tr bgcolor=". Couleur() . " >") ;
print ("<td>" . $ligne ["id_accueil"] . "</td>") ;
print ("<td>" . $ligne ["titre"] . "</td>") ;
print ("<td>" . $ligne ["auteur"] . "</td>\n") ;
print ("<td>" . $ligne ["date"] . "</td>\n") ;
print ("<td><a href = ".$_SERVER['PHP_SELF']."?action=Modifier&ancien_message=".$ligne['id_accueil']."&titre=".$ligne['titre']."&contenu=".$ligne['contenu']."&auteur=".$ligne['auteur']."> Modifier</a> </td>") ;
print ("<td><a href =".$_SERVER['PHP_SELF']."?action=Supprimer&id=".$ligne['id_accueil']."> Supprimer</a> </td>") ;
print ("\n");
print("</tr>") ;
}
print("</table>") ;
//ferme la base de données
mysql_close ($cnx) ;
?>
<BR><div align="center"><a href="sql_accueil_gestion.php?action=Ajouter">Ajouter un message</a></div>