CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Reu] Pb Commentaires/Niouz

trougnouf
trougnouf
Niveau 10
26 avril 2005 à 14:21:21

Rebonjour, désolé de reposter un sujet pour ça mais je n´avais rien compris à l´ancienne page de commentaires et j´en ai trouvé une qui a l´air plus simple mais pas assez pour être dépourvue d´erreur :)

dans cette page(nouy/commentaires.php?id_news=2 par exemple), le formulaire s´affiche mais avec juste en dessous l´erreur donc voici cette page:
Pseudo :
Message :
[bouton envoyer]
Maintenant on va afficher le message : [php]
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in / var/www/nouy/commentaires.php on line 34

quand j´ajoute un commentaire, l´erreur disparait mais rien de nouveau ne s´affiche / ne s´ajoute à ma table mysql

ma table commentaires dans mysql est la suivante:
id int(11) Non auto_increment
id_news varchar(11) Non
pseudo varchar(255) Non
message text Non
timestamp int(11) Non 0

et ma page commentaires.php :
< html><body>

< div align="center"><form method="post">
Pseudo : < input type="text" name="pseudo"><br>
Message : < input type="text" name="message"><br>
< input type="hidden" name="id_news" value="<? echo $_GET[´id_news´];//Cela sert à dire que le commentaire sera pour la news en question et pas toute les news?>"> < input type="submit" value="Envoyer">
< /form></div>

Maintenant on va afficher le message :
[php]<?

mysql_connect(localhost, root, *********); / /On se connecte à MySQL
mysql_select_db(gnoufzbdd); / /On choisi la db à utiliser

if ( isset($_POST[´pseudo´]) && isset($_POST[´message´])) / /Si pseudo et message sont remplis
{
$pseudo = addslashes($_POST[´pseudo´]); / /On ajoute des slashs à pseudo pour ne pas se faire hacker
$pseudo = htmlentities($_POST[´pseudo´]); / /On empeche le format HTML dans le champ pseudo
$message = addslashes($_POST[´message´]); / /On ajoute des slashs à pseudo pour ne pas se faire hacker
$message = htmlentities($_POST[´message´]); / /On empeche le format HTML dans le champ message
$time = time(); / /On ajoute le timestamp lors de l´envoie du message dans la BDD
$id_news = $_POST[´id_news´]; / /On fait cela pour que sa soit plus court à écrire

if( empty($pseudo) || empty($message)) / /Si l´on a pas rempli le champ pseudo et le champ message
{
echo ´<center><b>Vous devez remplir pseudo et message</b></center>´; / /On affiche un message d´erreur
} else / /Sinon
mysql_query("INSERT INTO commentaires VALUE(´´,´$id_news´, ´$pseudo´, ´$message´, ´$time´)"); / /On affiche le commentaire écrit dans la BDD
}

$retour = mysql_query(´SELECT * FROM commentaires WHERE id_news = ´.$id_news.´ ORDER BY id DESC´); / /Maintenant on selectionne le dernier commentaire écrit dans la BDD
while ( $donnees = mysql_fetch_array($retour)) / /Et on fait une boucle pour afficher tous les messages
{
? >

< div align="center"><table width="100%" border="1" valign="top">
< tr>
< ? $timestamp = $donnees[´timestamp´]; ? >

< td valign="top"><? echo stripslashes($donnees[´pseudo´]); ? > le < ? echo date(´d F Y \à H\hi´, $timestamp); ? ></td>
< /tr>
< tr>
< td valign="top"><?
$message = nl2br(stripslashes($donnees[´message´]));
echo $message;
? ></td>
< /tr>
< /table>
< p><? } ? >

< /body></html>

si vous y capter quelque chose merci de partager votre géni :d

vin_moi
vin_moi
Niveau 10
26 avril 2005 à 14:35:26

tu a créé la table " commentaires" dans ta base de donnée ?

999888
999888
Niveau 10
26 avril 2005 à 14:58:19

Vive les copier/coller des tutos du site du zéro.... :-d

mr_monkey
mr_monkey
Niveau 10
26 avril 2005 à 15:00:37

