> Tous les forums > Forum des Webmasters
 delete base mysql, les droits ??? (RESOLU)
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
t671
  Posté le 26/12/2004 @ 14:56 
Aller en bas de la page 
Astucien
Bonjour, J'ai une base mysql. J'ai commencé à faire un site pour gérer cette base (en local, uniquement, pour l'instant). Ds un menu, je peux choisir de supprimer un élément de la base. Je fais donc une rech de cet élément, qui est affiché, et ensuite je choisi en cliquanrdessus de le supprimer. Mais à ce moment, j'ai ce msg : You don't have permission to access /php/formulaire/DELETE * FROM hdd where nom like HUMBERTAND prenom like Thierry AND date_naissance like 27.12.1963>Suppression</a><td bgcolor= on this server. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.[pleurer] Je me connecte en tant que root sur ma base ....... donc avec ts les droits !!!!???? Qqun peut-il m'aider ???? [smile] Merci

Modifié par t671 le 03/01/2005 13:23
Publicité
STAR*PC
 Posté le 26/12/2004 à 22:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, Il n'y a aucun probleme de droits MySQL ici. Ta requete MySQL ne doit pas se trouver dans un lien comme elle l'est dans ton bout de code ! Tu peux procéder de la sorte : <a href="./action.php?mode=suppression">Suppression</a> un lien vers le fichier qui sera chargé de supprimer les enregistrements. et dans ce fichier [action.php dans mon lien du dessus] (je procede comme si tu utilise le PHP comme language) <?php mysql_connect('', '', ''); //connexion, à completer mysql_select_db(''); //base de donnée, à completer if($HTTP_GET_VARS['mode'] == 'suppression') //si le parametre entré est la suppression, alors ... { mysql_query('DELETE * FROM hdd where nom like HUMBERTAND prenom like Thierry AND date_naissance like 27.12.1963'); //ta requete de suppresion } mysql_close(); //fermeture de la connexion ?> J'espere t'avoir éclairé ... @++

Modifié par STAR*PC le 26/12/2004 22:52
t671
 Posté le 30/12/2004 à 18:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Merci beaucoup STAR*PC pour ton aide. Je répond un peu en retard car très pris cesderniers temps .......!!! J'ai fait ce que tu m'as dit, mais le résultat ne fonctionne pas. Quand je sélectionne (clic) l'élément à supprimer, j'obtient une page blanche (ce qui peut-être normal), mais l'élément est tjrs présent ds ma base. Voici ce que j'ai écrit : 1°) formulaire afficher suite à une recherche sur nom, prénom et datede naissance : // Affichage des résultats dans un tableau. if($total) { // début du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les titres Nom et Prénom dans 3 colonnes echo '<tr>'; echo '<td bgcolor="#669999" width="156"><center><b><u>Nom</u></b></td>'; echo '<td bgcolor="#669999" width="200"><b><u>Prénom</u></b></td>'; echo '<td bgcolor="#669999" width="89"><b><u>Né le</u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 3 colonne. while($row = mysql_fetch_array($result)) { echo '<td bgcolor="#CCCCCC" width="156"><a href="./suppression.php?mode=suppression">'.$row['nom'].'</a></td>'; echo '<td bgcolor="#CCCCCC" width="200">'.$row['prenom'].'</td>'; echo '<td bgcolor="#CCCCCC" width="89">'.$row['date_naissance'].'</td>'; echo '</tr>'."\n"; } 2°) Suppression de l'élément après sélection (clic)- suppression.php : <?php // information pour la connection à le DB $host = 'localhost'; $user = 'thhu'; $pass = ''; $db = 'base_gedcom'; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); // suppression if($HTTP_GET_VARS['mode'] == 'suppression') //si le parametre entré est la suppression, alors ... { mysql_query('DELETE * FROM hdd where nom like .$row['nom'].'); } mysql_close(); //fermeture de la connexion ?> J'ai essayé plusieurs manière d'indiquer le $row ds le mysql_query(delete), sans succès. Et comme je t'ai dit, je n'ai pô de msg d'erreur .... !!!??? Tu en penses quoi ?
