// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------
if(isset($_POST['pseudo'])ANDisset($_POST['message']))
{
$pseudo=mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));// On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$message=mysql_real_escape_string(htmlspecialchars($_POST['message']));// De même pour le message
$message=nl2br($message);// Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des
// On peut enfin enregistrer :o)
mysql_query("INSERT INTO livreor VALUES('', '".$pseudo."', '".$message."')");
}
// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------
// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage=20;// Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour=mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees=mysql_fetch_array($retour);$totalDesMessages=$donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages=ceil($totalDesMessages/$nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo'Page : ';
for($i=1;$i<=$nombreDePages;$i++)
{
echo'[livreor.php?page='$i.'">'.$i.'] ';
}
?>
<?php
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------
if(isset($_GET['page']))
{
$page=$_GET['page'];// On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else// La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page=1;// On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher=($page-1)*$nombreDeMessagesParPage;
$reponse=mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT '.$premierMessageAafficher.', '.$nombreDeMessagesParPage);
while($donnees=mysql_fetch_array($reponse))
{
echo' '.$donnees['pseudo'].' a écrit :
'.$donnees['message'].'
';
}
mysql_close();// On n'oublie pas de fermer la connexion à MySQL ;o)
?>
</html>
au niveau de cette ligne mysql_connect("localhost","sdz","mot_de_passe"); je l'ai remplacé par mysql_connect("localhost", "root", "");
et au niveau de cette ligne mysql_select_db("coursphp") j'ai mis le nom de ma BDD en place de "coursphp"
et j'obtiens le message d'erreur suivant :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\****\pages\livreor.php on line 89
Voici la ligne 89 :
while($donnees =mysql_fetch_array($reponse))
{
}
Sinon je peux taper un message et je le retrouve bien dans ma BDD, ms je ne peux pas le voir sur la page. Quelqu'un aurait une idée. Désolé pour la longueur du post. Merci
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 20102 10 juil. 2008 à 13:49
Lu',
D'après l'erreur ... "Erreur sqlChamp 'id' inconnu dans order clause" le champ id n'existe pas dans ta table livreor ...
Verifie le nom de id (majuscule/minuscule, nom entier, ...) dans ta table
Sinon, le or die(mysql_error()); est à mettre à toutes tes fonctions mysql_query(), et celà à chaque fois. Cela te eprmettra d'avoir une meilleur gestion des erreurs, et un gain de temps non négligeable :p
<hr />Si ma reponse te convient, merci de l'accepter !
sjcbboy
Messages postés36Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention15 juillet 2008 10 juil. 2008 à 11:38
Bonjour Bling 182. Merci de venir encore m'aider, mais le php j'ai vraiment du mal...
A quelle ligne je dois faire la modif? J'ai essayé d'echanger au niveau de l'etape 1:
// On peut enfin enregistrer :o)
mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
et j'ai le meme message d'erreur
ensuite j'ai essayé d'echanger au niveau de l'étape 3 :
$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
et j'ai le message d'erreur suivant :
Erreur sqlChamp 'id' inconnu dans order clause
Une idée
Vous n’avez pas trouvé la réponse que vous recherchez ?
sjcbboy
Messages postés36Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention15 juillet 2008 10 juil. 2008 à 13:57
Ca y est ça marche!!!!!! Dans ma table j'avais mis id_livreor!!!! Ca y c'est modifié et ça fonctionne nickel. C'est un livre d'or simple mais bon ca me suffit. Encore merci Blink 182 et Jojo738!!!!
sjcbboy
Messages postés36Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention15 juillet 2008 10 juil. 2008 à 17:03
Je reviens!!! LOL! Pourriez vous me dire comment je peux faire pour afficher la date et l heure a laquelle le message a été ecrit? Actuellement ça met juste:
pseudo a écrit: message
J'aimerai mettre :
pseudo a écrit le 09 juillet 2008 à 17h02: message
Et je voudrais également savoir comment faire pour qu'il y ai retour a la ligne automatiquement pour éviter qu'il y ai une scrollbar horizontale?
Bling 182
Messages postés510Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention 5 juillet 20093 10 juil. 2008 à 18:34
Bah avec un champ timestamp, suffit d'utiliser la fonction date() avec les bon parametres.
Pour le retour a la ligne, il faut fixer la largeur en CSS, le retour devrait se faire automatiquement.
sjcbboy
Messages postés36Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention15 juillet 2008 11 juil. 2008 à 10:08
je crois que je vais mettre le 'timestamp' de coté car ça a l'air trop compliqué pour moi. Par contre comment je dois faire pour le retour à la ligne automatique. Quelle fonction en CSS je dois appliquer?