IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème de delete


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 5
    Par défaut Problème de delete
    Bonjour,
    Voici mon problème :
    Je veux effacer un enregistrement dans une table tous simplement mais ça ne fonctionne pas et je n'ai pas de message d'erreur. Je code en PHP/HTML.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    // On protège la variable "modifier" pour éviter une faille SQL
     
    if (isset($_GET['modifier'])) // Si on demande de supprimer un timbre
    {
    	//connection
    	mysql_connect("localhost", "root", "") or exit (mysql_error()); 
    	mysql_select_db("variablefrance") or exit (mysql_error());
    	$sql  = mysql_query("SELECT max(id_var) FROM variablefrance")or exit (mysql_error());
    	WHILE($var1=mysql_fetch_array($sql))
    	{
    		$idvar_max = $var1[0];//idmax enregistrer dans la table variablefrance
    	}
     
    	$retour = mysql_query("SELECT annee, pays FROM variablefrance WHERE id_var='$idvar_max'") or exit (mysql_error());
    	WHILE($var2 = mysql_fetch_array($retour))
    	{
    		$annee = $var2[0];
    		$pays = $var2[1];
    	}
    	mysql_close();
    	mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
    	//connection à la base de donnée du pays
    	mysql_select_db("$pays") or exit (mysql_error());
    	$_GET['modifier'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier']));
    	$num_yt = $_GET['modifier'];
    	$retour = mysql_query("SELECT Num_Yvert_et_Tellier FROM `$annee` WHERE Num_Yvert_et_Tellier='$num_YT'") or exit (mysql_error());
    	/*WHILE($var2 = mysql_fetch_array($retour))
    	{
    		$num_YT = $var2[0];
    	}*/
    	// On place toutes les variables dans des variables simples
    	$num_YT = stripslashes($var2['num_yt']);
    	$delette = mysql_query ("DELETE FROM `$annee` WHERE Num_Yvert_et_Tellier ='$num_YT'") or die(mysql_error());//probleme voir msg ie 
    	//$delette = mysql_query ("DELETE FROM `1871` WHERE Num_Yvert_et_Tellier = '".$num_YT."') or die(mysql_error());//probleme voir msg ie 
    	echo $delette;
    	//if ($delette) echo "Sup effectué";
    	//else echo "sup impossible";
    	//echo "Suppression effectué avec succès";
    	//require("france.php");
    }
    Ma commande delete ne fonctionne pas alors que dans le code suivant ça fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
    // On protège la variable "modifier" pour éviter une faille SQL
    if (isset($_GET['modifier'])) // Si on demande de supprimer un timbre
    {
     
    	//connection
    	mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
    	//connection à la base de donnée pays pour trouver le continent auquel appartient le pays saisie
    	mysql_select_db("variable") or exit (mysql_error());
    	$sql  = mysql_query("SELECT max(id_var) FROM variable")or exit (mysql_error());
    	WHILE($var1=mysql_fetch_array($sql))
    		{
    			$idvar_max = $var1[0];//continent enregistrer dans la table variable
    		}
    		$sql2=mysql_query("SELECT continent FROM VARIABLE WHERE id_var='$idvar_max'")or exit (mysql_error());
    		WHILE($var1=mysql_fetch_array($sql2))
    		{
    			$continent = $var1[0];//continent enregistrer dans la table variable
    		}
     
    		$result = mysql_num_rows($sql);
    		IF($result == 1)
    		{
    			$sql2=mysql_query("SELECT pays FROM VARIABLE WHERE continent='$continent'")or exit (mysql_error());
    			WHILE($var1=mysql_fetch_array($sql2))
    			{
    				$pays = $var1[0];//pays enregistrer dans la table variable
    			}
    		}		
     
    	mysql_close();
    	mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
    	//connection à la base de donnée pays pour trouver le continent auquel appartient le pays saisie
    	mysql_select_db("$continent") or exit (mysql_error());
    	$_GET['modifier'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier']));
    	$id_timbre = $_GET['modifier'];
    	// On récupère les infos du timbre correspondant
    	$retour = mysql_query("SELECT id_timbre FROM `$pays` WHERE id_timbre=".$id_timbre."") or exit (mysql_error());
    	$donnees = mysql_fetch_array($retour);
    	// On place toutes les variables dans des variables simples
    	$id_timbre = stripslashes($donnees['id_timbre']);
    	$delete=mysql_query ("Delete from `$pays` where id_timbre='$id_timbre'") or die(mysql_error());
    	echo "Suppression effectuée avec succès";
    	require("recherche.php");
    Merci par avance pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton traitement est inutilement compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT annee, pays FROM variablefrance 
    ORDER BY id_var DESC LIMIT 1
    Il est de plus absurde de connecter/reconnecter à la base à chaque requête.

    Tu as un $var2 qui n'est pas défini et sur lequel tu utilises stripslashes() inutilement.

    de même ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_GET['modifier'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier']));
    	$num_yt = $_GET['modifier'];
    ton htmlspecialchars est au mieux inutile, au pire néfaste ; et pourquoi ne pas écrire ça en une seule étape ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Problème de delete d'une ligne Excel
    Par Charlie47 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/08/2006, 15h55
  2. Problème RunSql Delete
    Par lito74 dans le forum Access
    Réponses: 5
    Dernier message: 29/05/2006, 14h13
  3. [version 8.1] problème de delete massif
    Par XPierrot dans le forum DB2
    Réponses: 6
    Dernier message: 12/01/2006, 17h01
  4. [VB]problème avec DELETE
    Par jogu dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/01/2006, 11h53
  5. Problème de DELETE
    Par WinZy dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2005, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo