Souci à l'envoi de message dans MySQL
Bonjour
Je suis confronté au fait que mon code inspiré d'un tuto sur une news ne s'exécute pas ou du moins il y a aucun message qui s'écrit dans la base de données. J'ai encodé trois fichiers: indexnews.php, listnews.php et redirectnews.php. Les pages s'affichent correctement avec les liens. Mais j'ai aucun résultat. Pour alleger mon post, j'ai préféré donner le code du fichier qui inscrit les données dans la base de données.
Code du fichier listnews.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
<!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" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title> Mis en oeuvre d'une News </title>
<link href="tutosdesign.css" rel="stylesheet"
media="screen, handheld, tv, projection" type="text/css" title="designTutos" />
</head>
<body>
<h3><a href="redirectnews.php"><u>Ajouter une news</u></a></h3>
<?php
// Accès à la base de données :
include('functions.php');
connexion()_to_dB;
// Vérification 1 : est-ce qu'on veut poster une news ?
if(isset($_POST['pseudo']) && isset($_POST['titre']) && (isset($_POST['message'])))
{
$pseudo = addslashes($_POST['pseudo']);
$titre = addslashes($_POST['titre']);
$message = addslashes($_POST['message']);
$time = time();
$timestamp_init = time();
$timestamp_modif = date('d/m/Y', $timestamp_init);
// Verification pour une modificationde de la news :
// 1) Ajout d'une nouvelle entrée'
if($_POST['idnews'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
/*mysql_query("INSERT INTO news VALUES($pseudo,$titre, $message,$time,$timestamp_modif)")
or die ('Probleme de la RQT INSERT dans listnews'. mysql_error());*/
mysql_query("INSERT INTO news VALUES('" . $pseudo . "', '" . $titre . "',
'" . $message . "', '" . $time . "', '" . $timestamp_modif . "',)")
or die ('Probleme de la RQT INSERT dans listnews'. mysql_error());
}
else
{
// C'est une modification, on modifie le champ id correspondant dans la table
// On protège la variable "idnews" pour éviter une faille SQL
$_POST['idnews'] = addslashes($_POST['idnews']);
mysql_query("UPDATE INTO news SET titre='" . $titre."',
message='" .$message. "'WHERE id = '" . $_POST['idnews']. "'")
or die ('Probleme de la RQT UPDATE dans indexnews'. mysql_error());
}
// Verification pour une suppression de la news :
if(isset($_GET['suppression_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['suppression_news'] = addslashes($_GET['suppression_news']);
mysql_query('DELETE FROM news WHERE id=\''. $_GET['suppression_news'].'\'')
or die ('Probleme de la RQT DELET dans indexnews'. mysql_error());
}
}
?>
<table>
<!--<caption></caption> -->
<tr>
<td><b>Modification</b></td>
<td><b>Suppression</b></td>
<td><b>Titre</b></td>
<td><b>Date</b></td>
</tr>
<?php
$select_rqst = mysql_query('SELECT * FROM news ORDER BY id DESC')
or die ('Probleme de la RQT SELECT-bis dans indexnews'. mysql_error());
while($content = mysql_fetch_array($select_rqst))
{
?>
<tr>
<td><?php echo '<a href="redirectnews.php?modification_news= '. $content['id']. '">';?>Modification</a></td>
<td><?php echo '<a href "listnews.php?suppression_news = ' . $content['id'] . '">';?>Suppression</a></td>
<td><?php echo stripslashes($content['titre']); ?></td>
<td><?php echo date('d/m/Y', $content['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table>
</body>
</html> |
Dans le bloc :
Code:
1 2 3 4 5 6 7 8
|
if($_POST['idnews'] == 0)
{
mysql_query("INSERT INTO news VALUES($pseudo,$titre, $message,$time,$timestamp_modif)") or die ('Probleme de la RQT INSERT dans listnews'. mysql_error());
/*mysql_query("INSERT INTO news VALUES('" . $pseudo . "', '" . $titre . "',
'" . $message . "', '" . $time . "', '" . $timestamp_modif . "',)")
or die ('Probleme de la RQT INSERT dans listnews'. mysql_error());*/
} |
avec toutes les deux versions( celles commentée et non commentée ) j'ai le même problème:
Probleme de la RQT INSERT dans listnewsYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a la technologie novatrice de Google, gardez les courriers indésirables a distan' at line 1
Je ne comprends pas ce qui fait que je n'obtiens pas le bon résultat.Est-ce que le problème viendrait de la manière dont je stocke les dates?
Merci pour l'attention de chacun.
Souci à l'envoi de message dans MySQL-Problème avec la RQT INSERT
Merci bien.
J'ai corrigé l'erreur de la virgule en trop. Maintenant voici le message d'erreur que j'obtiens :
Code:
1 2 3 4 5 6 7 8 9
|
Strict Standards: date() [function.date]: It is not safe to rely on the
system's timezone settings. Please use the date.timezone setting, the TZ
environment variable or the date_default_timezone_set() function. In case
you used any of those methods and you are still getting this warning, you
most likely misspelled the timezone identifier. We selected 'Europe/Paris' for
'1.0/no DST' instead in K:\dirweb\tutodev\php\initiation\tutos\listnews.php
on line 26
|
Ligne 26 :
Code:
$timestamp_modif = date('d/m/Y', $timestamp_init);
Et si j'utilise (ligne 27 la ligne 26 étant mise en commentaire):
Code:
$timestamp_modif = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
le message d'erreur devient :
Citation:
...
Strict Standards: mktime() [function.mktime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '1.0/no DST' instead in G:\projets\devweb\php\initiation\tutos\listnews.php on line 27
mysql_query("INSERT INTO news VALUES($pseudo,$titre, $message,$time,$timestamp_modif)")
Est-ce la bonne méthode d'insérer une date dans un base de données? En même temps c'est de cette manière que c'est fait dans le tuto! Je ne sais pas trop.
Je pense bien que que le fait que j'ai rien dans ma table news vient du fait que la date ne s'inscrit pas , non?
Merci de bien vouloir m'éclairer sur cette question.
Si nécessaire je peux fournir le code complet pour la réalisation de la news.