Page 1 sur 2

probleme zone de commentaire

Posté : 26 sept. 2012, 16:56
par mopolkiio
Bonjour a tous voila j'ai voulu créer une zone de commentaire pour mon site une espece de livre d'or quoi, mais j'ai beau vérifier mon script ligne par ligne rien n'y fait sa ne marche pas... voici le script j'espere que vous pourrez m'aider je suis vraiment débutant et j'ai un peu de mal avec tout sa ^^




<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/tru ... "></script>
<![endif]-->
<link rel="shortcut icon" href="icone.ico" type="image/x-icon"/>
<link rel="icon" href="icone.ico" type="image/x-icon"/>
<title>Commentaires</title>
</head>
<style type="text/css">
form, .pages
{
text-align:center;
}
</style>
</head>
<body>

<form method="post" action="livre_or.php">
<p>Laissez vos commentaires ici :)</p>
<p>
Pseudo (utilisez le meme qu'en jeu pour vous faire reconnaitre) :</br> <input name="pseudo" /><br />
commentaires :<br />
<textarea name="message" rows="8" cols="35"></textarea><br />
<input type="submit" value="Poster" />
</p>
</form>

<p class="pages">

<?php
mysql_connect("username", "sdz", "password");
mysql_select_db("livre_or");

if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message);

mysql_query("INSERT INTO livre_or VALUES('', '" . $pseudo . "', '" . $message . "')");
}

$nombreDeMessagesParPage = 20;
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livre_or');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre_or.php?page=' . $i . '">' . $i . '</a> ';
}
?>

</p>

<?php



if (isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 1;
}

$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM livre_or ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
}

mysql_close();
?>

</body>
</html>

Re: probleme zone de commentaire

Posté : 26 sept. 2012, 17:43
par sirakawa
Ce n'est pas la syntaxe de INSERT:
soit:
INSERT INTO nom_de_table (col1,col2) VALUES(15,36);
soit:
insert into mots set mot="truluku", categorie ="POIL";

Re: probleme zone de commentaire

Posté : 26 sept. 2012, 20:37
par mopolkiio
Merci de repondre aussi vite :) mais je suis vraiment nul et je sais pas comment modifier de la bonne façon la ligne (sans faire encore plus de conneries)

mysql_query("INSERT INTO livre_or VALUES('', '" . $pseudo . "', '" . $message . "')");

dans ma table 'livre_or' j'ai 3 colonne 1=id (type = int(10), atribut = unsigned, null = non, defaut = aucune, extra = auto_incremant)
2=pseudo (type = varchar(255), inclassement = latin1_swedish_ci , null = oui, defaut =null,)
3=message (type =text, inclassement = latin1_swedish_ci , null = oui, defaut =null,)

y a t-il d'autre chose a modifier ? et si oui comment ? :s

Re: probleme zone de commentaire

Posté : 26 sept. 2012, 20:46
par sirakawa
Merci de repondre aussi vite :) mais je suis vraiment nul et je sais pas comment modifier de la bonne façon la ligne (sans faire encore plus de conneries)

mysql_query("INSERT INTO livre_or VALUES('', '" . $pseudo . "', '" . $message . "')");

dans ma table 'livre_or' j'ai 3 colonne 1=id (type = int(10), atribut = unsigned, null = non, defaut = aucune, extra = auto_incremant)
2=pseudo (type = varchar(255), inclassement = latin1_swedish_ci , null = oui, defaut =null,)
3=message (type =text, inclassement = latin1_swedish_ci , null = oui, defaut =null,)

y a t-il d'autre chose a modifier ? et si oui comment ? :s
on peut alors afficher la requête si ça ne marche pas:
$requete = "INSERT INTO livre_or (pseudo, message) VALUES ('$pseudo ', '$message')";
mysql_query ($requete);
ou plus facile quand _il y a beaucoup de champs:
$requete = "INSERT INTO livre_or set pseudo='$pseudo' , message = '$message'";

Re: probleme zone de commentaire

Posté : 26 sept. 2012, 21:25
par mopolkiio
Je vien d'essayer ce que tu m'a dit, soit c'est moi qui est mal fait (surement sa) soit sa marche pas, les commentaire ne s'affiche toujours pas sur ma page :'( sa reload la page mais sa nettoie juste les zone de texte et rien de plus, rien ne va dans ma base de donner qui reste a 0 o, et rien ne vas sur ma page... de temps en temps en modifiant la ligne mysql_query("INSERT INTO livre_or VALUES('', '" . $pseudo . "', '" . $message . "')"); plus rien ne s'affiche Oo je suis complétement perdu (c'est ma premiere action utilisant du php et c'est pas très concluant )

merci quand meme pour tes reponse qui sont rapide. :)

Re: probleme zone de commentaire

