> 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
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
793,99 €Robot tondeuse connectée Bosch Indego S+ 500 m² à 793,99 €
Valable jusqu'au 18 Mai

Amazon Espagne fait une belle promotion sur le robot tondeuse connectée Bosch Indego S+ 500 m² qui passe à 793,99 € au lieu de 900 € ailleurs. Ce robot offre une capacité de tonte capacité de surface de tonte de 500 m² (±20%). Quand sa batterie est déchargée, la tondeuse robot va se recharger toute seule à sa station de charge. Le câble périphérique délimite la zone de tonte et est très facile à installer. Après avoir cartographié la pelouse, l’Indego propose un calendrier de tonte adapté à la taille de la pelouse. 

Un câble périphérique de 150 mètres, 200 cavaliers pour l'enterrer et une base sont fournis. Le robot tondeuse peut travailler sur des terrains pentes allant jusqu'à 27%. Enfin, grâce à l'application Bosch, vous pourrez programmer et lancer la tonte où que vous êtes.


> Voir l'offre
333,00 €Tablette 11 pouces Xiaomi Mi Pad 5 (120 Hz, Snapdragon 860, 6Go/128 Go, Android 11) à 333 €
Valable jusqu'au 19 Mai

Amazon propose actuellement l'excellente tablette 11 pouces Xiaomi Mi Pad 5 à 333 € au lieu de 399,99 €. Cette superbe tablette possède un écran 11 pouces IPS WQHD+ (2560x1600 pixels) 120 Hz, un processeur Snapdragon 860 à 8 coeurs, 6 Go de RAM, 128 Go de stockage et tourne sous Android 11. Elle est compatible avec les stylets Xiaomi Smart Pen. 


> 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