Je voudrais créer des tableaux Javascript avec des données d'un objet PDO. Voici mon code:Longueur de l'objet PDO supérieure à celle attendue
$req = $bdd->query('SELECT
id AS user_id,
fname AS user_fname,
lname AS user_lname
FROM mand_users');
$autocomplete_users = '<script type="text/javascript"> var names_users = new Array(';
$users_ids = 'var users_ids = new Array(';
$i = -1;
while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) {
print_r($donnees);
$i++;
$user_full_name = $donnees['user_fname'].' '.$donnees['user_lname'];
$user_id = $donnees['user_id'];
if ($i < count($donnees)-1) {
$autocomplete_users .= $user_full_name.', ';
$users_ids .= $user_id.', ';
} else {
$autocomplete_users .= $user_full_name.');';
$users_ids .= $user_id.');';
}
}
echo $autocomplete_users . $users_ids .'</script>';
print_r
retours
Array
(
[user_id] => 1
[user_fname] => Bob
[user_lname] => Smith
)
Array
(
[user_id] => 2
[user_fname] => Alice
[user_lname] => Smith
)
si la longueur de l'objet serait 2. Dans ce cas, le code JS ressemblerait à ceci
<script type="text/javascript">
var names_users = new Array(Bob Smith, Alice Smith);
var users_ids = new Array(1, 2);
</script>
mais je obtenir ce
<script type="text/javascript">
var names_users = new Array(Bob Smith, Alice Smith, var users_ids = new Array(1, 2, </script>
ce qui signifie que le code dans le else
n'est pas exécuté. Donc, j'ai vérifié la longueur de l'objet avec count()
et il est revenu 3. Comment pourriez-vous expliquer cela?
... grands esprits ... – Jason
Merci, je vais essayer ça. – b1onic