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 :

delete par lien


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 45
    Points
    45
    Par défaut delete par lien
    salut tout le monde


    j'aurais une question portant sur le delete dans la base.

    je veux pouvoir supprimer tous les devis d'un client(les devis étant en fait situés dans ma table commandes)

    mais ça ne supprime pas! des que je clique sur le lien de supprimer tous les devis, "page web non trouvé"... alors voila mon script pour ceux qui voudront bien prendre 5 minutes de leur temps

    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 session_start();
    require "conf.php";
    ?>
     
    mysql_connect("localhost", "root","");
    mysql_select_db("aviatec");
     
    if(isset($_GET['allsupprim']))
    {
    mysql_query("DELETE FROM commandes WHERE id_membre=". $_GET['allsupprim']);
    }
     
     
    $requete=mysql_query("Select * from commandes where id_membre ='".$_GET['devis']."'");
    if(mysql_num_rows($requete)!=0)
    {
    ?>
    <a href="infos_commmande.php?allsupprim=<?php echo $_GET['devis']; ?>"onClick="return confirm('Etes vous sûr de vouloir effectuer cette action?');">supprimer tous les devis</a><?
    while( $req=mysql_fetch_array($requete) )
    {
        //je realise mon script
    $id_commande =  $req['id'];
    $id_id_commande = $req['id_membre'];
    $date_commande = $req['date'];
    $heure_commande = $req['heure'];
    //$designation_commande = $req['designation'];
    //$qte_commande = $req['qte'];
     
    }?>
    <a  href="memberlist.php"><< Retour liste membres</a><?php	
    }
    else
    {
    ?>
     ce client n'a pas encore envoyé de devis<br><br><a  href="memberlist.php"><< Retour liste membres</a>
     <?php
    }
     
    ?>
    </body>
    </html>
    il faut savoir que $_GET['devis'] est le résultat du lien
    <a href="infos_commande.php?devis=<?php echo $id; ?>">
    ou $id est l'id du membre

    une solution?

  2. #2
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="infos_commmande.php?allsupprim=<?php echo $_GET['devis']; ?>"onClick="return confirm('Etes vous sûr de vouloir effectuer cette action?');">supprimer tous les devis</a>
    infos_commande.php plutôt non ?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 45
    Points
    45
    Par défaut
    bah...c est ce que j ai mis non?

    <a href="infos_commmande.php?allsupprim=<?php echo $_GET['devis']; ?>"onClick="return confirm('Etes vous sûr de vouloir effectuer cette action?');">supprimer tous les devis</a>

  4. #4
    Membre chevronné

    Homme Profil pro
    .
    Inscrit en
    Janvier 2006
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Janvier 2006
    Messages : 703
    Points : 1 950
    Points
    1 950
    Par défaut
    Et si tu essayes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql = "DELETE FROM commandes WHERE id_membre=". $_GET['allsupprim'];
    echo $sql;
    et que tu exécute ça dans phpMyAdmin? est-ce que ça marche?

    Sinon je te conseillerais de protéger $_GET['allsupprim'], vérifier que c'est bien un entier et l'échapper. C'est une énorme faille de sécu que tu as là ^^

  5. #5
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Tu as dit ça :

    <a href="infos_commande.php?devis=<?php echo $id; ?>">
    Alors que dans ton code, tu fais appel à une page infos_commmande.php ...

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 45
    Points
    45
    Par défaut
    merci aquanum pour tes conseils de securite


    mais heuuu...je vois toujours pas ce que Chengj veut me dire

  7. #7
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Bah "page web non trouvé", ça veut tout dire. Tu pointes sur une page inexistante x).

    Et si tu remplaçais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="infos_commmande.php?allsupprim=<?php echo $_GET['devis']; ?>
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="infos_commande.php?allsupprim=<?php echo $_GET['devis']; ?>
    ?

  8. #8
    Membre chevronné

    Homme Profil pro
    .
    Inscrit en
    Janvier 2006
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Janvier 2006
    Messages : 703
    Points : 1 950
    Points
    1 950
    Par défaut
    Chengj se réfère à la fin de ton message où tu dis:
    il faut savoir que $_GET['devis'] est le resultat du lien
    <a href="infos_commande.php?devis=<?php echo $id; ?>">
    ou $id est l'id du membre

  9. #9
    Membre chevronné

    Homme Profil pro
    .
    Inscrit en
    Janvier 2006
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Janvier 2006
    Messages : 703
    Points : 1 950
    Points
    1 950
    Par défaut
    Ah oui en effet, commande avec 3 m ^_^ ... normal que ça ne marche pas *siffle*

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 45
    Points
    45
    Par défaut
    ...

    ...


    merci! j'avais pas vu les 3 m


    par contre maintenant j'ai un message d'erreur...


    Notice: Undefined index: devis in C:\Program Files\EasyPHP 2.0b1\www\panierachat\exemplepanier\admin\infos_commande.php on line 35

    et a la ligne 35 y a:
    $requete=mysql_query("Select * from commandes where id_membre ='".$_GET['devis']."'");

  11. #11
    Membre chevronné

    Homme Profil pro
    .
    Inscrit en
    Janvier 2006
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Janvier 2006
    Messages : 703
    Points : 1 950
    Points
    1 950
    Par défaut
    Déjà tu n'as pas besoin de mettre de ' autour de $_GET['devis'] c'est un entier.
    Et ensuite $_GET['devis'] ne semble pas exister.
    Fais un echo $_GET['devis']; pour en avoir le coeur net. Et si rien ne s'affiche il faut regarder plus en amont.

  12. #12
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Il faudrait peut-être ajouter "devis" en paramètre sur ton lien de suppression, non ? ^^

  13. #13
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    C'est normal en fait, car tu ne vérifies pas sir $_GET["devis"] est défini.

    Donc il va effectuer une suppression et vouloir ensuite afficher le reste de la page. Rajoute une condition isset($_GET["devis"]) avant ta requête comme ceci :

    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
     
    if( isset($_GET["devis"]) ) {
    $requete=mysql_query("Select * from commandes where id_membre ='".$_GET['devis']."'");
    if(mysql_num_rows($requete)!=0)
    {
    ?>
    <a href="infos_commmande.php?allsupprim=<?php echo $_GET['devis']; ?>"onClick="return confirm('Etes vous sûr de vouloir effectuer cette action?');">supprimer tous les devis</a><?
    while( $req=mysql_fetch_array($requete) )
    {
    //je realise mon script
    $id_commande = $req['id'];
    $id_id_commande = $req['id_membre'];
    $date_commande = $req['date'];
    $heure_commande = $req['heure'];
    //$designation_commande = $req['designation'];
    //$qte_commande = $req['qte'];
     
    }?>
    <a href="memberlist.php"><< Retour liste membres</a><?php
    }
    else
    {
    ?>
    ce client n'a pas encore envoyé de devis<br><br><a href="memberlist.php"><< Retour liste membres</a>
    <?php
    }
    }

  14. #14
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 45
    Points
    45
    Par défaut
    je sais que $_GET['devis'] existe car dans mon script complet je peux effacer devis par devis(un par un) et ce code marche. Etant donné que là aussi j'utilise $_GET['devis'] je sais que ça marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="infos_commande.php?supprimer=<?php echo $id_commande; ?>" onClick="return confirm('Etes vous sûr de vouloir effectuer cette action?');">Supprimer le devis</a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if (isset($_GET['supprimer']))
    {	
    	$recherche = mysql_query ("SELECT * FROM membre ORDER BY id");
    $var = mysql_fetch_array ($recherche); 
    	$id = $var['id'];
    $requete=mysql_query("Select * from commandes where id_membre =".$id);
    $req=mysql_fetch_array($requete);
    $id_commande =  $req['id'];
     
    	mysql_query('DELETE FROM article_commande WHERE id_commandes='.$id_commande);
     
    	 mysql_query('DELETE FROM commandes WHERE id='. $_GET['supprimer']);
    	echo'<a href="memberlist.php">retour</a>';	
    }

  15. #15
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Tu sais que ca marche ? Tu sais que tu utilises $_GET["devis"] ? Bon, lis un peu ce qu'on écrit...

    Tu n'as pas de $_GET["devis"] . Le code que tu viens de mettre ne fait que prouver ce que NOUS disons...

  16. #16
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Vu que tu retournes sur la même page, ne serait-il pas judicieux de faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="infos_commande.php?supprimer=<?php echo $id_commande; ?>&amp;devis=<?php echo $id; ?>" onClick="return confirm('Etes vous sûr de vouloir effectuer cette action?');">Supprimer le devis</a>
    ?

    J'ai mis $id par défaut, à toi remplacer la bonne variable.

  17. #17
    Membre chevronné

    Homme Profil pro
    .
    Inscrit en
    Janvier 2006
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Janvier 2006
    Messages : 703
    Points : 1 950
    Points
    1 950
    Par défaut
    En effet, "Undefined index: devis" veut dire que devis n'est pas défini et que le script n'arrive pas à trouver l'index devis dans le tableau $_GET. Donc $_GET["devis"] n'existe pas.

    Fais ce que darkstar123456 et Chengj te disent et ça marchera

  18. #18
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 45
    Points
    45
    Par défaut
    MERCI




    CA MARCHE



    merci beaucoup de vos nombreux conseils:une fois rassemblés,ils forment un coktail explosifs

    encore merci tout marche!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changement d'images avec onclick ou par lien
    Par zubaran dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/07/2006, 22h09
  2. delete par ordre d' id
    Par speedylol dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/07/2006, 20h55
  3. Réponses: 10
    Dernier message: 28/02/2006, 21h21
  4. passer d'une cellule d'un tableau a une autre par lien hyper
    Par jack_1981 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 28/12/2005, 14h53
  5. Ouvrir un fichier Excel par lien Hypertexte
    Par illight dans le forum Access
    Réponses: 4
    Dernier message: 27/10/2005, 15h42

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