Insérer données dans BDD via formulaire

Résolu/Fermé
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 - 2 nov. 2009 à 18:33
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 - 5 févr. 2010 à 17:30
Bonjour à tous,

J'ai créé un formulaire avec deux champs à remplir (date et lieu) pour pouvoir rentrer des dates de concerts dans ma base de données.
Seulement, rien ne s'y écrit. Je vous montre mes pages :

Page "liste-date.php" qui affiche la liste des dates à venir :
<?php
include("../inc/config.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" />
</head>

<body>
<p><a href="rediger_date.php">Ajouter une date</a></p>
<?php
// poster une date
if (isset($_POST['date']) AND isset($_POST['lieu']))
{
$date = addslashes($_POST['date']);
$lieu = addslashes($_POST['lieu']);
if ($_POST['id_news'] == 0)
{
// nouvelle entrée dans la table
mysql_query("INSERT INTO concerts VALUES('', '".$date."', '".$lieu."')");
}
else
{
$_POST['id_concerts'] = addslashes($_POST['id_concerts']);
// modification : on met juste à jour la date et le lieu
mysql_query("UPDATE concerts SET date='".$date."', lieu='".$lieu."' WHERE id='".$_POST['id_concerts']."'");
}
}

// supprimer une date
if (isset($_GET['supprimer_date'])) // supprimer une date
{
$_GET['supprimer_date'] = addslashes($_GET['supprimer_date']);
mysql_query('DELETE FROM concerts WHERE id=\'' . $_GET['supprimer_date'].'\'');
}
?>
<table>
<tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Ajoutée le : </th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM concerts WHERE date >= CURRENT_DATE() ORDER BY date ASC');
while ($ligne = mysql_fetch_array($retour))
{
?>
<tr>
<td><?php echo '<a href="rediger_date.php?modifier_date='.$ligne['id'].'">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_date.php?supprimer_date='.$ligne['id'].'" onclick="return confirm(\'Veux-tu vraiment supprimer cette date ?\');">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($ligne["lieu"]); ?></td>
<td><?php echo date("d-m-Y", strtotime($ligne["date"])); ?></td>
</tr>
<?php
}
?>
</table>
<p><a href="index.php">Retour à la zone administrateur</a></p>
</body>
</html>



Page "rediger-date.php" pour ajouter ou modifier les dates à venir :
<?php
include("../inc/config.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" />
</head>

<body>
<p><a href="liste_date.php">Retour à la liste des dates</a></p>
<?php
if (isset($_GET['modifier_date'])) // modifier une date
{
$_GET['modifier_date'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_date']));
// on récupère les infos de la date choisie
$retour = mysql_query('SELECT * FROM concerts WHERE id=\'' . $_GET['modifier_date'] . '\'');
$ligne = mysql_fetch_array($retour);

$date = stripslashes($ligne['date']);
$lieu = stripslashes($ligne['lieu']);
$id_news = $ligne['id']; // c'est une modification
}
else // nouvelle date
{
// Les variables sont vides car c'est une nouvelle date
$date = '';
$lieu = '';
$id_news = 0;
}
?>
<form action="liste_date.php" method="post">

<p>Insérer une date<br />
<input type="text" size="8" name="date" value="<?php echo $date; ?>" /></p>

<p>Lieu : <br />
<input type="text" size="30" name="lieu" value="<?php echo $lieu; ?>" /></p>

<p><input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
<input type="submit" value="Envoyer" /></p>

</form>
</body>
</html>


Ma base de données contient une table "concerts" qui a les champs id (INT11, AI), date(DATE), lieu(VARCHAR255).

Merci aux personnes qui voudrons bien prendre quelques minutes de leur temps pour m'aider.
ps : je suis presque sûr que l'erreur vient de mon code à cause d'un mélange entre id_news, id_date et id_concerts... mais je tourne en rond o_O
A voir également:

3 réponses

jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 1
3 nov. 2009 à 16:10
la faille vient apparament de la deuxième page.

J'aurais besoin d'une relecture s'il vous plait.

Merci d'avance :)
0
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 1
4 nov. 2009 à 20:36
Personne ne pourrait m'aider ? Une petite relecture de la page 2...
Merci d'avance ;)
0
J'ai lu ton script et il ne m'inspire pas du tout
-1
jean.miche Messages postés 90 Date d'inscription samedi 22 août 2009 Statut Membre Dernière intervention 30 mai 2014 1
5 févr. 2010 à 17:30
Salut,

Entre temps, j'avais rajouté un champ à ma BDD, et il fallait donc le spécifier dans mes requêtes SQL, même si je ne comptais pas le renseigner avec le formulaire pour l'instant.

J'avais :
"INSERT INTO concerts VALUES('', '".$date."', '".$lieu."')"; 

Il fallait que j'écrive :
"INSERT INTO concerts VALUES('', '".$date."', '".$lieu."', '')"; 


Merci.
0