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 :

Je viens de créer une fonction PHP pour afficher qui ne marche pas


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut Je viens de créer une fonction PHP pour afficher qui ne marche pas
    Bonjour,
    Je commence à utiliser les fonctions en PHP, par contre j'ai un bon niveau en SQL.
    Je viens de créer une fonction qui me donne des erreurs SQL. Le code marche bien sans la fonction. Pourriez-vous m'aider à corriger ma fonction ci-dessous SVP

    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
    <?php
    //FICHIER FONCTION
    require('connections.php');
     
    function fonction_txt_simple($txt_varsql, $txt_vartexte){
     
    $requete =  sprintf($txt_varsql, $txt_vartexte);
    $req = mysql_query($requete, $idConnex) or die(mysql_error());
    $myRow = mysql_fetch_assoc($req);
    $IDT = $myRow['IDT'];
    $retour_txt_simple = '<h1>'.$myRow['titre'].'</h1><br/>';
    $retour_txt_simple = nl2br($myRow['contenu']);
     
    return $retour_txt_simple;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    //FICHIER AFFICHAGE
     
    $varsql = " SELECT * FROM texte WHERE page='%s' ";
    $vartexte = 'accueil';
    require('fonctions/mes_fonctions.php');
     
    echo fonction_txt_simple($varsql, $vartexte);
    ?>

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    d'où viens $idConnex ?
    Si c'est une variable définie ailleurs, regarde la :
    http://php.developpez.com/faq/index....depuisfonction
    Le mieux étant d'ajouter un troisième paramètre à ta fonction...

    Et quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $retour_txt_simple = '<h1>'.$myRow['titre'].'</h1><br/>';
    $retour_txt_simple = nl2br($myRow['contenu']);
    La seconde ligne annule tout simplement la première...

    Edit : je viens de relire rapidement ton code, tu peux aussi inclure le fichier 'connections.php' dans le corps de ta fonction pour le premier problème.

  3. #3
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci pour ta réponse.
    $idConnex est une simple variable de connection située dans connections.php. ça n'a pas d'importance puisque le code mache sans la fonction. C'est au niveau de la fonction que quelque chose ne joue pas. Je début en fonction PHP. Aide moi au niveau de la construction de ma fonction.

    D'avance je te remercie beaucoup

  4. #4
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Quand je fais comme ça, tout marche nickel.
    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
    $varsql = " SELECT * FROM texte WHERE page='%s' ";
    $vartexte = 'accueil';
    require('connections.php');
     
    $requete =  sprintf($varsql, $vartexte);
     
    $req = mysql_query($requete, $idConnex) or die(mysql_error());//idConnex variable de connexion
    $myRow = mysql_fetch_assoc($req);
    $IDT = $myRow['IDT'];
    $titre = $myRow['titre'];
    $texte = $myRow['contenu'];
     
    $retour_txt_simple = '<h1>'.$myRow['titre'].'</h1><br/>';
    $retour_txt_simple .= nl2br($myRow['contenu']);
     
    echo $retour_txt_simple;
     
    ?>


    AVEC MA FONCTION QUE J'AI CRéé VOICI L'ERREUR QUE CELA ME DONNE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\program files\easyphp1-8\www\coiffure\fonctions\mes_fonctions.php on line 11

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme indiqué dans le lien que t'a donné le chat mousquetaire, il fait declarer ta variable $idConnex a l'interieur de ta fonction :
    sinon $idConnex dans ta fonction et $idConnex a l'exterieur ne sont pas les mêmes.

  6. #6
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci pour ton explication.
    Si je fais comme tu dis, ça marche.
    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
    <?php
    function fonction_txt_simple($txt_varsql, $txt_vartexte){
    //Variable de connexion
    $idConnex = mysql_connect("localhost", "root", "") or die("Connexion impossible. Si le probleme persiste, veuillez contacter l'administrateur.");
    $db = mysql_select_db("mabasedb", $idConnex);
     
    $requete =  sprintf($txt_varsql, $txt_vartexte);
    $req = mysql_query($requete, $idConnex) or die(mysql_error());
    $myRow = mysql_fetch_assoc($req);
    $IDT = $myRow['IDT'];
    $retour_txt_simple = '<h1>'.$myRow['titre'].'</h1><br/>';
    $retour_txt_simple .= nl2br($myRow['contenu']);
     
    return $retour_txt_simple;
    }
     
    ?>
    Le méga problème c'est que je dois faire plusieurs fonctions et le code connexion, je dois l'utiliser de gauche à droite. Je ne peux pas me permettre de le mettre dans la fonction. Peux tu me donner un exemple avec mon code STP, Une fonction connexion qui est utilisée dans la fonction requette? Comment faire ?

    Merci pour votre aide

  7. #7
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    tu devrais te faire une fonction de connexion car tu as besoin de te connecter une seule fois. Ensuite l'id de connexion est optionnel dans mysql_query() donc t'as pas besoin de le passer dans ta fonction , mysql_query() utilise la dernière connexion ouverte il me semble.

  8. #8
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci pour ta réponse

    Ok id de connexion n'est pas obligatoire. J'ai compris. Ce qui revient à faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query($requete) or die(mysql_error());
    Mais ce que je n'ai pas compris, c'est la fonction connexion. Pourras tu me donner un exemple pratique avec mon code stp?

  9. #9
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function sqlConnect($server, $user, $pwd, $db) {
    mysql_connect($server, $user, $pwd) or die("Connexion impossible. Si le probleme persiste, veuillez contacter l'administrateur.");
    mysql_select_db($db) or die("Sélection de la base impossible. Si le probleme persiste, veuillez contacter l'administrateur.");
    }
    que t'appelles une seule fois dans ton script. Ou comme t'avais fait avant finalement avec ton require().

  10. #10
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Ok merci pour ton aide

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

Discussions similaires

  1. Créer une fonction jquery pour une string
    Par xxkirastarothxx dans le forum jQuery
    Réponses: 1
    Dernier message: 14/12/2012, 18h42
  2. script pour mail qui ne marche pas
    Par kelyly dans le forum Langage
    Réponses: 29
    Dernier message: 19/05/2010, 18h16
  3. [MySQL] commande php pour mysql qui ne marche pas.
    Par kiemtso dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/09/2009, 15h49
  4. [Spip] créer une page php pour chaque enregistrement ajouté à la base
    Par ecdxml dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 05/06/2008, 17h33
  5. [php-mysql] requête qui ne marche pas....
    Par sanosuke85 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/01/2006, 17h18

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