une shoutbox !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : une shoutbox !

par Cyrano » 01 juil. 2005, 22:33

dans le cas de figure présenté, $requête = mysql_query($sql) et $sql est la requête elle-même.

par Invité » 01 juil. 2005, 21:07

Tu n'as pas suivi les suggestions de ouckileou...

Voici un autre truc: si tu ne veux garder que les dix derniers, tu dois pouvoir identifier les dix dernieres clés primaires, donc dans un premier temps, tu fais un select pour récupérer la dixième en partant de la denière:

Code : Tout sélectionner

SELECT id from ta_table ORDER BY id DESC limit 10
Ensuite tu isoles le dixième
$id = mysql_result($requete, 9)
À partir de là, tu as l'identifiant à partir duquel il ne faut plus supprimer:
$sql = "DELETE FROM ta_table WHERE id < ". $id .";"
Là, tu devrais tout supprimer sauf les dix derniers
Je crois avoir compris mais que vaut $requete ?

Merci d'avance :)

par Cyrano » 01 juil. 2005, 19:44

Tu n'as pas suivi les suggestions de ouckileou...

Voici un autre truc: si tu ne veux garder que les dix derniers, tu dois pouvoir identifier les dix dernieres clés primaires, donc dans un premier temps, tu fais un select pour récupérer la dixième en partant de la denière:

Code : Tout sélectionner

SELECT id from ta_table ORDER BY id DESC limit 10
Ensuite tu isoles le dixième
$id = mysql_result($requete, 9)
À partir de là, tu as l'identifiant à partir duquel il ne faut plus supprimer:
$sql = "DELETE FROM ta_table WHERE id < ". $id .";"
Là, tu devrais tout supprimer sauf les dix derniers

par VeX0^ » 01 juil. 2005, 17:59

bon alors j'ai essayé ce code :

Code : Tout sélectionner

mysql_query ("DELETE FROM minichat ORDER BY ID LIMIT 10,1111111111");
et ca ne marche pas ! ca ne supprime pas les messages ... enfin j'aimerais un peux d'aide :)

Pour verifie si le message n'a pas deja ete enregistré je ne sais pas du tout et meme avec ton Idée je ne voie pas ...

SVP une fois que j'aurais compris ca ca me debloqué car je veux continuer a apprendre le php mais je bloque la dessus et ca m'enerve :'(

merci d'avance

par pjl » 01 juil. 2005, 17:38

La rubrique débutant, c'est pour apprendre,
la rubrique emploi, c'est pour avoir un code tout fait.

ouckileou t'a donné des pistes.
Je ne crois pas que tu as vraiment essayé de faire quelque chose en 3/4 d'heure.

par VeX0^ » 01 juil. 2005, 17:31

voila j'ai rajouté des commentaires :)

sinon tu peux m'ecrire le code ouckileou stp car je voie vraiment pas ... :(

et oui on est dans la rubrique debutant :lol:

par ouckileou » 01 juil. 2005, 16:16

un truc qui serait sympa quand tu postes du code c'est de l'expliquer en quelques lignes, du genre "je fais une application comme ça, voici la partie qui s'occupe de, ici je fais ça, ça et ça"

ça évites de devoir tout lire pour comprendre... :?
c'est peut-être pour ça que personne t'as répondu

pour supprimer les autres messages tu as plusieurs solutions
- faire un delete avec un LIMIT 10, très grand entier
- récupérer la date du dernier affiché (le 10 plus récent) et supprimer ce qui est au dessus

pour vérifier si le message a pas déjà été enregistré :
tu fais une requête COUNT(*) WHERE message ="$message";

si ça renvoie plus de 0,c 'est que le message est déjà là

par VeX0^ » 01 juil. 2005, 16:03

UP !!!!!

une shoutbox !

par VeX0^ » 30 juin 2005, 18:09

Salut voila mon code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans nom</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>



<?php
if ($_POST['pseudo'] != NULL && $_POST['message'] != NULL) // si les case pseudo et message sont remplis 
{
mysql_connect("**********", "***********", "**********"); // on se connect a la BDD
mysql_select_db("***********"); // on la selectionne 
$message = htmlentities ($_POST['message']); // on definie les variables
$pseudo = htmlentities ($_POST['pseudo']);
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')"); // on insert le message et le pseudo dans la BDD
mysql_close (); 
}
?>
<table width="760" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#333333">
  <tr>
    <td height="203"><p>Pseudo : </p>
      <form name="form1" method="post" action="minichat.php">
        <p>
          <input name="pseudo" type="text" id="pseudo" value="<?php echo $_POST['pseudo'] ?>">
</p>
        <p>Message : </p>
        <p>
          <input name="message" type="text" id="message"> 
        </p>
        <p>
          <input type="submit" name="Submit2" value="Envoyer">    
        </p>
      </form>          
      <p>
        <?php
// on affiche les 10 derniers messages meme si ont a pas posté ! 
mysql_connect("**********", "**********", "**********"); 
mysql_select_db("*************");
$reponse = mysql_query ("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10"); // on affiche les 10 derniers messages 
mysql_close();

 while ($donnees = mysql_fetch_array($reponse) ) // on fait une boucle pour parcourir les entréé une à une 
{
?>
</p>
<p><strong><? echo $donnees['pseudo']; ?></strong> : <? echo $donnees['message']; ?>
</p>

<?
}
?>
 </td>
  </tr>
</table>
        
</body>
</html>
alors voila mes 2 questions :

comment faire en sorte de supprimer les vieux messages ? c'est a dire dans mon code in affiche que les 10 derniers messages et moi je voudrais supprimer tout les messages qui ne sont pas afficher ( jespere que vous m'avez compris )

sinon ma 2eme question : je voudrais avant d'enregistrer un message verifié si le dernier enregistré n'est pas le même ! en effet si on fait F5 ca va nous demander si on veut reafficher la page et si on dit OUi alors le message va être posté en double :(

Merci de votre aide !

Edit : j'ai 3 champs dans ma table !
ID : auto increment en INT
Message : en varchat 255
Pseudo : varchat 255