Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/10/2019, à 18:23

Hizoka

[Résolu] Fonction avec une commande PDO

Salut smile

Je n'arrive pas à rendre fonctionnel ma fonction :

function TousLesJoueursActifs($Arguments = PDO::FETCH_ASSOC, $Valeur = NULL)
{
    $RequeteSql = $GLOBALS["BaseDeDonnees"]->query("
        SELECT *
        FROM Perso
        WHERE
            Perso_Joueur_PNJ = 'Joueur' AND
            Perso_Date_DC IS NULL
        ORDER BY Perso_Nom");
    $ResultatRequete = $RequeteSql->fetchAll($Arguments, $Valeur);
    $RequeteSql->closeCursor();
    return($ResultatRequete);
}

Car dans le cas présent, il n'accepte pas les valeurs par défaut, le null pose problème.
Je souhaiterai pouvoir lancer cette fonction en précisant un argument et sa valeur associée si besoin.
J'ai essayé de passer par un array mais impossible de l'utiliser avec fetchAll...
J'aimerai voir s'il y a une possibilité d’éviter d'utiliser un truc du genre :

if($Valeur) $ResultatRequete = $RequeteSql->fetchAll($Arguments, $Valeur);
else $ResultatRequete = $RequeteSql->fetchAll($Arguments);

Merci à vous smile

Dernière modification par Hizoka (Le 18/10/2019, à 07:51)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#2 Le 16/10/2019, à 20:29

bruno

Re : [Résolu] Fonction avec une commande PDO

Hizoka a écrit :

Car dans le cas présent, il n'accepte pas les valeurs par défaut, le null pose problème.

Évidemment puisque c'est un numéro de colonne qui est attendu wink
Avec $valeur = 0 cela devrait fonctionner.

https://www.php.net/manual/fr/pdostatement.fetchall.php

Hors ligne

#3 Le 16/10/2019, à 22:14

Hizoka

Re : [Résolu] Fonction avec une commande PDO

Oups, ce n'est pas PDO::FETCH_COLUMN mais PDO::FETCH_ASSOC par defaut tongue

et que ce soit 0 ou null, c'est pareil du coup

Le truc, c'est que veux juste savoir s'il est possible de se passer de

if($Valeur) $ResultatRequete = $RequeteSql->fetchAll($Arguments, $Valeur);
else $ResultatRequete = $RequeteSql->fetchAll($Arguments);

pour que ça ne soit qu'en une seule ligne...

Dernière modification par Hizoka (Le 16/10/2019, à 22:22)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 18/10/2019, à 06:33

bruno

Re : [Résolu] Fonction avec une commande PDO

Avec ce code , effectivement tu dois utiliser une condition dans ta fonction puisque tu passes deux arguments à la méthode fetch. Une autre solution serait d'essayer de passer les arguments sous forme de tableau. (edit: non c'est idiot, la condition sera nécessaire de toute façon).

Dernière modification par bruno (Le 18/10/2019, à 06:54)

Hors ligne

#5 Le 18/10/2019, à 07:51

Hizoka

Re : [Résolu] Fonction avec une commande PDO

ok, merci smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne