Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1301 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  supprimer enregistrement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

supprimer enregistrement

n°1068462
machineths
Posté le 02-05-2005 à 10:24:11  profilanswer
 

Bonjour
J'aimerais supprimer un enregistrement sur l'action d'un bouton
 
donc j'ai fais
 
<INPUT TYPE="BUTTON" VALUE="Supprimer" onClick="<?php  
mysql_select_db("base de données" );
$query = "DELETE FROM table where condition;
$result = mysql_query($query);
?>" >
 
je suis déjà connecté à la base de données plus haut dans mon code
 
mais bon ca marche pas ...
si quelqu'un pourrait m'aider

mood
Publicité
Posté le 02-05-2005 à 10:24:11  profilanswer
 

n°1068466
skeye
Posté le 02-05-2005 à 10:26:17  profilanswer
 

Tu n'as rien compris au fonctionnement de php. Et ce n'est pas une question sql.
 
Le php est exécuté par le serveur, et tu essaies d'exécuter du code php sur un onclick, qui est un événement géré par le client. Tu dois mettre ta suppression php dans une autre page, et envoyer sur cette page.


---------------
Can't buy what I want because it's free -
n°1068472
machineths
Posté le 02-05-2005 à 10:29:46  profilanswer
 

ok, je vais essayé

n°1068743
machineths
Posté le 02-05-2005 à 14:05:06  profilanswer
 

J'ai réussi à supprimer les enregistrements sur une autre page
 
mysql_select_db("base de données" );
$query = "DELETE from table where condition";
$result = mysql_query($query);
 
Mais j'aimerais supprimer seulement le dernier enregistrement
 
Dans ma table, j'ai la clée qui est incrémentée en auto
j'aimerais donc supprimer la ligne avec la clée la plus grande en respectant les condition du where
 
comment je pourrais faire
j'ai essayé
DELETE from table where cle=(select max(cle))
mais ca ne fonctionne pas

n°1068749
Friday Mon​day
Trop de hérissons écrasés...
Posté le 02-05-2005 à 14:10:57  profilanswer
 

machineths a écrit :


DELETE from table where cle=(select max(cle))
mais ca ne fonctionne pas


 
"select max(cle) from table" peut être ?
 
Ca sert de lire la doc.

n°1068753
machineths
Posté le 02-05-2005 à 14:13:34  profilanswer
 

non j'ai essayé aussi, ca ne fonctionne pas

n°1068757
Friday Mon​day
Trop de hérissons écrasés...
Posté le 02-05-2005 à 14:17:14  profilanswer
 

Si tu avais parcouru, ne serait-ce qu'une seule fois, une doc SQL, tu saurais que "table" est un mot reservé  :D

n°1068762
skeye
Posté le 02-05-2005 à 14:18:32  profilanswer
 

machineths a écrit :

non j'ai essayé aussi, ca ne fonctionne pas


quelle est l'erreur?


---------------
Can't buy what I want because it's free -
n°1068763
machineths
Posté le 02-05-2005 à 14:19:18  profilanswer
 

oui je sais quand même
j'ai un nom pour la table, et j'ai un nom pour ma base de données aussi

n°1068773
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-05-2005 à 14:28:51  profilanswer
 

machineths a écrit :


j'ai essayé
DELETE from table where cle=(select max(cle))
mais ca ne fonctionne pas


faudrait voir à apprendre le SQL en plus du PHP mon grand hein !
déjà faire une sous requete pour ça, c'est n'importe quoi, mais si tu y tiens vraiment, t'as pas l'impression d'avoir oublié la clause FROM dans ta sous requete ?
en plus, c'est pas "cle = (...)", mais "cle IN (...)"


Message édité par Harkonnen le 02-05-2005 à 14:29:46

---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 02-05-2005 à 14:28:51  profilanswer
 

n°1068775
Friday Mon​day
Trop de hérissons écrasés...
Posté le 02-05-2005 à 14:29:40  profilanswer
 

skeye a écrit :

quelle est l'erreur?


Je mise sur "Erreur 500"  :whistle:  
 
Plus sérieusement, si c'est du mysql, ça doit être la 1093.

n°1068780
skeye
Posté le 02-05-2005 à 14:31:28  profilanswer
 

Friday Monday a écrit :

Je mise sur "Erreur 500"  :whistle:  
 
Plus sérieusement, si c'est du mysql, ça doit être la 1093.


 
 

Citation :


$oerr ora 1093
01093, 00000, "ALTER DATABASE CLOSE only permitted with no sessions connected"
// *Cause:  There is at least one more session other than the current one
//         logged into the instance.  ALTER DATABASE CLOSE is not permitted.
// *Action: Find the other sessions and log them out and resubmit the command


 
Je crains que tu confondes SQL et mysql...[:petrus75]
Je veux un message, pas un numéro à la con.:o


---------------
Can't buy what I want because it's free -
n°1068784
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-05-2005 à 14:32:19  profilanswer
 

bordayl, mais vous voyez pas que c'est le IN qui cloche ? [:mlc]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1068792
skeye
Posté le 02-05-2005 à 14:33:33  profilanswer
 