STAR*PC
 Posté le 30/12/2004 à 18:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, Tout est bon, seulement la variable $row n'est pas définie dans le fichier suppression.php ! Donc il te faut trouver une alternative en passant des parametres en URL ou dans un formulaire. Moi j'aurais crée une autre colonne dans ta table, afin de définir chaque enregistrement par un numéro. Il suffit ensuite de passer ce numéro dans l'URL, de le récuperer dans le fichier de suppression ... Dans ton cas, tu peux faire avec le nom+prénom mais attention certains caractères peuvent etre problématiques. Ca ferais donc : 1°) formulaire afficher suite à une recherche sur nom, prénom et datede naissance : // Affichage des résultats dans un tableau. if($total) { // début du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les titres Nom et Prénom dans 3 colonnes echo '<tr>'; echo '<td bgcolor="#669999" width="156"><center><b><u>Nom</u></b></td>'; echo '<td bgcolor="#669999" width="200"><b><u>Prénom</u></b></td>'; echo '<td bgcolor="#669999" width="89"><b><u>Né le</u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 3 colonne. while($row = mysql_fetch_array($result)) { echo '<td bgcolor="#CCCCCC" width="156"><a href="./suppression.php?nom='.$row['nom'].'&prenom='.$row['prenom'].'">'.$row['nom'].'</a></td>'; echo '<td bgcolor="#CCCCCC" width="200">'.$row['prenom'].'</td>'; echo '<td bgcolor="#CCCCCC" width="89">'.$row['date_naissance'].'</td>'; echo '</tr>'."\n"; } 2°) Suppression de l'élément après sélection (clic)- suppression.php : <?php // information pour la connection à le DB $host = 'localhost'; $user = 'thhu'; $pass = ''; $db = 'base_gedcom'; $nom = $HTTP_GET_VARS['nom']; $prenom = $HTTP_GET_VARS['prenom']; if(!$nom OR !$prenom) // on vérifie que l'on a bien le nom ET le prenom { echo '<b>Erreur:</b> un parametre est manquant, nom ou prenom.'; break; } // connection à la DB mysql_connect ($host,$user,$pass); mysql_select_db($db); // suppression $suppression = mysql_query('DELETE * FROM hdd WHERE nom='.$nom.' AND prenom='.$prenom); if($suppression) { echo '<b>Suppression effectuée</b>'; } else { echo '<b>Erreur:</b> '.mysql_error(); } mysql_close(); //fermeture de la connexion ?> Après tu peux améliorer en protegeant un peu tout ça (vérifications & demandes de confirmations de suppression) ... @++

