Bonjour,
Je test un peu les fonctions SQL de php et en travaillant des tutos sur internet je fait un TP.
Celui-ci même achevé, je test mon code dans wamp > projets > forum.php > mais lorsque clique sur forum.php, le chargement dure assez longtemps et le navigateur me renvoi un message d'erreur du type : (http server Apache a rencontré un erreur : il doit fermer ... blablabla ... blablabla. Envoyer le rapport d'erreur etc.
Sur le coup, je me dit c'est mon code qui fonctionne mal : je copie donc le corrigé du TP et je le test avec mes paramètres SQL à moi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
mysql_connect("localhost", "root", "");
// Etc.
Mais je retombe sur la même erreur ...
Réaction bête, je supprime ma base et mon code qui ne me serve plus a rien ... je n'ai donc pas de preuves concrètes. Sauf le code corrigé:
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <style type="text/css">
    form
    {
    text-align:center;
    }
    </style>
    <body>
 
 
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
    {
        // D'abord, on se connecte à MySQL
        mysql_connect("localhost", "root", "");
        mysql_select_db("Ma_Base");
 
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
 
        // Ensuite on enregistre le message
        mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
 
        // On se déconnecte de MySQL
        mysql_close();
    }
}
 
 
// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages
 
// Tout d'abord le formulaire :
?>
 
 
 
<form action="minichat.php" method="post">
 
<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message :  <input type="text" name="message" /><br />
 
<input type="submit" value="Envoyer" />
</p>
 
</form>
 
 
 
<?php
 
// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "root", "");
mysql_select_db("Ma_base");
 
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
 
// On se déconnecte de MySQL
mysql_close();
 
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>
 
 
 
<?php
}
// Fin de la boucle, le script est terminé !
?>
 
 
    </body>
</html>
J'ai changé vite fait les données de la base pour qu'elles correspondent a mon PC.

Je vous décris quand même ma base:
Elle avait 3 champs:
Id /avec auto-incrémentation / PRIMARY / MEDIUMINT
Pseudo /Texte
Message /Texte

Donc voila, quelqu'un peut-il apporter son savoir au secour d'une pauvre âme errante ?