Problème avec SELECT dans une class

Eléphanteau du PHP | 47 Messages

14 déc. 2021, 14:54

Bonjour à tous,

Je me mets à la POO et j'ai un petit problème avec une fonction select. En gros, si je retourne une valeur en l'occurrence ici un "id", il m'affiche le bon message. Mais j'aimerais savoir s'il est possible d'afficher tous les messages de la table si l'"ID" est vide. Peut-on mettre une * ou autre à la place. J'ai essayé mais sans succès :-(

Voici mon code

Code : Tout sélectionner

class Communication{ private $id; private $nom; private $corps; private $type; private $idT; public function __construct(){ } public function setId($id){$this->id = $id;} public function affComm(){ $db =Database::connect(); $db->exec("SET CHARACTER SET utf8"); $stmt = $db->prepare('SELECT * FROM communication where id = :id'); $stmt->bindValue(":id",$this->id,PDO::PARAM_INT); $stmt->execute(); $comm = $stmt->fetchall(); $stmt->closeCursor(); return $comm; }


Il y a surement plus simple ,ici c'est une ébauche de code.

Merci d'avance :wink:

Eléphanteau du PHP | 47 Messages

14 déc. 2021, 16:59

Voici une méthode qui fonctionne, mais je me demande s'il n'y a pas plus simple et surtout plus pro :cry: :?:

Code : Tout sélectionner

public function affComm(){ $db =Database::connect(); $db->exec("SET CHARACTER SET utf8"); if($this->id ===''){ $stmt = $db->prepare("SELECT * FROM communication"); } else{ $stmt = $db->prepare("SELECT * FROM communication where id = :id "); $stmt->bindValue(":id",$this->id,PDO::PARAM_INT); } $stmt->execute(); $comm = $stmt->fetchall(); $stmt->closeCursor(); return $comm; }