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 :

Message d'erreur SQL mysql_fetch_assoc(): supplied argument is not a valid


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut Message d'erreur SQL mysql_fetch_assoc(): supplied argument is not a valid
    Bonjour,

    J'ai un tableau qui affiche le titre des document. avec un lien modifier ou supprimer.

    Le problème quand je clique sur supprimer j'ai le message d'erreur suivant :
    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\site-pessac\intranet\admin\execrequete.php on line 27
    Voulez vous supprimer ce document:
    Le titre ne s'afiiche pas (il doit s'affiché normalement apres "Voulez vous supprimer ce document:")

    Mais quand je clique sur executer, ça marche bien!

    Apparement l'erreur vient de cette partie de docsimple.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    else if ($_GET['mode']=='SUP')
            {
            $slash_titre = mysql_real_escape_string($_GET['titre']);
           $requete = "DELETE FROM sqp WHERE titre='$slash_titre'";
           // $requete = "SELECT * FROM sqp WHERE titre='$slash_titre'";
            $resultat = ExecRequete($requete,$connexion);
            $titre = LigneSuivante ($resultat);
            //$titre = mysql_fetch_array ($resultat);
            supdocsimple (MODE_SUP, $titre);
     
     
            }
    Mais quand je remplace "DELETE FROM sqp WHERE titre='$slash_titre'" par "SELECT* FROM sqp WHERE titre='$slash_titre'"

    Le titre s'affiche mais la supression ne fonction pas


    Voici les code

    docsimple.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
    <?php
     
    ...
     
    if (!isSet ($_POST['action']) and !isSet ($_GET['mode']))
    {
    //l'execution n'est pas lancé depuis le formuliare
    // ou depuis l'une des ancre créée dans le tableaudocuments()
    // donc ont affiche le tableau document
    tableaudocuments ($connexion);
    // on place un ancre pour ajouter un document
    echo "<a href='docsimple.php?mode=".MODE_INSERTION."'>Ajouter un document</a>\n";
    }
    else
    {
    //traitement des evenement itilisateur receulie pas l'application
        if (isSet($_GET['mode']))
        {
        //on recupère les donnés du document
     
        // formulaire près repli
            if ($_GET['mode']== 'maj')
            {
            $slash_titre = mysql_real_escape_string($_GET['titre']);
            $requete = "SELECT * FROM sqp WHERE titre='$slash_titre'";
            $resultat = ExecRequete($requete,$connexion);
            $titre = LigneSuivante ($resultat);
            ajoutdocsimple (MODE_MAJ, $titre);
            }
            else if ($_GET['mode']=='INSERTION')
            {
            // on affiche un formulaire de saisite vièrge
            ajoutdocsimple (MODE_INSERTION, $NULL_TITRE);
            }
            // formulaire pour suprimer
            else if ($_GET['mode']=='SUP')
            {
            $slash_titre = mysql_real_escape_string($_GET['titre']);
           $requete = "DELETE FROM sqp WHERE titre='$slash_titre'";
           // $requete = "SELECT * FROM sqp WHERE titre='$slash_titre'";
            $resultat = ExecRequete($requete,$connexion);
            $titre = LigneSuivante ($resultat);
            //$titre = mysql_fetch_array ($resultat);
            supdocsimple (MODE_SUP, $titre);
     
     
            }
        }
       ....
         ?>
    supdocsilpme.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
    <?php
     function supdocsimple ($mode, $val_defaut)
    {
    $def= $val_defaut['titre'];
     echo "<table class=none>"
     ."<FORM  ACTION=docsimple.php METHOD=POST><p>"
      ."<INPUT TYPE=HIDDEN NAME='mode' VALUE=$mode>";
     
      if ($mode=='SUP')  
     
      {
      echo "<tr><td><p>Voulez vous supprimer ce document: <td><p>$def</p>"
      ."<INPUT TYPE=HIDDEN NAME=titre VALUE='$def'>"
      ."<tr><td> <COLSPAN=2><INPUT TYPE=SUBMIT VALUE='Executer'>"
    ."</FORM></table>";
    }
     
    }
    ?>
    tableaudocument.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
    <?php
     
    // affichage des document selon leur catégorie
    function tableaudocuments ($connexion)
    {
    require_once ('biblio.php');
    //tableau des catégories
    $tableau_categorie=array('MOG','DOC','MAT','MET', 'CONS', 'ECH', 'HSE', 'RHU', 'LOC', 'SCI');
     
    foreach ($tableau_categorie as $categorie)
    {
       $resultat = ExecRequete ("SELECT titre, version, date_modif,nom_fichier FROM sqp WHERE categorie ='$categorie' ORDER BY date_modif DESC", $connexion);
      echo"<center><table class=none width='90%'"
      ."<caption valigne=bottom ><b>Table des documents ".$categorie." <a href='docsimple.php?mode=".MODE_INSERTION."'>Ajouter un document</a></b></caption>"
      ."<tr bgcolor=\""; echo switchcolor(); echo "\"><th bgcolor='#BA3232'><p class='case'>Titre</p>"
      ."</th><th bgcolor='#BA3232'><p class='case'>Indice de Version</p></th><th bgcolor='#BA3232'><p class='case'>Date de modification ou de MAJ</p></th>"
      ."<th bgcolor='#BA3232'><p class='case'>Modification</p></th>"
      ."<th bgcolor='#BA3232'><p class='case'>Supprimer</p></th></tr>\n";
     
     
      while ($document = ObjetSuivant ($resultat))
      {
         // on encode le titre pour le placé dans une URL
        $titreURL = urlEncode ($document->titre);
        $titre = $document->titre;
        $version = $document->version;
        $date_modif = $document->date_modif;
        $nomfichier = $document->nom_fichier;
        $url= "./documentation/$nomfichier";
     
        if ($nomfichier=="")
        {
        echo "<tr bgcolor=\""; echo switchcolor(); echo "\"><td width='50%'><p>$titre</p></td>";
        } 
        else 
        {
        echo "<tr bgcolor=\""; echo switchcolor(); echo "\"><td><a target='_blank' href='$url' width='50%'>$titre</a></td>";
        }
     
        echo "<td width='10%' align='center'><p>$version</p></td>"
        ."<td width='25%'align='center'><p>".transformation_date($date_modif)."</p></td>"
        ."<td width='15%'align='center'><a  href ='docsimple.php?mode=".MODE_MAJ."&titre=$titreURL'> Modifier</a></td>"
        ."<td width='15%'align='center'><a  href ='docsimple.php?mode=".MODE_SUP."&titre=$titreURL'> Supprimer</a></td>\n";
      }
      echo "</table></center>\n";
     
      echo "<br><br>\n";
    	}
    }
    ?>
    Majdoc.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
    <?php
    // fonction de mise a jour ou insertion de la table Docsimple
    function MAJdocsimple ($mode, $doc, $connexion)
    {
      // préparation des variable, en traitant pas addSlashes
      $titre = addSlashes($doc['titre']);
      $categorie = addSlashes($doc['categorie']);
      $version = addSlashes($doc['version']);
      $genre = addSlashes ($doc['genre']);
      $jour_crea = $doc['jour_crea'];
      $mois_crea = $doc['mois_crea'];
      $annee_crea = $doc['annee_crea'];
      $jour_mod = $doc['jour_mod'];
      $mois_mod = $doc['mois_mod'];
      $annee_mod = $doc['annee_mod'];
     
     
    $date_crea= $annee_crea."-".$mois_crea."-".$jour_crea ;
    $date_mod= $annee_mod."-".$mois_mod."-".$jour_mod ;
     
    $fichier = $_FILES['mondoc'];
    $fichiername = $fichier['name'];
     
    if ($mode==MODE_SUP)
      {   
      $requete = "DELETE FROM sqp (titre, categorie, date_creation, date_modif, genre, version, nom_fichier)"
    			." WHERE titre='$titre'"; 
    	}
    	else
      {  
     
        if ($mode==MODE_INSERTION)
        { 
         $requete = "INSERT INTO sqp (titre, categorie, date_creation, date_modif, genre, version, nom_fichier)"
    			. "VALUES ('$titre', '$categorie', '$date_crea', '$date_mod', '$genre', $version,'$fichiername')";
        }
     
        else 
        {
        $requete = "UPDATE sqp SET categorie='$categorie'," 
        ."genre='$genre', date_creation='$date_crea', date_modif='$date_mod', version='$version', nom_fichier ='$fichiername'"
        ." WHERE titre='$titre'";
     
        }
      }
      // exécution de l'ordre
      ExecRequete ($requete, $connexion);
     
     
    }
    ?>
    Execrequete.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
    <?
    // exécuté un requete avec Mysql
     
    function ExecRequete ($requete, $connexion)
    {
    	$resultat= mysql_query ($requete, $connexion);
    	if ($resultat)
    	{
    		return $resultat;
    	}
    	else
    	{
    		echo "<p> Erreur dans l'exécution de la requête " .$requete. "</p>";
    		echo "<p> Message de MysQl ". mysql_error($connexion);
    		exit;
    	}
    }
    // fin de la fonction ExecRequete
    //Recherche l'objet suivant
    function ObjetSuivant($resultat)
    {
    return mysql_fetch_object($resultat);
    }
    // recherche de la ligne suivant
    function LigneSuivante ($resultat)
    {
    return mysql_fetch_assoc($resultat);
    }
    ?>

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    C'est normal un DELETE ne te renvoie pas de ressources comme le fait un SELECT, donc quand tu fais ligne suivante le mysql_fetch_assoc se banane comme l'indique clairement le message d'erreur. Tu as juste à supprimer l'appel à LigneSuivante dans docsimple.php (d'ailleurs je vois pas l'intérêt de cet appel, tu "obtiens" un titre mais tu le connais déjà le titre...).
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par JWhite
    C'est normal un DELETE ne te renvoie pas de ressources comme le fait un SELECT, donc quand tu fais ligne suivante le mysql_fetch_assoc se banane comme l'indique clairement le message d'erreur. Tu as juste à supprimer l'appel à LigneSuivante dans docsimple.php (d'ailleurs je vois pas l'intérêt de cet appel, tu "obtiens" un titre mais tu le connais déjà le titre...).
    Merci de ta réponse

    il faut bien le titre pour confirmer a l'utilisateur le document qu'il risque de supprimer.

    Quand j'enlève la ligne LigneSuivante je dois donc supprimer la ligne supdocsimple (MODE_SUP, $titre); puisque la déffinition de $titre c'est avec LigneSuivante.
    dans ce cas le formulaire supdocsimple.php ne s'affiche plus, ce qui est normal puis qu'il n'est plus appelé.

    J'ai aussi tanté en mettant ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    else if ($_GET['mode']=='SUP')
            {
            $slash_titre = mysql_real_escape_string($_GET['titre']);
           $requete = "SELECT * FROM sqp WHERE titre='$slash_titre'";
            $resultat = ExecRequete($requete,$connexion);
            supdocsimple (MODE_SUP, $_GET['titre']);
     
            }
    Dans ce cat c'est plus un méssage d'erreur, mais le titre et le suivant
    Voulez vous supprimer ce document: e
    Alors que dans l'URL le titre et bien mentionné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://127.0.0.1/site/intranet/admin/docsimple.php?mode=SUP&titre=essai+d%27ajout+doc+sur+serveur+14%3A30

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    C'est la bonne façon de procéder, mais le souci vient de ta fonction supdocsimple. Tu commences par faire ça dans la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $def= $val_defaut['titre'];
    Mais vu que c'est déjà le titre que tu lui files ça marche moins bien... Alors à toi de voir, soit tu touches pas à la fonction et en paramètre tu lui files $_GET entier, soit tu passes effectivement le titre et à ce moment là il faut modifier la fonction est enlever la première ligne (et adapter pour le reste, $def à remplacer par $val_defaut). C'est à toi de voir en fonction de ce que tu veux faire de ta fonction.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    J'ai modifié la fonction supdocsimple comme suite

    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
    <?php
     function supdocsimple ($mode, $val_defaut)
    {
     
     echo "<table class=none>"
     ."<FORM  ACTION=docsimple.php METHOD=POST><p>"
      ."<INPUT TYPE=HIDDEN NAME='mode' VALUE=".$val_defaut['titre'].">";
     
      if ($mode=='SUP')  
     
      {
      echo "<tr><td><p>Voulez vous supprimer ce document: <td><p>".$val_defaut['titre']."</p>"
      ."<INPUT TYPE=HIDDEN NAME=titre VALUE=".$val_defaut['titre'].">"
      ."<tr><td> <COLSPAN=2><INPUT TYPE=SUBMIT VALUE='Executer'>"
    ."</FORM></table>";
    }
     
    }
    ?>
    Et docsimple.php est comme suite

    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
    if ($_GET['mode']== 'maj')
            {
            $slash_titre = mysql_real_escape_string($_GET['titre']);
            $requete = "SELECT * FROM sqp WHERE titre='$slash_titre'";
            $resultat = ExecRequete($requete,$connexion);
            $titre = LigneSuivante ($resultat);
            ajoutdocsimple (MODE_MAJ, $titre);
            }
            else if ($_GET['mode']=='INSERTION')
            {
            // on affiche un formulaire de saisite vièrge
            ajoutdocsimple (MODE_INSERTION, $NULL_TITRE);
            }
     
     //MODE SUP pour le supression des documents
     
            else if ($_GET['mode']=='SUP')
            {
            $slash_titre = mysql_real_escape_string($_GET['titre']);
           //$requete = "DELETE FROM sqp WHERE titre='$slash_titre'";
           $requete = "SELECT * FROM sqp WHERE titre='$slash_titre'";
            $resultat = ExecRequete($requete,$connexion);
            //$titre = LigneSuivante ($resultat);
            //$titre = mysql_fetch_array ($resultat);
            supdocsimple (MODE_SUP, $_GET['titre']);
     
     
            }
    Dans le titre j'ai toujour un "e"
    et en cliquant sur executer, cela ne supprime pas le document
    cela veux dire que c'est dans le majdocsimple.php que ça marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($mode==MODE_SUP)
      {   
      $requete = "DELETE FROM sqp (titre, categorie, date_creation, date_modif, genre, version, nom_fichier)"
    			." WHERE titre='$titre'"; 
    	}
    Je ne comprend pas d'ou viens le "e" et pourquoi ça marche avec le mode 'maj' (mise a jour) et non avec 'SUP'

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Tu n'as pas compris ce que j'ai dit, si tu décides de modifier ta fonction alors remplace les
    par
    à l'intérieur
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  7. #7
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Cette fois j'ai une erreur SQL

    Erreur dans l'exécution de la requête SELECT FROM sqp WHERE titre='Compte rendu de la réunion SQP du 30 janvier 2006'

    Message de MysQl Erreur de syntaxe près de 'FROM sqp WHERE titre='Compte rendu de la réunion SQP du 30 janvi' à la ligne 1

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Va peut-être falloir se motiver pour débugger là (tu gagnerais un temps fou...).

    Il faut lui dire les champs que tu sélectionnes dans ta requête, si tu prends tout tu mets * (comme tu le fais par ailleurs...) pour avoir quelque chose comme SELECT * FROM table...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  9. #9
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Désolé mais je suis débutant
    Mais la suppression ne fonction pas!

    ça ne prends pas en coimpte majdocsimple.php

    Ce que je comprends pas, c'est qu'avec le mode "maj" ça marche bien, alors que je me suis basé sur le même principe avec le mode "SUP"

    docsimple.php est comme suite


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
           else if ($_GET['mode']=='SUP')
            {
            $titre = $_GET['titre'];
            $slash_titre = mysql_real_escape_string($_GET['titre']);
            $requete = "SELECT*FROM sqp WHERE titre='$slash_titre'";
           //$requete = "SELECT * FROM sqp WHERE titre='$slash_titre'";
            $resultat = ExecRequete($requete,$connexion);
            //$titre = LigneSuivante ($resultat);
            //$titre = mysql_fetch_array ($resultat);
            supdocsimple (MODE_SUP, $titre);
     
     
            }
    majdocsimple.php comme en haut

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Pas de message d'erreur ? (je suis un pau paumé là, tu avais un problème avec le SELECT, maintenant tu as un souci avec le DELETE et tu dis que c'est la fonction de maj qui foire)


    Edit : les espaces autour de * dans le SELECT seraient mieux
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  11. #11
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par JWhite
    Pas de message d'erreur ? (je suis un pau paumé là, tu avais un problème avec le SELECT, maintenant tu as un souci avec le DELETE et tu dis que c'est la fonction de maj qui foire)


    Edit : les espaces autour de * dans le SELECT seraient mieux
    Non aucun message d'erreur!
    Ya bien le titre qui s'affiche avec le bouton executer, mais quand je clique sur executer, le fichier est toujour dans le tableau.

    Je rapel que le fichier majdocsimple.php est comme suite

    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
    <?php
    // fonction de mise a jour ou insertion de la table Docsimple
    function MAJdocsimple ($mode, $doc, $connexion)
    {
      // préparation des variable, en traitant pas addSlashes
      $titre = addSlashes($doc['titre']);
      $categorie = addSlashes($doc['categorie']);
      $version = addSlashes($doc['version']);
      $genre = addSlashes ($doc['genre']);
      $jour_crea = $doc['jour_crea'];
      $mois_crea = $doc['mois_crea'];
      $annee_crea = $doc['annee_crea'];
      $jour_mod = $doc['jour_mod'];
      $mois_mod = $doc['mois_mod'];
      $annee_mod = $doc['annee_mod'];
     
     
     
    $date_crea= $annee_crea."-".$mois_crea."-".$jour_crea ;
    $date_mod= $annee_mod."-".$mois_mod."-".$jour_mod ;
     
    $fichier = $_FILES['mondoc'];
    $fichiername = $fichier['name'];
     
    if ($mode==MODE_SUP)
      {   
      $requete = "DELETE FROM sqp (titre, categorie, date_creation, date_modif, genre, version, nom_fichier)"
    			." WHERE titre='$titre'"; 
    	}
    	else
      {  
     
        if ($mode==MODE_INSERTION)
        { 
         $requete = "INSERT INTO sqp (titre, categorie, date_creation, date_modif, genre, version, nom_fichier)"
    			. "VALUES ('$titre', '$categorie', '$date_crea', '$date_mod', '$genre', $version,'$fichiername')";
        }
     
        else 
        {
        $requete = "UPDATE sqp SET categorie='$categorie'," 
        ."genre='$genre', date_creation='$date_crea', date_modif='$date_mod', version='$version', nom_fichier ='$fichiername'"
        ." WHERE titre='$titre'";
     
        }
      }
      // exécution de l'ordre
      ExecRequete ($requete, $connexion);
     
     
    }
    ?>

    Je pensai que ça venait du fait que j'ai mis
    supdocsimple (MODE_SUP, $_GET['titre']);, mais apres j'ai changer
    en mettant $titre= $_GET['titre'] et supdocsimple (MODE_SUP, $titre);

Discussions similaires

  1. [MySQL] mysql_fetch_assoc: supplied argument is not a valid
    Par freeman43 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/04/2011, 11h01
  2. Réponses: 8
    Dernier message: 15/05/2010, 09h41
  3. [MySQL] erreur Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result
    Par kate59 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/02/2008, 17h52
  4. Réponses: 7
    Dernier message: 18/09/2006, 09h28
  5. Réponses: 3
    Dernier message: 30/09/2004, 20h16

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