Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/08/2006, 21h19   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 79
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 79
Points : 12
Points : 12
Par défaut [Conception] Insertion de paramètres à l'infini

voici mon programme, il marche correctement sauf que j'ai un probleme, a chaque mise a jour de la page web, les dernieres informations qui ont été insérés dans la base se réaffichent de nouveau,
le programme est constitué d'un sélect, suivi d'un insert, a chaque mise a jour de la page, il se fait une nouvelle insertion dans la base, des dernieres informations insérées..


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
 <table width="595" border="0">
                    <tr>
                      <td width="10" height="20">&nbsp;</td>
                      <td width="575"> 
                      <?  $auj="Nous sommes le " . date("j M Y \e\\t \i\l \e\s\\t H \h i \m\\n .");
                              echo "$auj"; ?>
                        <p>&nbsp;</p>
                        <form name="form1" method="post" action="accueil.php">
                         <?php
                          /* Connexion et sélection de la base */
                    $host = "localhost";
                    $link = mysql_connect("$host", "root", "")
                    or die("Could not connect");
                    print "Connexion réussie";
                    mysql_select_db("services") or die("Could not select database");
                /* Exécuter des requêtes SQL */
 
 
                    $query = "select * FROM accueil order by id_accueil desc;";
                    $res= mysql_query($query) or die("Query failed");
                    echo "<table><tr><td></td></tr><tr><td></td><td></td></tr><tr><td></td></tr><tr><td></td></tr>";
                    while($row=mysql_fetch_array($res))
                      { echo "<tr><td>Posté $row[0]</td></tr><tr><td>$row[1]</td><td><b>$row[2]</b></td></tr><tr><td>$row[3]</td></tr><tr><td><b><i>$row[4]</i></b><br><hr></td></tr>";
                      };
                     echo "</table>";
                     mysql_close();
 
                ?>
 
                          <p>&nbsp;</p>
                          <p>Ajouter un sujet:</p>
                          <p>&nbsp;</p>
                          <p>&nbsp;</p>
                          <p>Titre &nbsp; 
                            <input type="text" name="titre" size="50">
                          </p>
                          <p>Texte &nbsp; 
                            <textarea name="textarea" rows="20" cols="60"></textarea>
                          </p>
                          <p>Auteur 
                            <input type="text" name="auteur" size="50">
                          </p>
                          <p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                            <input type="submit" name="Submit" value="Ajouter">
                          </p>
                          <p>&nbsp;</p>
                           <?php
                /* Connexion et sélection de la base */
                    $host = "localhost";
                    $link = mysql_connect("$host", "root", "")
                    or die("Could not connect");
                    print "Connexion réussie";
                    mysql_select_db("services") or die("Could not select database");
                /* Exécuter des requêtes SQL */
                    $auj=" le " . date("j M Y \à H \h i \m\n .");
                    $dateacc = $auj;
                    $numero = htmlentities ($_POST['numero']);
                    $titre = htmlentities ($_POST['titre']); 
                    $textarea = htmlentities ($_POST['textarea']); 
                    $auteur = htmlentities ($_POST['auteur']); 
 
                    $query = "INSERT INTO accueil(date_a, id_accueil, titre, texte, auteur) values ('$dateacc','$numero','$titre','$textarea','$auteur');";
                    $res= mysql_query($query) or die("Query failed");
 
                     mysql_close();
 
                ?>
                        </form>
                        <p>&nbsp;</p>
                      </td>
                    </tr>
                  </table>
sousou_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 21h25   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
C'est normal vu ton code...Pourquoi tu n'effectues pas un test pour savoir si y a insertion ou non ? Par exemple qu'il y a bien un clic sur le bouton submit (isset)
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 21h42   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 79
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 79
Points : 12
Points : 12
comment se fait le test.? c'est quoi isset? commande?
sousou_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 21h57   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Tu trouveras toutes ces informations dans ce tutoriel : Les formulaires et PHP 5

