"DELETE FROM `guest` WHERE `id` ='$id' LIMIT 1"; ca ne marche pa :cry:

"DELETE FROM `guest` WHERE `id` ='$id' LIMIT 1"; ca ne marche pa :cry: - PHP - Programmation

Marsh Posté le 05-01-2003 à 10:46:53    

Bonjour
Je suis en train de faire un livre d'or destiner au grand public ( comme ceux que l'on trouve sur comscript ou phpscript-fr )donc, il y a un panneau d'administration, pas tres perfectioner, la seul chose qu'on peut faire, c'est suprimer des post, mais justement, ca ne marche pas, voila un bout de mon code
admin.php

Citation :

<FORM ACTION="delet.php" METHOD="post">
                                                <p>
                                                   
                                                  Id du message a suprimer<INPUT SIZE="15" NAME="id" >
                                                   
                                                <p>
                                                  <INPUT TYPE="submit" VALUE="Suprimer" size = "15">
                                                </p>
                                              </FORM>


ca, c'est elementaire, mais, voila mon code de  
delet.php
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
 

Citation :

<?
include("config.inc.php3" );  
$sql = "DELETE FROM `guest` WHERE `id` ='$id' LIMIT 1";
$link=mysql_connect($cfg_host,$cfg_user,$cfg_pass) or die("Impossible de se conneceter, verifiez que vous avez bien configurez le fichier config.inc.php3" );
$res = mysql_db_query($cfg_base,$sql,$link) or die("Impossible de suprimmer le message, verifiez qu'il existe bien un message avec l'id que vous avez donner" ) ;  
mysql_close($link);  
print ("Le message a bien était suprimer..." )
?>  
 
<p><a href=<?=$cfg_page?>>Retour au livre d'or</a></p>
</body>
</html>


chaque message poster a un id mis automatiquement (le 1 er poster id 1 le 2 eme id 2 le 3 eme id3 ...ect)
j'ai poster 4 message au pif dans le livre d'or, ensuite, je vais dans admin.php, et je met 3 dans le form puis suprimer, et la, il ma suprimer tout les message, quesqui ne va pas?
merci bcp d'avance


Message édité par MrBMX le 05-01-2003 à 10:59:38
Reply

Marsh Posté le 05-01-2003 à 10:46:53   

Reply

Marsh Posté le 05-01-2003 à 11:06:17    

:cry:  :cry:  :cry:  :cry:  
personne ne sais? vraiment??? :sweat:  :sweat:  
:'( :'( :'( :'( :'( :'( :'( :'( :'( :'(

Reply

Marsh Posté le 05-01-2003 à 11:24:27    

T'as essayé de faire un echo de $id juste avant d'exécuter la requête ?  
 
S'il a pas la valeur que tu lui as donnée via ton form, c'est p-e que le fichier que t'inclus juste avant manipule une variable $id. Essaie d'appeler ta variable autrement, $idMsg par ex.


Message édité par sielfried le 05-01-2003 à 11:24:57

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 05-01-2003 à 16:12:00    

"DELETE FROM `guest` WHERE `id` ='$id'" suffit deja
 
et en + pkoi c'est un champ texte pour l'id ?  
l'id tu dois l'obtenir en selectionnant le message plutot qu'en tapant l'id sinon c'est pas pratique
 
tu affiches un bouton radio à coté de tes messages et comme ça en faisant submit t'auras l'id auto


---------------
« La boîte du logiciel disait que j'avais besoin de "Windows 95 ou mieux" - alors j'ai acheté un Mac. »
Reply

Marsh Posté le 05-01-2003 à 16:22:55    

Le "LIMIT", c'est pas que pour les select ? :heink:

Reply

Marsh Posté le 05-01-2003 à 16:47:35    

non non tu peux limiter le nbre de delete avec LIMIT rows
 
parce que par ex si tu veux suppr que 500 enregistrements d'une table en ayant 50 000 il vaut mieux pouvoir specifier la limite :D


---------------
« La boîte du logiciel disait que j'avais besoin de "Windows 95 ou mieux" - alors j'ai acheté un Mac. »
Reply

Marsh Posté le 05-01-2003 à 16:51:13    

floleb7 a écrit :

non non tu peux limiter le nbre de delete avec LIMIT rows
 
parce que par ex si tu veux suppr que 500 enregistrements d'une table en ayant 50 000 il vaut mieux pouvoir specifier la limite :D

J'aurais appris quelque chose aujourd'hui :jap:  
 
Et on peut même utiliser le ORDER BY :ouch:

Reply

Marsh Posté le 05-01-2003 à 16:55:14    

euh nan le order by tu peux pas logiquement  
 
http://dev.nexen.net/docs/mysql/an [...] ien=delete


---------------
« La boîte du logiciel disait que j'avais besoin de "Windows 95 ou mieux" - alors j'ai acheté un Mac. »
Reply

Marsh Posté le 05-01-2003 à 16:57:35    

J'ai trouvé ca sur mysql.com
( http://www.mysql.com/doc/en/DELETE.html )

Citation :

If an ORDER BY clause is used, the rows will be deleted in that order. This is really only useful in conjunction with LIMIT. For example:  
 
DELETE FROM somelog
WHERE user = 'jcole'
ORDER BY timestamp
LIMIT 1
This will delete the oldest entry (by timestamp) where the row matches the WHERE clause.

edit : zut, c'est depuis mysql 4.0 seulement :(


Message édité par mrbebert le 05-01-2003 à 16:58:35
Reply

Marsh Posté le 05-01-2003 à 17:03:59    

ça risque de faire mal aux serv ceux qui utiliseront le where + l'order by + la limit


---------------
« La boîte du logiciel disait que j'avais besoin de "Windows 95 ou mieux" - alors j'ai acheté un Mac. »
Reply

Marsh Posté le 05-01-2003 à 17:03:59   

Reply

Marsh Posté le 05-01-2003 à 17:08:57    

floleb7 a écrit :

ça risque de faire mal aux serv ceux qui utiliseront le where + l'order by + la limit

Ce sera toujours mieux que ceux qui utiliseront le ORDER BY sans LIMIT :pt1cable:  :D

Reply

Marsh Posté le 05-01-2003 à 18:22:10    

A quoi bon de mettre un LIMIT si l'id est unique ?  :pfff:

Reply

Marsh Posté le 05-01-2003 à 18:39:38    

moi je le mets pr limiter le nombre deffacements meme si je verifie mon $id avant parce que les delete.php?id=16%20or%201=1 et autres, normalement je les controle mais je prefere assurer.

Reply

Marsh Posté le 05-01-2003 à 18:54:32    

Sielfried a écrit :

T'as essayé de faire un echo de $id juste avant d'exécuter la requête ?


Voui, c'est la première des choses à faire :jap:
 
Et sinon, vérifier le coup classique, à savoir mettre $_POST['id'] à la place de $id si register_globals est à off.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed