Bonjour à tous,
voilà depuis le temps j'ai toujours fais la saguoin avec mes requete pdo, a faire cracher du while alors que je savais trés bien qu'il n'y avait qu'un seul résultat.
Mais le hic c'est que je suis coincé bêtement par une suite de requete PDO avec des min max et moy car je ne sais pas comment sortir le résultat proprement
$sql9 = "SELECT MAX(price) as max_bonus FROM enr_mil_pilot_op WHERE pilotid='$other_compar[pilotid]' and type='b'";
$req9 = $DBPDO ->query($sql9);
$max_bonus=???
Pourriez vous m'aider.
Désolé de vous ramenez à la maternel du php
Flo
Hello !
Si tu comptes utiliser plusieurs fois un modèle objet des données, ou un modèle de tableau associatif tu peux définir la façon dont PDO te renvoie les données fetchées au début de ton script. Ca t'évite de taper à chaque fois fetch(PDO::FETCH_OBJ)
//A mettre au début de ton script
//Pour un tableau associatif
$DBPDO -> setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
//Pour un modèle objet
$DBPDO -> setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
//A utiliser dans ton script
//Faire ton fetch
$tab=$req9->fetch();
//Pour récupérer une valeur en assoc
$tab'max_bonus'];
//Pour récupérer une valeur en obj
$tab->max_bonus;
Ces sa que tu veux?
$sql9 = "SELECT MAX(price) FROM enr_mil_pilot_op WHERE pilotid='" . $other_compar[pilotid] . "' and type='b'";
$req9 = $DBPDO->query($sql9);
$max_bonus= $req9;
oui tu a raison j'ai pas trop fait gaffe, tu fait:
$sql9 = "SELECT MAX(price) FROM enr_mil_pilot_op WHERE pilotid='" . $other_compar[pilotid] . "' and type='b'";
$req9 = $DBPDO->query($sql9);
$max_bonus= $req9'price'];
malheureusement non
le site m'a répondu:
Fatal error: Cannot use object of type PDOStatement as array
et j'ai fait un vardump dessus et le contenu est celui-ci
object(PDOStatement)#18 (1) { "queryString"]=> string(73) "SELECT MAX(price) FROM enr_mil_pilot_op WHERE pilotid='12' and type='b'" }
bon j'ai bricolé un peu de mon coté et je sius arrivé à ceci
$sql9 = "SELECT MAX(price) as max_bonus FROM enr_mil_pilot_op WHERE pilotid='$other_compar[pilotid]' and type='b'";
$req9 = $DBPDO ->query($sql9);
$tab=$req9->fetch(PDO::FETCH_OBJ);
$other_compar[max_bonus]=$tab->max_bonus;
ça marche mais il me semblais que l'on pouvait faire mieux