Modifié par STAR*PC le 30/12/2004 18:35
t671
 Posté le 01/01/2005 à 15:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Bonjour STAR*PC. Et tout d'abord, meilleurs voeux de bonheur à toi, ainsi qu'à toute l'équipe de PC Astuces et à ses adhérents ....!!! Pour en revenir à ma programmation en php, j'ai finalement créer une colonne numéroté en "auto-incrémente" ds ma base mysql. Qui me permettra à repérer mes éléments plus facilement. Et voici ce que j'ai écrit ds mon script : 1) Sélection de l'élément à supprimer : .... <form method="post" action="suppression.php"> <center> <?php // information pour la connection à le DB $host = 'localhost'; $user = 'thhu'; $pass = ''; $db = 'base_gedcom'; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); $nom = $_POST['nom']; $prenom = $_POST['prenom']; // requête SQL qui compte le nombre total d'enregistrements ($total) dans la table et qui //récupère tous les enregistrements + tri ascendant des noms ($select) $select = "SELECT numero,nom,prenom,date_naissance FROM hdd where nom like '$nom' AND prenom like '$prenom%'"; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result); //affichage du nb d'enregistrements trouvés echo '<b>'; echo "Il y a $total individus proposé à la suppression.<br>Faites votre choix\n"; echo '</b><p>'; // Affichage des résultats dans un tableau. if($total) { // début du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les titres Nom et Prénom echo '<tr>'; echo '<td bgcolor="#669999" width="89"><b><u>Numéro</u></b></td>'; echo '<td bgcolor="#669999" width="156"><center><b><u>Nom</u></b></td>'; echo '<td bgcolor="#669999" width="200"><b><u>Prénom</u></b></td>'; echo '<td bgcolor="#669999" width="89"><b><u>Né le</u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats while($row = mysql_fetch_array($result)) { echo '<td bgcolor="#CCCCCC" width="200"><a href="./suppression.php?mode=suppression">'.$row['numero'].'</a></td>'; echo '<td bgcolor="#CCCCCC" width="156">'.$row['nom'].'</td>'; echo '<td bgcolor="#CCCCCC" width="200">'.$row['prenom'].'</td>'; echo '<td bgcolor="#CCCCCC" width="89">'.$row['date_naissance'].'</td>'; echo '</tr>'."\n"; } } mysql_free_result($result); ?> ..... 2) suppression de l'élément (suppression.php) <?php // information pour la connection à la DB $host = 'localhost'; $user = 'thhu'; $pass = ''; $db = 'base_gedcom'; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); $numero = $_POST['numero']; // suppression if($HTTP_GET_VARS['mode'] == 'suppression') //si le parametre entré est la suppression, alors ... mysql_query("DELETE * FROM hdd where numero='$numero'"); if($suppression) { echo '<b>Suppression effectuée</b>'; } else { echo '<b>Erreur:</b> '.mysql_error(); } mysql_close(); //fermeture de la connexion ?> Et avec ceci, j'obient le msg d'erreur : Erreur: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM hdd where numero=''' at line 1 En fait, ma variable $numero ne passe pas d'un programme à l'autre (je l'ai testé pour qu'elle s'affiche, mais rien ne s'affiche ....). Comment pourrais-je faire pour la récupérer ??? Merci !!!!
STAR*PC
 Posté le 01/01/2005 à 15:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, tous mes meilleurs voeux également, En effet la variable numéro ne passe pas, puisque tu ne l'a fait pas passer. Tu as 2 solutions pour la faire passer d'une page à l'autre, - par POST - par URL par post, ça consiste à créer un champ invisible contenant le numéro, ce champ est ensuite envoyer à l'autre page par un bouton POST par URL, simplement passer le numéro dans un parametres dans l'URL. Je pense que c'est ce second cas qui est préférable ici. Donc, voici les modifs : ------------------- echo '<td bgcolor="#CCCCCC" width="200"><a href="./suppression.php?mode=suppression">'.$row['numero'].'</a></td>'; remplacer par : echo '<td bgcolor="#CCCCCC" width="200"><a href="./suppression.php?mode=suppression&numero='.$row['numero'].'">'.$row['numero'].'</a></td>'; ------------------- $numero = $_POST['numero']; remplacer par : $numero = $_GET['numero']; OU $numero = $HTTP_GET_VARS['numero']; (c'est la même chose) ------------------- mysql_query("DELETE * FROM hdd where numero='$numero'"); remplacer par : $suppression = mysql_query("DELETE * FROM hdd where numero='$numero'"); (car après j'ai mis une vérification de la requete (if($suppression) ...) ------------------- Voilà, j'ai pas tout (re)regarder, mais je pense que là ça sera bon ;) @++ Edit: je vois un début de formulaire en haut, je ne vois pas son utilité ici ...

Modifié par STAR*PC le 01/01/2005 15:59
t671
 Posté le 01/01/2005 à 19:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Merci STAR*PC ......... ça fonctionne !!!!!![happy] J'ai justeenlevé l'* dans la requête après le DELETE, et c'est ok !!!!! Merci bcp de m'avoir aidé !!!!!! [cool] Quand tu me parles de formulaire, je suppose que tu fais référence à "<form method="post" action="suppression.php">" ??? Je pensais que cette cmde permettait de passer une donnée d'un prog à un autre .......
STAR*PC
 Posté le 01/01/2005 à 20:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
t671 a écrit :
Quand tu me parles de formulaire, je suppose que tu fais référence à "<form method="post" action="suppression.php">" ??? Je pensais que cette cmde permettait de passer une donnée d'un prog à un autre .......
oui mais dans ton cas, c'est un lien hypertexte qui permet de passer à la page suppression.php ... donc tu peux supprimer la premiere ligne @++
t671
 Posté le 02/01/2005 à 11:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
STAR*PC a écrit :
t671 a écrit :
Quand tu me parles de formulaire, je suppose que tu fais référence à "<form method="post" action="suppression.php">" ??? Je pensais que cette cmde permettait de passer une donnée d'un prog à un autre .......
oui mais dans ton cas, c'est un lien hypertexte qui permet de passer à la page suppression.php ... donc tu peux supprimer la premiere ligne @++
OK !!!! Merci pour tout ........ [clindoeil]
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
75,53 €Webcam Logitech StreamCam à 75,53 € livrée
Valable jusqu'au 18 Mai

Amazon Allemagne fait une promotion sur la Webcam Logitech StreamCam qui passe à 70,58 € (avec la TVA ajustée). Comptez 4,95 € pour la livraison en France soit un total de à 75,53 € livrée. On la trouve ailleurs à partir de 110 €. 

La Logitech StreamCam diffuse et enregistre des vidéos saisissantes et réalistes avec des mouvements fluides et des détails nets en Full HD 1080p à 60 fps. De plus, elle offre la possibilité de passer instantanément en mode portrait afin de filmer en format 16:9. Offrant de nombreuses possibilités, elle est idéale pour filmer sur Twitch, Facebook ou encore Instagram.

Intégrant la reconnaissance faciale pilotée par l'IA, vous obtenez une mise au point et une exposition nettes, quelle que soit votre position. L'exposition automatique est réglée avec précision pour vous montrer sous un jour flatteur dans des conditions d'éclairage variées.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
22,88 €Lecteur/graveur de CD/DVD externe USB 3.0 slim à 22,88 €
Valable jusqu'au 18 Mai

Cdiscount fait une promotion sur le lecteur/graveur de CD/DVD externe USB 3.0 slim qui passe à 22,88 €. Ce graveur vous permettra de lire et graver les CD et DVD sur votre ordinateur qui ne dispose pas de lecteur optique (soit la plupart des portables du marché). Branchez-le simplement sur un port USB de votre PC portable grâce à son câble intégré.


> Voir l'offre
69,99 €Vidéoprojecteur LED Crosstour P970 (FullHD 1080p, 2x5W, HDMI) à 69,99 €
Valable jusqu'au 18 Mai

Cdiscount fait une promotion sur le vidéoprojecteur LED Crosstour P970 qui passe à 69,99 € au lieu de 94,99 €. Le vidéoprojecteur Crosstour P970 offre une résolution native Full HD de 1920*1080P, un contraste de 8000:1 et 240 lumens ANSI. Il prend en charge un écran de 300 pouces maximum, la correction trapézoïdale horizontale et est doté d'une fonction zoom. Il est équipé de deux haut-parleurs 5W. Il possède des ports HDMI/USB/AV/Audio et peut être connecté à divers appareils tels que PC/XBox/PlayStation/Nintendo switch/lecteur flash USB/hauts-parleurs/écouteurs/téléviseur/4k Amazon Firestick/Chromecast/DVD...

Une bonne affaire pour un vidéoprojecteur adapté à un usage occasionnel.


> Voir l'offre

Sujets relatifs
Échec connection base mysql
Créer une base de donnée MySQL
update texte dans base mysql
Mysql sur le nouveau EasyPhp pas de base
test champs base mysql
Accés impossible a ma base mysql
Votre base de donnée Mysql / PostgreSQL
Conexion à une base de donnée mySql via JDBC
Récupérer mot de passe dans base mysql
Wrong parameter count for mysql ==> resolu
Plus de sujets relatifs à delete base mysql, les droits ??? (RESOLU)
 > Tous les forums > Forum Forum des Webmasters