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 :

exécution d'une requête mysql


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut exécution d'une requête mysql
    Bonsoir,

    j'ai un souci avec l'exécution d'une requête MySQL. Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql="select * from `forum_telepamedia` where ((auteur='".$login."') and (cat='".$cat."')) order by id_forum DESC";
     
     $sql = stripslashes($sql);
     
     $result = mysql_query($sql) or die(mysql_error());
     
    //affichage de la requête
    ...
    Le résultat est vide alors qu'il ne l'est pas si je la rentre sans une interface qui exécute les requêtes SQL et pas vide non plus avec une seule des 2 conditions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql="select * from `forum_telepamedia` where ((auteur='".$login."')) order by id_forum DESC";
     
     $sql = stripslashes($sql);
     
     $result = mysql_query($sql) or die(mysql_error());
     
    //affichage de la requête
    ...
    comment se fait-ce ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonsoir,

    Tu as affiché la requête (echo $sql;), exécuté en base et tu as bien des résultats ?

    L'affichage doit être fait juste avant l'exécution (mysql_query($sql)) pour être sûr de récupérer la requête exacte.
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Et oui, voici le code de mon dernier essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql="select * from `forum_telepamedia` where ((auteur='".$login."')) order by id_forum DESC";
    // $sql="select * from `forum_telepamedia` where ((auteur='".$login."') and (cat='".$cat."')) order by id_forum DESC";
    echo "sql=".$sql;
     
     $sql = stripslashes($sql);
     
     $result = mysql_query($sql) or die(mysql_error());
    ...
    d'où mon incompréhension...

    (comme ça, ça marche, mais si je décommente le 2eSQL et que je commente le 1er, ça ne marche plus...)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Mets ton echo après la fonction stripslashes pour avoir la requête exacte
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  5. #5
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    juste pour quelques remarques.

    1. Utilises les fonctions mysqli_*
    2. Il est préférable d'utiliser les fonctions d'échappement propre à la base de données mysqli_real_escape_string dans ton cas
    3. Tu ne dois pas échapper toute la requête mais juste les données utilisateur à inclure dans la requête.

    L'ensemble donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $requete = "select * from `forum_telepamedia` where ((auteur='". mysqli_real_escape_string( $login )."') and (cat='".mysqli_real_escape_string( $cat )."')) order by id_forum DESC";
     
    $resultat = mysqli_query( $requete ) or die( mysqli_error() );
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Salut,

    merci du conseil, mais il faut aussi une connexion mysqli, pas comme à l'heure actuelle mysql. Et elle ne marche pas ; j'ai créé la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function connecti()
    {
    $id_conn=mysqli_connect(MYHOST,MYUSER,MYPASS);
    if ($id_conn); else echo "connexion NOK";echo"<br>";
    if (!mysqli_select_db("---",$id_conn)) echo "connexion base foirée"; else echo"<br>";
     
    return($id_conn);
    }
    et quand je l'appelle :
    Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /homepages/20/d357470176/htdocs/fr/action_forum/connect.php on line 15
    ????
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  7. #7
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    tu peux le faire en un coup:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_connect( MYHOST, MYUSER, MYPASS, $db_name );
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je n'y comprends rien car hier j'avais tout basculé en mysqli mais ça ne marchait pas, et ce matin, ça marche (sans avoir rien changé dans le code), mais tant mieux.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

Discussions similaires

  1. unexpected character : erreur à l'exécution d'une requête MySQL avec PHP
    Par sub_zero dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 02/02/2015, 18h22
  2. Limiter le temps d'exécution d'une requête MySQL
    Par Ceubex dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/12/2014, 21h22
  3. Exécuter une requête MySQL en php sur serveur OVH
    Par phebus1204 dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/04/2009, 16h41
  4. Exécution d'une requète MySQL
    Par Redg9 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/01/2009, 21h05
  5. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11

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