effacer un utilisater

Eléphant du PHP | 161 Messages

12 juin 2016, 12:41

Salut a tous j'ai fais un formular pour efface le utilisateur , et en suite j'ai ecris un code php qui est ci dessous qui lorsqu'on devrait entre le nom d'un utilisateur qu'on aimerai efface et en cliquant sur Delete , son nom devrait etre efface de la base de donnee malheurensement ce ne marche pas ,quelqu'un peut il me dire ce qui ne marche pas?
Merci bien
<?php
         if(isset($_POST['delete'])) {
            define('DB_HOST', 'localhost');
            define('DB_NAME', 'kantteile');
            define('DB_USER','root');
            define('DB_PASSWORD','');
            $con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
            $db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
            
            if(! $con ) {
               die('Could not connect: ' . mysql_error());
            }
				
            $emp_id = $_POST['UserNameID'];
            
            $sql = "DELETE FROM username WHERE  'username' , 'UserNameID' = '' " ;
            mysql_select_db('kantteile');
            $retval = mysql_query( $sql, $con );
            
            if(! $retval ) {
               die('les donees ne peuvent pas etre efface: ' . mysql_error());
            }
            
            echo "les donnees ont ete efface\n";
            
            mysql_close($con);
         }else {
}

Mammouth du PHP | 2703 Messages

12 juin 2016, 12:49

$sql = "DELETE FROM username WHERE 'username' , 'UserNameID' = '' " ;
cela ne donne pas une requete sql valide, encore moins une requete qui va supprimer un utulisateur par son nom.
il faut donc commencer par trouver la syntaxe correcte dans phpmyadmin.

Eléphant du PHP | 161 Messages

12 juin 2016, 12:57

Merci bien de ta reponse je ne sais pas si c'est moi qui ne comprend pas bien, dans phpmyadmin lorsque j'essaye de vouloir efface un utilisateur, se trouvant dans ma base de donnee phpmyadmin ecrit ceci en rouge
DELETE FROM username WHERE  'username' , 'UserNameID' = 4 ;
lorsqu'il sagit de l'utilisater avec le UserNameId =4

Mammouth du PHP | 1967 Messages

13 juin 2016, 10:12

Un point à la place de la virgule ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 juin 2016, 11:08

salut
DELETE FROM username WHERE  'username' , 'UserNameID' = 4 ;
ceci n'est pas du sql valide c'est normal qu'il y ai une erreur.
le prédicat (where) doit contenir des couples champ / valeur. De plus la séparation des conditions doit être un opérateur logique (et, ou etc).

en clair ta requête devrait être dans ce style
DELETE FROM username WHERE  UserNameID = 4 ;
en supposant que UserNameID soit une colonne de la table username (de préférence la clef primaire).

je pense que le nom de la table n'est top il devrait plutôt être user / utilisateur / etc.
@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 161 Messages

13 juin 2016, 11:09

meme avec le point, la requete n'est pas effectuée

Eléphant du PHP | 161 Messages

13 juin 2016, 12:55

merci bien malheureusement ca na marche pas

Eléphant du PHP | 161 Messages

13 juin 2016, 13:03

Salut Moderateur,
lorsque je supprime dans mon tableau un utilisateur , phpmyadmin me revois cela

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 juin 2016, 14:25

Salut Moderateur,
il m'arrive d'être humble tu peu utiliser mon pseudo ;))

lorsque je supprime dans mon tableau un utilisateur , phpmyadmin me revois cela
je reste sur ma faim :)

Pour avancer :
qu'elle est la structure de la table ? (je veux le create table que tu as utilisé).


c'est quoi l'erreur que t'indique php myadmin ?

et après on verra comment faire en php ;)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 161 Messages

13 juin 2016, 14:46

salut Moogli,
voici a quoi resemble mon tableau

UserNameID userName pass
1 Nouem1 2016
2 Nouem2 2017
3 Nouem3 2020
4 Nouem4 2021

et j'ai fais un fomulaire dans le quel, j'aimerai qu 'on entre le username de l'utilisateur donc on aimerai efface et que cela ait effet sur mon tableau
malheureusement ca ne me reussi pas.

et lorsque j'essaye manuellement de le faire phpmyadmin me renvoi la requete plus haut c'est la raison pour laquel j'ai ecris cela dans mon code.
mais j'aimerai que cela puisse fonctionner sur tout utilisateur donc on aimerrai efface de la base de donnee.
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 juin 2016, 15:09

salut,

La requête que je t'ai fournit est correcte
DELETE FROM username WHERE  UserNameID = 4 ;
tu peux aussi utiliser le nom
DELETE FROM username WHERE  userName = 'xxx' ;
suivant ce que tu préfères.

La requête tu la construit "dynamiquement" en concaténant ce qu'il y a dans le formulaire avec le début de la requête
par exemple
<?php
$sql = 'DELETE FROM username WHERE  UserNameID = '.$_POST['UserNameID'];
Prends pas le code tel quel c'est sensible à un injection sql !

Pour info : il ne faut plus utiliser l'extension mysql, mais l'extension mysqli http://php/net/mysqli

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 161 Messages

13 juin 2016, 16:01

malheureusement, meme dynamiquement ca ne marche pas.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 juin 2016, 16:32

quel est ton code ?

je ne le ferais pas pour toi.
tu as déjà la requête sql.
as tu une erreur ?
as tu affiché la requête construite pou la tester ensuite ?
est ce que tu test le retour de mysql_query ? (si false utilise mysl_error).

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 161 Messages

13 juin 2016, 16:43

tu vois bien que j'ai deja eu a faire quelque chose, tu peus voire mon cote plus , mais il s'avere que j'ai un probleme c'est la raioson pour laquel j'ai expose mon probleme ici.

Eléphant du PHP | 161 Messages

14 juin 2016, 08:43

Moogli comme dit j'espere que ma reponse ne ta pas irrite, car comme dit je me donne de la peine avant de pose mon probleme.