Posté : 26 sept. 2012, 23:28
par AB
sirakawa t'a donné une méthode pour débugguer mais il faut faire afficher le résultat pour voir si ta requête est bien formée.
$requete = "INSERT INTO livre_or (pseudo, message) VALUES ('$pseudo ', '$message')"
echo $requete;
mysql_query($requete) or die(mysql_error());
Ensuite tu pourras copier le résultat du echo et le coller dans une fenêtre mysql de phpmyadmin pour voir comment ta requête est exécutée.

Tu peux aussi avoir des informations en faisant afficher les erreurs pendant la phase de développement avec mysql_error() comme indiqué ci dessus (ou plutôt que d'utiliser or die(mysql_error()) il y a d'autres méthodes ici)

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 01:13
par mopolkiio
Merci :) j'ai essayer et sa ma dit sa me dit sa :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$requete = "INSERT INTO livre_or (pseudo, message) VALUES ('$pseudo ', '$message' at line 1

ou bien via mon site je trouve sa :

donc il y a ma zone de commentaire et en dessous ecrit ceci : en gros sa veut dire que j'ai pas les bon ID ? pourtant j'ai mit tout comme marquer dans l'e-mail d'inscription a byethost


Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'b14_11388339' (4) in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 36

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'root'@'localhost' (using password: NO) in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 37

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 37

Warning: mysql_query() [function.mysql-query]: Access denied for user 'root'@'localhost' (using password: NO) in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 51

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 51

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 52
Page :


Warning: mysql_query() [function.mysql-query]: Access denied for user 'root'@'localhost' (using password: NO) in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 79

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 79

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 81

Warning: mysql_close(): no MySQL-Link resource supplied in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 86

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 08:13
par sirakawa
Montre le code qui conduit à ce message d'erreur:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$requete = "INSERT INTO livre_or (pseudo, message) VALUES ('$pseudo ', '$message' at line 1
Pour le site:
Il faut tester le résultat de la connexion:
$connect_ok =mysql_connect(....);
if ($connect_ok === false)
{
print "problème de connexon";
exit;
}
//si on est ici c'est que la connexion a fonctionné; on peut sélectionener la table.....

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 12:10
par tymo
Voila ta requête bien formée ^^

Code : Tout sélectionner

$query = "INSERT INTO `nomdetabase`.`livre_or` (`id` ,`pseudo` ,`message`)VALUES (NULL , '$pseudo', '$message');";
(non testé mais ça devrait le faire)

A la place de nomdetabase, tu met le nom de ta DB, ou alors tu supprimes `nomdetabase`.

Et cette requête fonctionne à condition que le champ id soit en auto increment.

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 14:04
par mopolkiio
Merci pour vos réponse, Sirakawa j'ai fait ce que tu as dit et ma paga n'affiche plus le message d'erreur mais tjr rien sur ma page quand je commente...

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 16:09
par sirakawa
Cette partie a l'air de fonctionner:
$nombreDeMessagesParPage = 20;
//$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livre_or');
//plutôt:
$requete = "SELECT COUNT(*) AS nb_messages FROM livre_or";
$resultat = $mysql_query($requete);
if ($resultat === false)
{
//il y a un problème dans la requête
}
else
{
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb_messages'];
    $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
}


echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livre_or.php?page=' . $i . '">' . $i . '</a> ';
}

<?php
//ajoute
print_r($_GET);
//à défaut de résoudre, ça explique


if (isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
?>

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 19:02
par mopolkiio
j'ai mis ton code et j'ai du retirer <?php et ?> pck il me disait que c'était une erreur et maintenant sa me marque sa Fatal error: Function name must be a string in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 60
la ligne 60 dans mon script correspond a la ligne 5 du tien soit $resultat = $mysql_query($requete); dsl de vous embeter avec sa en plus je comprend pas tres bien puisque avant j'avait jamais essayer de me lancer dans le php sa avait l'air trop compliquer et c'est compliquer lol j'espere un jour je m'en sortirai comme vous ^^'

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 19:06
par sirakawa
j'ai mis ton code et j'ai du retirer <?php et ?> pck il me disait que c'était une erreur et maintenant sa me marque sa Fatal error: Function name must be a string in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 60
C'est quoi la ligne 60?

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 19:07
par mopolkiio
je me suis rendu compte en postant que j'avait pas mis ^^ j'ai modifier mon post

Re: probleme zone de commentaire

Posté : 27 sept. 2012, 20:07
par sirakawa
j'ai mis ton code et j'ai du retirer <?php et ?> pck il me disait que c'était une erreur et maintenant sa me marque sa Fatal error: Function name must be a string in /home/vol12/byethost14.com/b14_11388339/htdocs/livre_or.php on line 60
la ligne 60 dans mon script correspond a la ligne 5 du tien soit $resultat = $mysql_query($requete); dsl de vous embeter avec sa en plus je comprend pas tres bien puisque avant j'avait jamais essayer de me lancer dans le php sa avait l'air trop compliquer et c'est compliquer lol j'espere un jour je m'en sortirai comme vous ^^'
Je suis au-dessous de tout:
$resultat = mysql_query($requete);