Par ailleurs, je vois que tu te connectes deux fois à la même base de données : c'est inutile.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 21h49   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 79
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 79
Points : 12
Points : 12
ça ne marche toujours pass
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
 <div style="margin:20px; margin-top:5px; ">
	<div class="smallfont" style="margin-bottom:2px">Citation:</div>
	<table cellpadding="6" cellspacing="0" border="0" width="100%">
	<tr>
		<td class="alt2" style="border:1px inset">
 
				<table width="595" border="0">
                    <tr>
                      <td width="10" height="20">&nbsp;</td>
                      <td width="575"> 
                      <?  $auj="Nous sommes le " . date("j M Y \e\\t \i\l \e\s\\t H \h i \m\\n .");
                              echo "$auj"; ?>
                        <p>&nbsp;</p>
                        <form name="form1" method="post" action="accueil.php">
                         <?php
 
                         $dateacc = "";
                    $titre = ""; 
                    $textarea = ""; 
                    $auteur = ""; 
 
                          /* Connexion et sélection de la base */
                    $host = "localhost";
                    $link = mysql_connect("$host", "root", "")
                    or die("Could not connect");
                    print "Connexion réussie";
                    mysql_select_db("services") or die("Could not select database");
                /* Exécuter des requêtes SQL */
 
 
                    $query = "select * FROM accueil order by id_accueil desc;";
                    $res= mysql_query($query) or die("Query failed");
                    echo "<table><tr><td></td></tr><tr><td></td><td></td></tr><tr><td></td></tr><tr><td></td></tr>";
                    while($row=mysql_fetch_array($res))
                      { echo "<tr><td>Posté $row[0]</td></tr><tr><td>$row[1]</td><td><b>$row[2]</b></td></tr><tr><td>$row[3]</td></tr><tr><td><b><i>$row[4]</i></b><br><hr></td></tr>";
                      };
                     echo "</table>";
 
 
                ?>
 
                          <p>&nbsp;</p>
                          <p>Ajouter un sujet:</p>
                          <p>&nbsp;</p>
                          <p>&nbsp;</p>
                          <p>Titre &nbsp; 
                            <input type="text" name="titre" size="50">
                          </p>
                          <p>Texte &nbsp; 
                            <textarea name="textarea" rows="20" cols="60"></textarea>
                          </p>
                          <p>Auteur 
                            <input type="text" name="auteur" size="50">
                          </p>
                          <p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                            <input type="submit" name="Submit" value="Ajouter">
                          </p>
                          <p>&nbsp;</p>
                           <?php
                /* Connexion et insertion dans la base */
 
                    mysql_select_db("services") or die("Could not select database");
                /* Exécuter des requêtes SQL */
                    $auj=" le " . date("j M Y \à H \h i \m\n .");
                    $dateacc = $auj;
                    $titre = htmlentities ($_POST['titre']); 
                    $textarea = htmlentities ($_POST['textarea']); 
                    $auteur = htmlentities ($_POST['auteur']); 
 
                    if (($titre != "") && ($textarea != "") && ($auteur != "")) 
                    {
                    $req_ins = "INSERT INTO accueil(date_a, titre, texte, auteur) values ('$dateacc','$titre','$textarea','$auteur');";
                    $res_ins= mysql_query($req_ins) or die("Query failed");
 
                     $dateacc = "";
                    $titre = ""; 
                    $textarea = ""; 
                    $auteur = ""; 
                    }
                     mysql_close();
 
                ?>
                        </form>
                        <p>&nbsp;</p>
                      </td>
                    </tr>
                  </table> </td>
              </tr>
            </table> </td>
          <td valign="top" height="100%" width="16">&nbsp;</td>
        </tr>
        <tr> 
          <td valign="top" align="center" style="padding-top:10" width="757"> 
            <table width="75%" border="0">
              <tr>
                <td>&nbsp;</td>
                <td>
                  </td>
              </tr>
            </table>
            <div align="right"><br>
            </div>
          </td>
          <td width="16">&nbsp;</td>
        </tr>
      </table>
 
		</td>
	</tr>
	</table>
</div>
sousou_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 21h56   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Dans le même style que la double connexion à la même BDD, tu continues à sélectionner deux fois la même BDD : c'est inutile aussi.

Concernant le test suggéré par Kerod, c'est indiqué ici : http://g-rossolini.developpez.com/tu...page_2#LII-B-1 dans l'infobulle à la suite du code. Tu ne t'y prends pas correctement.
Par ailleurs, il ne faut pas utiliser htmlentities() pour insérer en BDD mais plutôt mysql_real_escape_string().
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2006, 11h59   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 79
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 79
Points : 12
Points : 12
c'est la meme chose
sousou_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2006, 12h05   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Crois-moi sur parole si tu ne veux pas chercher, car ce sujet a été traité maintes fois dans les forums et j'ai un peu la flemme de me répéter.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h10.


 
 
 
 
Partenaires

Hébergement Web