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

PHP & Base de données Discussion :

fonction delete mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut fonction delete mysql
    j'ai une page supprimer.php afin de supprimer des message contenu dans ma table message elle se compose ainsi : 1) id 2) id_exp 3) id_des 4) dt pour la date 5 ) titre 6 ) message voila mon souçi et l'erreur que ça me renvoie :Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/renccas/public_html/supprimer.php on line 26

    Warning: Cannot modify header information - headers already sent by (output started at /home/renccas/public_html/supprimer.php:26) in /home/renccas/public_html/supprimer.php on line 31
    et le code de ma page supprimer
    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
    <?php
     
    session_start();  
    // on vérifie toujours qu'il s'agit d'un membre qui est connecté  
     
    if (!isset($_COOKIE['id'])) { 
       // si ce n'est pas le cas, on le redirige vers l'accueil 
       header ('Location: index.php'); 
       exit();  
    }  
     
    // on teste si l'id du message a bien été fourni en argument au script envoyer.php  
    if (!isset($_GET['id']) || empty($_GET['id'])) { 
       header ('Location: membres.php'); 
       exit();  
    }  
    else { 
       $base = mysql_connect ('xxxxx', 'xxxxx', 'xxxxx'); 
       mysql_select_db ('xxxxxx', $base); 
     
         // on prépare une requête SQL permettant de supprimer le message tout en vérifiant qu'il appartient bien au membre qui essaye de le supprimer 
       $sql = 'DELETE FROM message WHERE id_des="'.$_COOKIE['id'].'" AND id="'.$_GET['id'].'"'; 
       // on lance cette requête SQL 
       $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
     
       mysql_free_result($req); 
       mysql_close(); 
     
     
     
       header ('Location: membres.php'); 
       exit();  
    }  
    ?>
    je ne vois vraiment pas d'ou ça viens j'ai beau cherché GOOGLE etc mais je ne trouve pas , est ce que quelqu'un pourrais il m'aider ?

  2. #2
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Par défaut
    est ce que ta requête 'delete' renvoie un résultat? essaie de voir (tu peux afficher le nombre de ligne qu'elle renvoie par exemple ou faire un echo de ta requête)...apres tient nous au courant

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    voila ce qui s'affiche : nombre de lignes affectées par la suppression : 0 enregistrements
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/renccas/public_html/supprimer.php on line 27

    Warning: Cannot modify header information - headers already sent by (output started at /home/renccas/public_html/supprimer.php:25) in /home/renccas/public_html/supprimer.php on line 32
    est ce parce qu'il ne trouve pas le champ indiqués ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Salut,

    pour débogger une requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res = mysql_query($Ta_Requete ) or die ($Ta_Requete . ' : ' . mysql_error ());
    ça va t'afficher la requête après le remplacement des variables par leurs valeurs et le message d'erreur renvoyé par mysql.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    salut billoum j'ai fais comme tu m'a dis et maintenant cela m'affiche ceci :nombre de lignes affectées par la suppression : 0 enregistrements1 : 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 '1' at line 1 ! il me dis de regarder le manuel correspondant mais ????

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    ta requête devrait aussi être affichée.. jette un oeil dessus ça devrait t'aider.. et si ça va tjrs pas poste-la sur le forum

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    en fait le morceau de code que tu m'a passé il faudrais que je le mette ou ? voila ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     // on prépare une requête SQL permettant de supprimer le message tout en vérifiant qu'il appartient bien au membre qui essaye de le supprimer 
       $sql = 'DELETE FROM message WHERE id_des="'.$_COOKIE['id'].'" AND id="'.$_GET['id'].'"'; 
       // on lance cette requête SQL 
       $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
       echo 'nombre de lignes affectées par la suppression : '.mysql_affected_rows().' enregistrements';

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    ça me semble correct.. il ne t'affiche pas la requête à côté du message d'erreur?

  9. #9
    Membre émérite
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 811
    Par défaut
    Bonjour,

    Es-tu sur des valeurs de $_COOKIE['id'] et $_GET['id']? Tu pourrais les afficher avant d'exécuter ta requête. Ou mieux afficher entièrement ta requête et l'essayer avec phpmyadmin.

  10. #10
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    billoum : non il ne m'affiche pas la requete peut etre ai je mal placé ton code ?

    bonjour kabkab : comment ça je ne vois pas bien ce que tu veux me dire ?

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    si tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql = 'DELETE FROM message WHERE id_des="'.$_COOKIE['id'].'" AND id="'.$_GET['id'].'"';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    tu auras affiché à l'écran:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Erreur SQL !
    DELETE FROM ......
    You have an error in your SQL syntax; ......
    Obligatoirement... donc si ça ne le fait pas, il y qlque chose qui m'échappe..


    Normalement ça aurait dû te permettre de vérifier (comme le dis kabkab) que les valeurs $_COOKIE['id'] et $_GET['id'] sont bien correctes.

  12. #12
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    effectivement cela ne m'affiche pas du tout ça mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nombre de lignes affectées par la suppression : 0 enregistrements
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/renccas/public_html/supprimer.php on line 28
     
    Warning: Cannot modify header information - headers already sent by (output started at /home/renccas/public_html/supprimer.php:25) in /home/renccas/public_html/supprimer.php on line 33
    ça pourrais venir de mysql_free_result a votre avis ?

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    holalaaaa, j'avais pas bien lu (pas vu qe l'erreur provenait de mysql_free_result())... une requête DELETE ne te renvoie pas d'id de connexion donc forcément il n'est pas valide....

    si tu enlèves la ligne mysql_free_result() ça devrait aller

  14. #14
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    merçi cela m'enleve bien une erreur mais pas l'autre au niveau de header pense tu qu'il faut que je modifie aussi la redirection ?

  15. #15
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    alors voila en ayant supprimé les 2 plus d'erreur mais le message n'est pas supprimé de plus l'id reconnu dans ma barre d'adresse est le message en lui meme http://renc-cash.com/supprimer.php?i...20et%20toi%20? voiçi le code de ma page modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        // on prépare une requête SQL permettant de supprimer le message tout en vérifiant qu'il appartient bien au membre qui essaye de le supprimer 
       $sql = 'DELETE FROM message WHERE id_des="'.$_COOKIE['id'].'" AND id="'.$_GET['id'].'"'; 
       // on lance cette requête SQL 
       $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
       echo 'nombre de lignes affectées par la suppression : '.mysql_affected_rows().' enregistrements';
     
     
     
       mysql_close();
    je suis désoler de vous embeter avec ça mais je cale vraiment

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    La fonction header te renvoie cette erreur si tu as qlque chose d'affiché sur l'écran donc vérifie que tu n'as aucun caractère et aucun appel à la fonction echo sur cette page


    EDIT: si ton message se retrouve dans la barre d'adresse à la place de l'id, l'erreur doit provenir de la page précédente. Montre comment tu fais cet appel à la page Supprimer.php

  17. #17
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    voila le code de la page lire.php qui fais appel a supprimer.php
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
     
    session_start();  
    // on vérifie toujours qu'il s'agit d'un membre qui est connecté  
    if (!isset($_COOKIE['id'])) { 
       // si ce n'est pas le cas, on le redirige vers l'accueil 
       header ('Location: index.php'); 
       exit();  
    }  
    ?>
     
     
    <html>
    <head>
    <title>messagerie</title>
    </head>
     
    <body>
    <a href="indexc.php">Retour à l'accueil</a><br /><br />
    <?php
     
    // on teste si notre paramètre existe bien et qu'il n'est pas vide  
    if (!isset($_GET['id']) || empty($_GET['id'])) { 
       echo 'Aucun message reconnu.';  
    }  
    else { 
       $base = mysql_connect ('localhost', 'xxxxx', 'xxxxx'); 
       mysql_select_db ('xxxxxx', $base); 
     
       // on prépare une requete SQL selectionnant la date, le titre et l'expediteur du message que l'on souhaite lire, tout en prenant soin de vérifier que le message appartient bien au membre connecté 
    $sql = "SELECT titre, dt, message, inscri.pseudo as id_exp FROM message, inscri WHERE id_des='".$_COOKIE['id']."' AND id_exp=inscri.id AND message='".$_GET['id']."' ";
       // on lance cette requete SQL à MySQL 
       $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
       $nb = mysql_num_rows($req); 
     
       if ($nb == 0) { 
          echo 'Aucun message reconnu.'; 
       } 
       else { 
          // si le message a été trouvé, on l'affiche 
          $data = mysql_fetch_array($req); 
          echo $data['dt'] , ' - ' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['exp']))) , ' ]<br /><br />'; 
          echo nl2br(stripslashes(htmlentities(trim($data['message'])))); 
     
          // on affiche également un lien permettant de supprimer ce message de la boite de réception 
          echo '<br /><br /><a href="supprimer.php?id=' , $_GET['id'] , '">Supprimer ce message</a>'; 
       } 
       mysql_free_result($req); 
       mysql_close();  
    }  
    ?>
     
    <br /><br /><a href="deconn.php">Déconnexion</a>
    </body>
    </html>
    mais l'id de ma barre d'adresse est pareil pense tu que ça vienne encore d'autre part ?

  18. #18
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Désolé mais comme ça je ne vois pas.. Essaie de faire des echo de cette valeur tout le long du process pour voir à partir de quand elle devient fausse..

  19. #19
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    c'est pas grave , je vais faire comme tu me dis ! mais merçi quand meme c'est cool

  20. #20
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut, je suis un peu curieux, j´aimerais savoir la ou je suis, c´est pour cela que je te demanderais ceci :

    dans supprimer.php

    peux-tu ecrire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        // on prépare une requête SQL permettant de supprimer le message tout en vérifiant qu'il appartient bien au membre qui essaye de le supprimer 
       $sql = 'DELETE FROM message WHERE id_des="'.$_COOKIE['id'].'" AND id="'.$_GET['id'].'"'; 
       // on lance cette requête SQL 
    /*   $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
       echo 'nombre de lignes affectées par la suppression : '.mysql_affected_rows().' enregistrements';
       
     
       
       mysql_close();
    */
    echo $sql;
    la on pourra voir ce qui cloche dans ta requette.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. La fonction Delete
    Par shayologo dans le forum SQLite
    Réponses: 1
    Dernier message: 11/07/2007, 11h38
  2. Fonction ASIN mysql
    Par Nious99 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 04/10/2006, 15h07
  3. Problèmes d'accès aux fonctions de MySQL
    Par lamelfa dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 09/09/2006, 10h16
  4. fonction LIKE Mysql
    Par franfr57 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 30/05/2006, 19h22
  5. Pb de fonction avec mysql
    Par anto48_4 dans le forum SQL Procédural
    Réponses: 12
    Dernier message: 17/03/2006, 14h30

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