Bonjour,
je voulais savoir si il est possible de faire un UPDATE sans que le contenu du champs soit effacé, que les données soit ajoutées aux précédentes
est ce que cela à a voir avec l'incrémentation
merci de votre aide
Bonjour,
je voulais savoir si il est possible de faire un UPDATE sans que le contenu du champs soit effacé, que les données soit ajoutées aux précédentes
est ce que cela à a voir avec l'incrémentation
merci de votre aide
Bonjour,
L'UPDATE met à jour les données, et efface donc les anciennes données.
Il faut mettre en place des mécanismes particuliers pour conserver les anciennes données.
ced
Rédacteur / Modérateur SGBD et R
Mes tutoriels et la FAQ MySQL
----------------------------------------------------
Pensez aux balises code et au tag
Une réponse vous a plu ? N'hésitez pas à y mettre un
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
Vous pouvez référencer la valeur courante dans un update, ce qui vous permet effectivement de "conserver" les anciennes valeurs.
Exemple avec une chaîne de caractères :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE MaTable Set MaColonne = CONCAT ( MaColonne , 'A' )
Email : http://scr.im/waldar
Cette solution ne va fonctionner qu'avec les chaînes de caractères, et risque rapidement de faire exploser la longueur des chaînes.
Il faudrait mettre un séparateur en plus, pour ensuite séparer les différentes valeurs les unes des autres...
Non, ce n'est pas une solution adéquate.
Il vaut mieux chercher du côté des fonctions type "audit trail".
ced
Rédacteur / Modérateur SGBD et R
Mes tutoriels et la FAQ MySQL
----------------------------------------------------
Pensez aux balises code et au tag
Une réponse vous a plu ? N'hésitez pas à y mettre un
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
merci pour vos infos
je penses que la piste audit trail est surdimensionné pour moi , je ne maitrise pas du tout les fonctions mysql
mais merci encore
en fait je voulais faire un affichage des commentaires des internautes
j'ai changé mon fusil d'épaule et fait appel a un fichier texte fabriqué à la volé qui est ensuite afficher dans la page..
il me creer bien le fichier mais avec l'id du dernier enregistrement
voila le code de la page qui affiche les news et les commentaire apres l'envoie via un formulaire
je pense que c'est dans la requette mysql que ça coince ou il manque une variable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php require_once('Connections/database.php'); ?> <?php $maxRows_actuBourse = 10; $pageNum_actuBourse = 0; if (isset($_GET['pageNum_actuBourse'])) { $pageNum_actuBourse = $_GET['pageNum_actuBourse']; } $startRow_actuBourse = $pageNum_actuBourse * $maxRows_actuBourse; mysql_select_db($database_liremessage, $liremessage); $query_actuBourse = "SELECT * FROM actu_bourse"; $query_limit_actuBourse = sprintf("%s LIMIT %d, %d", $query_actuBourse, $startRow_actuBourse, $maxRows_actuBourse); $actuBourse = mysql_query($query_limit_actuBourse, $liremessage) or die(mysql_error()); $row_actuBourse = mysql_fetch_assoc($actuBourse); if (isset($_GET['totalRows_actuBourse'])) { $totalRows_actuBourse = $_GET['totalRows_actuBourse']; } else { $all_actuBourse = mysql_query($query_actuBourse); $totalRows_actuBourse = mysql_num_rows($all_actuBourse); } $totalPages_actuBourse = ceil($totalRows_actuBourse/$maxRows_actuBourse)-1; ?> <?php // creer un fichier texte pour les commentaires $quand = date("d M Y H:i:s"); //Temps $fp = fopen( $row_actuBourse['id_actu_bourse'].".log","a+"); //Ouverture ou création du fichier fputs($fp, "| <a href='mailto:$email'> $pseudo </a> $commentaires<p>"); fclose($fp);//Ecriture et fermeture du fichier ?> <?php // affiche les commentaires selon l'id de la table require ($row_actuBourse['id_actu_bourse'].".log"); ?>
merci à vous
Fais un echo() de ta requête et essaie de l'exécuter directement dans MySQL.
Quel est alors le message d'erreur ?
ced
Rédacteur / Modérateur SGBD et R
Mes tutoriels et la FAQ MySQL
----------------------------------------------------
Pensez aux balises code et au tag
Une réponse vous a plu ? N'hésitez pas à y mettre un
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
si je fait
il m'affiche tous les enregistrement de la table ( ça va de 4 à 6 )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM actu_bourse
dans le script il me creer un fichier 4.log meme si je clique sur par exemple la partie qui concerne l'enregistrement 5 ou 6
si je met un echo comme
il m'affiche bien 4, 5 et 6 la valeur des id
Code : Sélectionner tout - Visualiser dans une fenêtre à part <?php echo $row_actuBourse['id_actu_bourse']; ?>
c'est dans la fabrication du fichier texte que ça va pas, il creer un fichier texte avec comme nom la valeur du premier id de la table
j'ai séparer le script de creation de fichier texte ce qui donne
un fichier formulaire pour envoyer les commentaires qui va sur le fichier enreg.php
le fichier qui creer le fichier de log a partir du formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <form method="POST" action="enreg.php"> <p>Entrez votre adresse e-mail : <input type="text" size="20" name="email"><br> Entrez votre pseudo : <input type="text" size="20" name="pseudo"></p><br> Donnez vos commentaires : <p><textarea name="commentaires" rows="7" cols="50"></textarea></p> <input type="submit" value="Valider"> </form>
et le fichier pour afficher les news et les commentaires
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php require_once('Connections/database.php'); ?> <?php mysql_select_db($database_liremessage, $liremessage); $query_commentActu = "SELECT * FROM actu_bourse"; $commentActu = mysql_query($query_commentActu, $liremessage) or die(mysql_error()); $row_commentActu = mysql_fetch_assoc($commentActu); $totalRows_commentActu = mysql_num_rows($commentActu); ?> <?php $quand = date("d M Y H:i:s"); //Temps $fp = fopen( $row_commentActu['id_actu_bourse'].".log","a+"); //Ouverture ou création du fichier fputs($fp, "| <a href='mailto:$email'> $pseudo </a> $commentaires<p>"); fclose($fp);//Ecriture et fermeture du fichier ?> <HTML><HEAD> <script language='JavaScript'> var url = "actu.php"; <!-- Redirection du visiteur --> window.location.replace(url); </script></HEAD> <BODY> </BODY> </HTML> <?php mysql_free_result($commentActu); ?>
mais donc il ne creer qu' un fichier nommé 4.log et toutes les news sont affiché dans l'enregistrement numéro 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php require_once('Connections/database.php'); ?> <?php $maxRows_actuBourse = 10; $pageNum_actuBourse = 0; if (isset($_GET['pageNum_actuBourse'])) { $pageNum_actuBourse = $_GET['pageNum_actuBourse']; } $startRow_actuBourse = $pageNum_actuBourse * $maxRows_actuBourse; mysql_select_db($database_liremessage, $liremessage); $query_actuBourse = "SELECT * FROM actu_bourse ORDER BY id_actu_bourse ASC"; $query_limit_actuBourse = sprintf("%s LIMIT %d, %d", $query_actuBourse, $startRow_actuBourse, $maxRows_actuBourse); $actuBourse = mysql_query($query_limit_actuBourse, $liremessage) or die(mysql_error()); $row_actuBourse = mysql_fetch_assoc($actuBourse); if (isset($_GET['totalRows_actuBourse'])) { $totalRows_actuBourse = $_GET['totalRows_actuBourse']; } else { $all_actuBourse = mysql_query($query_actuBourse); $totalRows_actuBourse = mysql_num_rows($all_actuBourse); } $totalPages_actuBourse = ceil($totalRows_actuBourse/$maxRows_actuBourse)-1; ?> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="actu_bourse.css" rel="stylesheet" type="text/css" /> </head> <body> <?php do { ?> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="11"> </td> <td width="589" align="left" valign="top" class="titre_actu_gras"> <?php echo $row_actuBourse['date_actu_bourse']; ?><?php echo $row_actuBourse['titre_actu_bourse']; ?></td> </tr> <tr> <td> </td> <td align="left" valign="top"><br /> <span class="texte_actu"><?php echo $row_actuBourse['texte_actu_bourse']; ?></span></td> </tr> <tr> <td> </td> <td ><table width="600" border="0" cellpadding="0" cellspacing="0" class="traiHautBas"> <tr> <td class="titre_actu_gras2" width="421" align="left" valign="top">Vos réactions</td> <td width="179"><a href="form.php" class="titre_actu">Réagissez</a> / <a href="#" class="titre_actu">Imprimer</a></td> </tr> <tr> <td class="texte_actu" align="left" valign="top"> <?php // affiche les commentaires selon l'id de la table require ($row_actuBourse['id_actu_bourse'].".log"); ?> </td> <td></td> </tr> </table></td> </tr> <tr> <td> </td> <td class="texte_actu"></td> </tr> </table> <?php } while ($row_actuBourse = mysql_fetch_assoc($actuBourse)); ?> </body> </html> <?php mysql_free_result($actuBourse); ?>
voila la table ( le champ comment_actu_bourse ne sert à rien )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE TABLE `actu_bourse` ( `id_actu_bourse` int(11) NOT NULL auto_increment, `titre_actu_bourse` varchar(250) NOT NULL, `texte_actu_bourse` longtext NOT NULL, `lien_actu_bourse` varchar(250) NOT NULL, `date_actu_bourse` varchar(250) NOT NULL, `comment_actu_bourse` longtext NOT NULL, PRIMARY KEY (`id_actu_bourse`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ; --
je penses qu'il faut mettre en variable la valeur de l'id et l'incorporer dans la requette...bon ça bouillonne dans ma tête mais c'est le brouillard..
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager