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 MySQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut Message d'erreur MySQL
    Bonjour à tous,

    J'ai fait un moteur de recherche et pour ne pas passer par PHPMYADMIN, j'ai fait plusieurs manipulations à partir de fichiers.

    Tout va bien sauf l'update !
    Rien de bien grave, enfin je crois, j'ai ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_close(): no MySQL-Link resource supplied in G:\SiteQI98\recherche\admin_recherche\update\update.php on line 45
    et voici une partie du code où se produit l'erreur
    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
    ...
    $sql = mysql_query("SELECT * FROM $nomtable LIMIT 0, 30") or die('Erreur de la requête : ' . mysql_error() . ""); 
     
    echo ("<fieldset>");
    echo ("<legend>Tri de mots-clés de la table <strong>$nomtable</strong></legend>");
          $requete = mysql_query("SELECT * FROM $nomtable WHERE id=$id");
          $reponse = mysql_fetch_array($requete);
          $contenu_actuel = $reponse['motscles'];
          $nouveau_contenu = $contenu_actuel.$motscles;
     
    echo 'Base : <strong>';
    echo $nombase;
    echo '</strong> <br /> Table : <strong>';
    echo $nomtable;
    echo '</strong>';
    echo 'ID modifié : <strong>';
    eco $id;
    echo '</strong> <br />';
    echo 'Titre : <strong>$reponse[titre]</strong> <br /><br />';
    echo 'Nouveaux mots clés enregistrés : <br /><strong>',
    echo $nouveau_contenu;
    echo '</strong><br /><br />';
    mysql_query("UPDATE $nomtable SET motscles = '$nouveau_contenu' WHERE id=$id"); 
    }
    echo '</fieldset>';
    // ERREUR : Warning: mysql_close(): no MySQL-Link resource supplied in G:\SiteQI98\recherche\admin_recherche\update\update.php on line 45
    mysql_close();
     
    echo '<br /><br />';
    echo '[ <a href=\"javascript:history.go(-1)\">Retour page précédente</a> ]';
    echo '<br /><br />;';
    echo '<form method="post" action="../choix.html">';
    echo '<input type="submit" name="choix" value="Retour au choix">';
    echo '</form>';
    ?>
    Est-ce que j'ai fait une bêtise ?

    J'ai essayé d'analyser ce code, mais je n'ai rien vu !


    Merci de votre aide.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Bonsoir,

    où se trouve ta connexion MySQL?

  3. #3
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Dans un fichier commun aux fichiers qui s'appelle "config_inc.php" dans un répertoire nommé "/config/'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $host = "localhost";	
    $user = "root";	
    $password = "";	
    $nombase = "recherche";
    $nomtable = "recherche";
    $lien = mysql_connect($host,$user,$password) or die('Erreur de connexion : ' . mysql_error() . ""); 
    mysql_select_db($nombase,$lien) or die ('Erreur de connexion à la base. ' . mysql_error() . "");
    Je sais , c'est vraiment basique mais comme j'apprends...

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Ton message d'erreur signale que tu n'a pas de connexion, à la base de données.

    Commente le mysql_close et vois si tu peux traiter les données.

  5. #5
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Merci MaitrePylos,

    Mais ce que je ne comprends pas, c'est que j'agis avec les mêmes coordonnées pour administrer les autres fonctions (liste de la table, ajouts d'enregistrements, suppression d'un id avec son contenu, suppression de la base).
    Tous sont connectés de la même manière, par un appel au fichier de connexion !

    Ça, je sais pas le faire.
    Commente le mysql_close et vois si tu peux traiter les données.
    T'as pas une autre solution ?

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_close($lien);

  7. #7
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    J'ai fais ça aussi

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Salut,

    je viens de repérer un ou deux fautes dans ton code, amis je ne pense que cela fasse avancer le schmiblick.

    essaye ceci pour voir l'erreur

    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
     
    $sql = mysql_query("SELECT * FROM $nomtable LIMIT 0, 30") or die('Erreur de la requête : ' . mysql_error() . ""); 
     
    echo ("<fieldset>");
    echo ("<legend>Tri de mots-clés de la table <strong>$nomtable</strong></legend>");
          $requete = mysql_query("SELECT * FROM $nomtable WHERE id=$id");
          $reponse = mysql_fetch_array($requete);
          $contenu_actuel = $reponse['motscles'];
          $nouveau_contenu = $contenu_actuel.$motscles;
     
    echo 'Base : <strong>';
    echo $nombase;
    echo '</strong> <br /> Table : <strong>';
    echo $nomtable;
    echo '</strong>';
    echo 'ID modifié : <strong>';
    echo $id;
    echo '</strong> <br />';
    echo 'Titre : <strong>$reponse[titre]</strong> <br /><br />';
    echo 'Nouveaux mots clés enregistrés : <br /><strong>';
    echo $nouveau_contenu;
    echo '</strong><br /><br />';
    mysql_query("UPDATE $nomtable SET motscles = '$nouveau_contenu' WHERE id=$id"); 
    }
     
    echo '</fieldset>';
    // ERREUR : Warning: mysql_close(): no MySQL-Link resource supplied in G:\SiteQI98\recherche\admin_recherche\update\update.php on line 45
    //mysql_close();
     
    echo '<br /><br />';
    echo '[ <a href=\"javascript:history.go(-1)\">Retour page précédente</a> ]';
    echo '<br /><br />;';
    echo '<form method="post" action="../choix.html">';
    echo '<input type="submit" name="choix" value="Retour au choix">';
    echo '</form>';
    ?>

  9. #9
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Si tu as repéré des fautes, c'est lesquelles ?

    Ensuite, je me demande pourquoi tu as mis "mysql_close();" en commentaire

    Ca ne sert strictement à rien, surtout que j'ai essayé ça avant !

  10. #10
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Pour les erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    eco $id;//echo
    echo 'Nouveaux mots clés enregistrés : <br /><strong>',//virgule
    Mettre en commentaire permet de voir les autre erreurs éventuelle

  11. #11
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Oui j'avais vu ça et l'ai corrigé.
    J'aurais dû faire pareil ici, désolé !

    j'ai simplement modifié les "echo" avec les variables.
    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
    echo '<fieldset>';
    echo '<legend>Mise à jour de mots-clés de la table <strong>', $nomtable, '</strong></legend>';
     
          $requete = mysql_query("SELECT * FROM $nomtable WHERE id=$id");
          $reponse = mysql_fetch_array($requete);
          $contenu_actuel = $reponse['motscles'];
          $nouveau_contenu = $contenu_actuel.$motscles;
     
    echo 'Base : <strong>', $nombase , '</strong> <br /> Table : <strong>',  $nomtable , '</strong>';
    echo 'ID modifié : <strong>' ,$id ,'</strong> <br />';
    echo 'Titre : <strong>$reponse[titre]</strong> <br /><br />';
    echo 'Nouveaux mots clés enregistrés : <br /><strong>', $nouveau_contenu ,'</strong><br /><br />';
     
    mysql_query("UPDATE $nomtable SET motscles = '$nouveau_contenu' WHERE id=$id"); 
    }
    mysql_close();
    ?>
    Malgré tout, j'ai toujours ce problème !...

    Ce qui m'inquiète, c'est "}" entre "mysql_query..." et "mysql_close".

    Si je l'enlève, j'ai un "Parse error" et si j'ajoute "{" avant le "mysql_query", c'est pareil ?????

  12. #12
    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
    hmmm dans ton code on peut effectivement voir } entre le mysql_query() et le mysql_close()

    Ce qui me fait donc penser que tu n'exécute pas forcément ce qui se trouve entre { } (exemple,tu ne l'exécute que si un formulaire a été envoyé). Donc si tu rentres pas dans ta condition et que tu affiches la page il retournera une erreur au mysql_error() vu que tu n'auras fait aucune requête mysql.

    Essaye avec ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ....
    mysql_query("UPDATE $nomtable SET motscles = '$nouveau_contenu' WHERE id=$id"); 
    mysql_close();
    }
    .....

    oui, j'ai eu la flemme de tout copier/coller

  13. #13
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Ben non darkstar123456, parce que si je fais ça, bien-sûr j'ai pas d'erreur, mais pas de requête non plus.
    Donc, c'est pareil :

    De plus, je vois bien cette accolade de fermeture... mais pas l'ouverture ????

  14. #14
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Essaye de modifer mysql_fetch_array() par mysql_fetch_assoc() dans ta requète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $requete = mysql_query("SELECT * FROM $nomtable WHERE id = '$id'");
          $reponse = mysql_fetch_assoc($requete);
          $contenu_actuel = $reponse['motscles'];
          $nouveau_contenu = $contenu_actuel.$motscles;
    Modifie cette également sur cette ligne, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo 'Titre : <strong>"'.$reponse['titre'].'"</strong> <br /><br />';
    Et enfin supprime "}" entre mysql_query() et mysql_close();
    En espèrant que cela résolve ton problème ...

  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
    Donnes-nous le code en entier, parce que dans ton premier post tu écris "..." juste avant, donc ça laisse supposer qu'il manque quelque chose.

    Le mysql_close() là où je l'ai mis dans ma correction ne devrait normalement pas influer sur la requête vu qu'elle est faite avant de toute façon

    Je suis pratiquement certains que tu as tout simplement une condition plus haut qui n'est jamais validée et donc pas de requête (et donc erreur au mysql_close()) car sinon tu aurais une "synthax error, unexpected } at line x"

  16. #16
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Merci Jumano, mais si je supprime l'accolade, voilà le résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, unexpected $end in G:\SiteQI98\recherche\admin_recherche\update\_update.php on line 56
    Si je remets "}", plus d'erreur mais pas de requête non plus.

    Bon, j'ai peut-être oublié de remettre en bon ordre la ligne pour l'affichage "titre" dans le "echo", mais c'est pas ça qui résulte de mon problème.

    Les boules ! Grrrr...

  17. #17
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    A quel moment ouvres-tu ton "{" ??

  18. #18
    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
    non mais cherche pas et lis ce que j'écris. Tu dois forcément avoir une condition ou une boucle quelque part (ça fait juste la 3ieme fois que je le dis hein !).

    Montres-nous le code en entier, car je suis certain que ton erreur mysql_close vient du fait qu'il n'a rien à fermer car tu ne fais pas de requête (condition qui ne passe pas/jamais).

  19. #19
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 986
    Points : 240
    Points
    240
    Par défaut
    Justement Jumano, c'est là où je comprends rien parce que je n'en vois aucune qui ouvre dans ce satané script.

    Logiquement, si ça ferme, ça doit ouvrir quelque part !
    J'ai probablement omis de le faire, mais si c'est le cas où le mettre.
    J'ai essayé d'en mettre une en différentes places (la même), j'avais toujours des Parse Error !

    Un peut plus tard, suite au post de darkstar123456, j'ai repéré "{".
    Certainement que l'erreur vienne de là.
    Je regarde ça !

  20. #20
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    As tu des fichiers includes ?
    N'as tu pas un "if" ou un "while" dedans qui n'est pas fermé ?

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

Discussions similaires

  1. message d'erreur MYSQL
    Par triger100 dans le forum JDBC
    Réponses: 2
    Dernier message: 15/04/2008, 10h43
  2. [MySQL] Message d'erreur MySQL
    Par XpFive dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/04/2008, 18h49
  3. ? Message d'erreur MySQL
    Par Trebor_ dans le forum Installation
    Réponses: 5
    Dernier message: 15/02/2008, 15h21
  4. [MySQL] Messages d'erreur Mysql liés à la fonction mysql_result
    Par Diabless6 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 05/06/2007, 20h59
  5. Message d' erreur Mysql
    Par Blaireau dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 12/04/2007, 13h44

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