Harkonnen a écrit :

bordayl, mais vous voyez pas que c'est le IN qui cloche ? [:mlc]


 
Ben non, yen a pas.[:petrus75]
(et j'aurais bien voulu lui faire écrire le message d'erreur, histoire qu'il trouve tout seul...[:petrus75])


---------------
Can't buy what I want because it's free -
n°1068795
Friday Mon​day
Trop de hérissons écrasés...
Posté le 02-05-2005 à 14:34:47  profilanswer
 

Harkonnen a écrit :

bordayl, mais vous voyez pas que c'est le IN qui cloche ? [:mlc]


 
Perso, j'utilise pas IN dans ces cas là mais plutôt un delete from maTable order by cle desc limit 1 (en esperant qu'il y ait un index sur cle :D)

n°1068797
skeye
Posté le 02-05-2005 à 14:35:35  profilanswer
 

Friday Monday a écrit :

Perso, j'utilise pas IN dans ces cas là mais plutôt un delete from maTable order by cle desc limit 1 (en esperant qu'il y ait un index sur cle :D)


 
Ce qui confirme que tu utilises exclusivement mysql.[:petrus75]
Et c'est très très mal de faire comme ça.:o


Message édité par skeye le 02-05-2005 à 14:35:44

---------------
Can't buy what I want because it's free -
n°1068799
Friday Mon​day
Trop de hérissons écrasés...
Posté le 02-05-2005 à 14:35:53  profilanswer
 

skeye a écrit :


Je crains que tu confondes SQL et mysql...[:petrus75]
Je veux un message, pas un numéro à la con.:o


 
Et moi je crains que tu ne saches pas lire puisque tu me sors la doc d'oracle alors que j'ai mis la clause "si c'est du mysql"

n°1068801
machineths
Posté le 02-05-2005 à 14:36:25  profilanswer
 

voila le code complet pour ce delete
 
$query = "DELETE from pi where cause_pi IS NULL AND num_pi IN 'SELECT MAX(num_pi) FROM pi'";
$result = mysql_query($query);
 
je n'ai pas d'erreur, mais l'enregistrement n'est pas supprimé

n°1068802
skeye
Posté le 02-05-2005 à 14:36:46  profilanswer
 

Friday Monday a écrit :

Et moi je crains que tu ne saches pas lire puisque tu me sors la doc d'oracle alors que j'ai mis la clause "si c'est du mysql"


 
[:hide]
Effectivement, j'ai lu un peu vite...[:moule_bite]
Mais présumer du sgbd c'est mal.:o


---------------
Can't buy what I want because it's free -
n°1068807
skeye
Posté le 02-05-2005 à 14:38:18  profilanswer
 

machineths a écrit :

voila le code complet pour ce delete
 
$query = "DELETE from pi where cause_pi IS NULL AND num_pi IN 'SELECT MAX(num_pi) FROM pi'";
$result = mysql_query($query);
 
je n'ai pas d'erreur, mais l'enregistrement n'est pas supprimé


 
essaie d'ajouter ça, tu l'auras ton erreur.:o
 

Code :
  1. if(!$result){
  2. echo mysql_error();
  3. }


 
Et depuis quand on met une sous-requete entre quotes??


---------------
Can't buy what I want because it's free -
n°1068812
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-05-2005 à 14:40:00  profilanswer
 

machineths a écrit :

voila le code complet pour ce delete
 
$query = "DELETE from pi where cause_pi IS NULL AND num_pi IN 'SELECT MAX(num_pi) FROM pi'";
$result = mysql_query($query);
 
je n'ai pas d'erreur, mais l'enregistrement n'est pas supprimé


 [:atog]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1068813
skeye
Posté le 02-05-2005 à 14:40:17  profilanswer
 


[:ddr555]


---------------
Can't buy what I want because it's free -
n°1068817
Friday Mon​day
Trop de hérissons écrasés...
Posté le 02-05-2005 à 14:41:52  profilanswer
 

skeye a écrit :

Et c'est très très mal de faire comme ça.:o


 
C'est nettement mieux qu'une sous-requete (surtout sur mysql)
Mais je suis d'accord avec toi que c'est le mal incarné au niveau accès concurrentiels.

n°1068838
machineths
Posté le 02-05-2005 à 14:51:26  profilanswer
 

$query = "DELETE from pi where num_pi IN (SELECT MAX(num_pi) FROM pi) AND cause_pi IS NULL";

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  supprimer enregistrement

 

Sujets relatifs
Enregistrement dun objet BitSetempêcher l'enregistrement d'une image
supprimer les vides dans un tableaucontrole enregistrement existant sous access
Enregistrement de macroshéritage : ajouter et supprimer des objets
supprimer des lignes d'une feuille contenant des valeurs[SQL] cmt supprimer/modifier un enregistrement d'un table ?
[COBOL] Comment supprimer un enregistrement RRDS VSAM???[VB] Comment supprimer un enregistrement d'une BDD ??
Plus de sujets relatifs à : supprimer enregistrement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR