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 :

Créer une function en PHP


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 36
    Points : 25
    Points
    25
    Par défaut Créer une function en PHP
    Bonjour,

    J'ai un soucis avec une fonction qui ne fonctionne pas et je ne comprends pas la raison.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $connMySQL = new mysqli($servername, $username, $password, $db);
     
    $t = 474;
    function AfficheMyFunction($t) {
     
        $sql=@mysqli_query('SELECT id, name FROM participant WHERE id='.$t.'') or die(mysqli_error());
        $r=@mysqli_fetch_row($sql);
            return $r[1];
    }
     
    AfficheMyFunction();
    J'aimerais faire afficher via la fonction le name du participant en fonction de l'ID posté dans un formulaire.

    Merci par avance pour vos lumières ou correction.

    James

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut
    vous n'avez pas bien utilisé la fonction, regardes des exemple là :
    https://g-rossolini.developpez.com/t...=page-3#LIII-L

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    un autre essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $connMySQL = new mysqli($servername, $username, $password, $db);
     
    function AfficheMyFunction($r) {
     
        $sql=@mysqli_query('SELECT id, name FROM participant WHERE id='.$t.'') or die(mysqli_error());
        $r=@mysqli_fetch_row($sql);
            return $r;
    }
     
    AfficheMyFunction(474);

  4. #4
    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 : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Vous avez mis $r dans la définition de la fonction au lieu de $t
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    function AfficheMyFunction($r) {// devrait être $t

    De plus, en mode procédural, les fonctions mysqli_query() et mysqli_error() prennent le lien à la connexion en premier paramètre
    Et en plus, vu que c'est dans une fonction, il va falloir récupérer cette variable du lien car dans le scope de la fonction, ce qui est défini en dehors n'est pas accessible

    Tant que j'y suis, c'est assez mauvais de précéder les lignes de code par un arobase @.
    En effet, cette écriture permet de ne pas afficher les messages d'erreur. Bien que ça peut être utile dans certains cas, dans 99.9999% des cas (comme celui-ci) c'est a éviter
    Si vous n'utilisiez pas cette écriture, vous auriez des messages d'erreur pour vous indiquer que pas grand chose était correct :p

    Code complet :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    $connMySQL = new mysqli($servername, $username, $password, $db);
     
    function AfficheMyFunction($t) {
        $link = $GLOBALS['connMySQL']; // On récupère $connMYSQL
     
        $sql = mysqli_query($link, "SELECT id, name FROM participant WHERE id=" . $t) or die(mysqli_error($link));
        $r = mysqli_fetch_row($sql);
        return $r;
    }
     
    AfficheMyFunction(474);

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    Merci pour ces explications claires et précises sur le code.

    Je vais essayer le code complet.

    Très bonne journée.

    James

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    Avec MariaDB, j'ai dû changer return par echo.

  7. #7
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    Bonjour,

    Citation Envoyé par jimmy_cb1 Voir le message
    Avec MariaDB, j'ai dû changer return par echo.
    AUCUN rapport avec MariaDB.

    C'est juste une utilisation différente de function() :

    1- avec return :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    function return_blabla()
    {
       $x = "Hello";
       return $x;
    }
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    echo return_blabla();
     
    // OU on peut le mettre dans une variable
    $a = return_blabla();
    echo $a;
    Avec echo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    function echo_blabla()
    {
       $x = "Hello";
       echo $x;
    }
    Utilisation :

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

Discussions similaires

  1. [MySQL] Créer une base avec PHP
    Par loopback dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/01/2008, 12h06
  2. [SQL] créer une régle en php (récursive ou boucle) ?
    Par Overstone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/08/2007, 14h57
  3. [PHP-JS] Créer une radio en php
    Par amine_en_france dans le forum Langage
    Réponses: 1
    Dernier message: 03/02/2007, 10h13
  4. [Conception] Créer une table avec php
    Par freezerhm dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/10/2006, 13h15
  5. Réponses: 0
    Dernier message: 24/03/2006, 09h33

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