Я хотел бы создать массивы Javascript с некоторыми данными из объекта PDO.Вот мой код:
$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
возвращает
Array
(
[user_id] => 1
[user_fname] => Bob
[user_lname] => Smith
)
Array
(
[user_id] => 2
[user_fname] => Alice
[user_lname] => Smith
)
, поэтому длина объекта будет 2. В этом случае код JS будет выглядеть так1009 *
но вместо этого я получаю
<script type="text/javascript">
var names_users = new Array(Bob Smith, Alice Smith, var users_ids = new Array(1, 2, </script>
, что означает, что код в else
не выполняется.Поэтому я проверил длину объекта с помощью count()
, и он вернул 3. Как вы можете это объяснить?