Pourquoi ne pas essayer d´apprendre a avant de veir crier au secours quand on arrive pas a utiliser un code toute pret ?

mr_monkey
mr_monkey
Niveau 10
26 avril 2005 à 15:07:11

Bon j´ai quand meme decidé de t´aider un peu.

Il y a une erreur parce que mysql_fetch_array ne fonctionne pas si il n´ya pas de ligne dans ta table, or avant le premier commentaire il n´y a pas de ligne, il faut tester le nombre de ligne avec de dire au code d´afficher le formulaire, cela ce fait tres simplemeny avec mysql_num_rows, si c´est a 0 c´est qu´il ne faut pas afficher de commentaires.

999888
999888
Niveau 10
26 avril 2005 à 15:07:19

C´est clair, surout qu´un script de commentaires c´est ultra simple à coder....

mr_monkey
mr_monkey
Niveau 10
26 avril 2005 à 15:09:37

et autre chose
a la place de
mysql_connect(localhost, root, *********); / / On se connecte à MySQL
mysql_select_db(gnoufzbdd); / / On choisi la db à utiliser

essaye de mettre

$connexion = mysql_connect(localhost, root, *********);
$db = mysql_select_db(gnoufzbdd,$connexion);

mr_monkey
mr_monkey
Niveau 10
26 avril 2005 à 15:10:28

Oui c´est simple mais quand on essaye pas de comprendre et qu´on veut que ca tombe tout cuit dans la bouche . .. ca ne marche pas.

mr_monkey
mr_monkey
Niveau 10
26 avril 2005 à 15:13:53

et putain ta requete d´insertion n´est pas bonne !

mysql_query("INSERT INTO `commentaires` ( `id`, `id_news`, `pseudo`, `message`, `timestamp`) VALUE ( ´´,´$id_news´, ´$pseudo´, ´$message´, ´$time´)");

t´as au moins vu un code php qui fonctionnais dans ta vie ? ca existe les bouquins et les sites de tutoriaux . ..

trougnouf
trougnouf
Niveau 10
26 avril 2005 à 19:52:04

:lol: désolé chui en train d´apprendre le php mais j´en suis qu´au début et j´avance tres difficilement ^^

j´ai abandonné ce script ( qui fonctionnait toujours pas apres votre aide et 3h de prises de tête) pour modifier celui du chat, levoicilevoila

< ? include("incl/osanchat.php") ? >

< ?

if ( isset($_POST[´pseudo´]) AND isset($_POST[´message´]) AND isset($_GET[´id_news´])) / / 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("gnoufzbdd");

/ / On utilise la fonction PHP htmlentities pour éviter d´enregistrer du code HTML dans la table

$message = htmlentities ( $_POST[´message´]);
$pseudo = htmlentities ( $_POST[´pseudo´]);
$id_news = $_GET[´id_news´];

/ / Ensuite on enregistre le message
mysql_query("INSERT INTO commentaires VALUES(´´, $id_news, ´$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="commentaires.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>

< ?

mysql_connect("localhost", " root", " *********");
mysql_select_db("gnoufzbdd");

$reponse = mysql_query("SELECT * FROM commentaires ORDER BY ID DESC");

/ / 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 class="chat"><strong><? echo $donnees[´pseudo´]; ? ></strong> : < ? echo $donnees[´message´]; ? ></p>

< ?
}

/ / Fin de la boucle, le script est terminé !
? >

< ? include("incl/bha.php") ? >

mais maintenant, il n´y a pas d´erreur mais quand j´envoi un message, il ne se passe rien ( par contre si je l´ajoute a la bdd il s´affiche mais il y a + pratique . .)

ma table commentaires:
ID int(11) Non auto_increment
id_news int(11) Non 0
pseudo varchar(255) Non
message text Non

trougnouf
trougnouf
Niveau 10
26 avril 2005 à 19:59:13

ca fonctionne :d) jai remplacé $_GET[´id_news´] par $id_news = $_POST[´id_news´]; au début et jai ajouté < input type="hidden" name="id_news" value="<? echo $_GET[´id_news´];//Cela sert à dire que le commentaire sera pour la news en question et pas toute les news?>"> juste avant le bouton envoyer

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment